From 52b30ce1ba6748c1d0a0f8697df3e66c53b2c315 Mon Sep 17 00:00:00 2001 From: Andrew Kim Date: Mon, 8 Apr 2019 17:06:24 -0400 Subject: Timeline Grapical Change --- .../views/collections/collectionFreeForm/CollectionFreeFormView.tsx | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/client/views/collections') diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index c5178f69d..2ebdb5de6 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -20,6 +20,7 @@ import React = require("react"); import v5 = require("uuid/v5"); import { CollectionFreeFormRemoteCursors } from "./CollectionFreeFormRemoteCursors"; import { PreviewCursor } from "./PreviewCursor"; +import { Timeline } from "../../nodes/Timeline" @observer export class CollectionFreeFormView extends CollectionViewBase { @@ -305,7 +306,9 @@ export class CollectionFreeFormView extends CollectionViewBase { {this.overlayView} + + ); } -- cgit v1.2.3-70-g09d2 From 604d20941837fa90c06a7da7e77a27c262cd4648 Mon Sep 17 00:00:00 2001 From: Andrew Kim Date: Sat, 20 Apr 2019 18:40:29 -0400 Subject: reaction --- .../collectionFreeForm/CollectionFreeFormView.tsx | 8 +++-- src/client/views/nodes/KeyFrame.tsx | 4 ++- src/client/views/nodes/Timeline.tsx | 41 +++++++++++----------- 3 files changed, 28 insertions(+), 25 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index a77a28aa7..fb3304e1f 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -20,7 +20,7 @@ import React = require("react"); import v5 = require("uuid/v5"); import { CollectionFreeFormRemoteCursors } from "./CollectionFreeFormRemoteCursors"; import { PreviewCursor } from "./PreviewCursor"; -import { Timeline } from "../../nodes/Timeline" +import { Timeline } from "../../nodes/Timeline"; import { DocumentManager } from "../../../util/DocumentManager"; import { SelectionManager } from "../../../util/SelectionManager"; import { NumberField } from "../../../../fields/NumberField"; @@ -285,6 +285,7 @@ export class CollectionFreeFormView extends CollectionSubView { } return prev; }, [] as JSX.Element[]); + } @computed @@ -313,7 +314,7 @@ export class CollectionFreeFormView extends CollectionSubView { const pany: number = -this.props.Document.GetNumber(KeyStore.PanY, 0); return ( - runInAction(() => { this._pwidth = r.entry.width; this._pheight = r.entry.height })}> + runInAction(() => { this._pwidth = r.entry.width; this._pheight = r.entry.height; })}> {({ measureRef }) => (
{this.overlayView} - + +
)} diff --git a/src/client/views/nodes/KeyFrame.tsx b/src/client/views/nodes/KeyFrame.tsx index adc97fe4a..223e8f962 100644 --- a/src/client/views/nodes/KeyFrame.tsx +++ b/src/client/views/nodes/KeyFrame.tsx @@ -3,11 +3,13 @@ export class KeyFrame{ constructor(){ this._document = new Document(); + } - get document(){ + console.log(this._document); return this._document; + } } \ No newline at end of file diff --git a/src/client/views/nodes/Timeline.tsx b/src/client/views/nodes/Timeline.tsx index c6aa0b146..42e434413 100644 --- a/src/client/views/nodes/Timeline.tsx +++ b/src/client/views/nodes/Timeline.tsx @@ -6,9 +6,13 @@ import "./Timeline.scss"; import { KeyStore } from "../../../fields/KeyStore"; import { Document } from "../../../fields/Document"; import { KeyFrame } from "./KeyFrame"; +import { CollectionViewProps } from "../collections/CollectionBaseView"; +import { CollectionSubView } from "../collections/CollectionSubView"; +import { DocumentViewProps } from "./DocumentView"; + @observer -export class Timeline extends React.Component { +export class Timeline extends React.Component { @observable private _inner = React.createRef(); @observable private _isRecording: Boolean = false; @observable private _currentBar: any = null; @@ -23,16 +27,8 @@ export class Timeline extends React.Component { onStop = (e: React.MouseEvent) => { this._isRecording = false; if (this._inner.current) { - this._newBar = document.createElement("div"); - this._newBar.style.height = "100%"; - this._newBar.style.width = "5px"; - this._newBar.style.left = this._currentBar.style.left; - this._newBar.style.backgroundColor = "yellow"; - this._newBar.style.transform = this._currentBar.style.transform; - this._inner.current.appendChild(this._newBar); + } - this._currentBar.remove(); - this._currentBar = null; } @action @@ -62,17 +58,20 @@ export class Timeline extends React.Component { } componentDidMount() { this.createBar(5); - // let doc: Document; - // let keyFrame = new KeyFrame(); - // this._keyFrames.push(keyFrame); - // let keys = [KeyStore.X, KeyStore.Y]; - // reaction(() => { - // return keys.map(key => doc.GetNumber(key, 0)); - // }, data => { - // keys.forEach((key, index) => { - // keyFrame.document().SetNumber(key, data[index]); - // }); - // }); + let doc: Document = this.props.Document; + console.log(doc.Get(KeyStore.BackgroundColor)); + let keyFrame = new KeyFrame(); + this._keyFrames.push(keyFrame); + let keys = [KeyStore.X, KeyStore.Y]; + reaction(() => { + return keys.map(key => doc.GetNumber(key, 0)); + }, data => { + keys.forEach((key, index) => { + keyFrame.document().SetNumber(key, data[index]); + }); + }); + + console.log(keyFrame.document + "Document"); } render() { -- cgit v1.2.3-70-g09d2 From b1654dd5e2648c412f6c6a1013fa2ab167999a95 Mon Sep 17 00:00:00 2001 From: Andrew Kim Date: Mon, 22 Apr 2019 17:27:44 -0400 Subject: new --- .../collectionFreeForm/CollectionFreeFormView.tsx | 61 +++------------------- 1 file changed, 8 insertions(+), 53 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index ed33a6eb9..a54fe601a 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -21,18 +21,8 @@ import "./CollectionFreeFormView.scss"; import { MarqueeView } from "./MarqueeView"; import React = require("react"); import v5 = require("uuid/v5"); -<<<<<<< HEAD -import { CollectionFreeFormRemoteCursors } from "./CollectionFreeFormRemoteCursors"; -import { PreviewCursor } from "./PreviewCursor"; -import { Timeline } from "../../nodes/Timeline"; -import { DocumentManager } from "../../../util/DocumentManager"; -import { SelectionManager } from "../../../util/SelectionManager"; -import { NumberField } from "../../../../fields/NumberField"; -import { Main } from "../../Main"; -import Measure from "react-measure"; -======= import { BooleanField } from "../../../../fields/BooleanField"; ->>>>>>> e47656cdc18aa1fd801a3853fa0f819140a68646 +import { Timeline } from "../../nodes/Timeline"; @observer export class CollectionFreeFormView extends CollectionSubView { @@ -275,19 +265,16 @@ export class CollectionFreeFormView extends CollectionSubView { var page = doc.GetNumber(KeyStore.Page, -1); if (page === curPage || page === -1) { let minim = doc.GetT(KeyStore.IsMinimized, BooleanField); - if (minim === undefined || (minim && !minim.Data)) + if (minim === undefined || (minim && !minim.Data)){ prev.push(); + } } return prev; }, [] as JSX.Element[]); -<<<<<<< HEAD - -======= setTimeout(() => this._selectOnLoaded = "", 600);// bcz: surely there must be a better way .... return docviews; ->>>>>>> e47656cdc18aa1fd801a3853fa0f819140a68646 } @action @@ -310,11 +297,14 @@ export class CollectionFreeFormView extends CollectionSubView { {this.childViews} + - - + + + + ); } @@ -354,40 +344,6 @@ interface CollectionFreeFormViewPannableContentsProps { zoomScaling: () => number; } -<<<<<<< HEAD - return ( - runInAction(() => { this._pwidth = r.entry.width; this._pheight = r.entry.height; })}> - {({ measureRef }) => ( -
-
super.setCursorPosition(this.getTransform().transformPoint(e.clientX, e.clientY))} - onDrop={this.onDrop.bind(this)} onDragOver={this.onDragOver} onWheel={this.onPointerWheel} - style={{ borderWidth: `${COLLECTION_BORDER_WIDTH}px` }} ref={this.createDropTarget}> - - -
- {this.backgroundView} - - - {this.childViews} - - - -
- {this.overlayView} -
- - -
-
-
)} -
- ); -======= @observer class CollectionFreeFormViewPannableContents extends React.Component{ render() { @@ -399,6 +355,5 @@ class CollectionFreeFormViewPannableContents extends React.Component {this.props.children} ; ->>>>>>> e47656cdc18aa1fd801a3853fa0f819140a68646 } } \ No newline at end of file -- cgit v1.2.3-70-g09d2 From dc998e4871e1e5ddd63eedb1b0c175d5aea6da8b Mon Sep 17 00:00:00 2001 From: Andrew Kim Date: Mon, 22 Apr 2019 17:55:26 -0400 Subject: new changes --- .../collectionFreeForm/CollectionFreeFormView.tsx | 4 +--- src/client/views/nodes/Timeline.tsx | 15 ++++++++++----- 2 files changed, 11 insertions(+), 8 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index a54fe601a..1de4d157f 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -297,14 +297,12 @@ export class CollectionFreeFormView extends CollectionSubView { {this.childViews} - - - + ); } diff --git a/src/client/views/nodes/Timeline.tsx b/src/client/views/nodes/Timeline.tsx index d1036bab8..b92223d59 100644 --- a/src/client/views/nodes/Timeline.tsx +++ b/src/client/views/nodes/Timeline.tsx @@ -7,13 +7,14 @@ import { KeyStore } from "../../../fields/KeyStore"; import { Document } from "../../../fields/Document"; import { KeyFrame } from "./KeyFrame"; import { CollectionViewProps } from "../collections/CollectionBaseView"; -import { CollectionSubView } from "../collections/CollectionSubView"; +import { CollectionSubView, SubCollectionViewProps } from "../collections/CollectionSubView"; import { DocumentViewProps } from "./DocumentView"; import { Opt } from '../../../fields/Field'; +import { CollectionFreeFormView } from "../collections/collectionFreeForm/CollectionFreeFormView"; @observer -export class Timeline extends React.Component { +export class Timeline extends React.Component { @observable private _inner = React.createRef(); @observable private _isRecording: Boolean = false; @observable private _currentBar: any = null; @@ -69,15 +70,19 @@ export class Timeline extends React.Component { componentDidMount() { this.createBar(5); - let doc: Document; + let doc: Document = this.props.Document; + let childrenList = this.props.Document.GetList(this.props.fieldKey, [] as Document[]); let keyFrame = new KeyFrame(); this._keyFrames.push(keyFrame); let keys = [KeyStore.X, KeyStore.Y]; this._reactionDisposer = reaction(() => { - return keys.map(key => doc.GetNumber(key, 0)); + childrenList.forEach( (element:Document) => { + return keys.map(key => element.GetNumber(key, 0)); + }); }, data => { keys.forEach((key, index) => { - keyFrame.document().SetNumber(key, data[index]); + console.log("moved!"); + //keyFrame.document().SetNumber(key, data[index]); }); }); } -- cgit v1.2.3-70-g09d2 From 7ef63f53c1c7fdf23c7a18a37b67c49c97692db7 Mon Sep 17 00:00:00 2001 From: Andrew Kim Date: Sat, 4 May 2019 17:55:52 -0400 Subject: new changes --- .../collectionFreeForm/CollectionFreeFormView.tsx | 2 +- src/client/views/nodes/KeyFrame.tsx | 6 +++--- src/client/views/nodes/Timeline.tsx | 19 ++++++++++++------- 3 files changed, 16 insertions(+), 11 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index d81a340b0..69b880d20 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -72,7 +72,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { } public getActiveDocuments = () => { const curPage = FieldValue(this.Document.curPage, -1); - return FieldValue(this.children, [] as Doc[]).filter(doc => { + return FieldValue(this.children, [] as Doc[]).filter((doc) => { var page = NumCast(doc.page, -1); return page === curPage || page === -1; }); diff --git a/src/client/views/nodes/KeyFrame.tsx b/src/client/views/nodes/KeyFrame.tsx index 0f0615c5a..5c1157c9d 100644 --- a/src/client/views/nodes/KeyFrame.tsx +++ b/src/client/views/nodes/KeyFrame.tsx @@ -1,9 +1,9 @@ -import { Document } from '../../../fields/Document'; +import { Doc } from '../../../new_fields/Doc'; export class KeyFrame { - private _document: any; + private _document: Doc; constructor() { - this._document = new Document(); + this._document = new Doc(); } diff --git a/src/client/views/nodes/Timeline.tsx b/src/client/views/nodes/Timeline.tsx index 14bcd738f..6fea51624 100644 --- a/src/client/views/nodes/Timeline.tsx +++ b/src/client/views/nodes/Timeline.tsx @@ -9,9 +9,9 @@ import { CollectionSubView, SubCollectionViewProps } from "../collections/Collec import { DocumentViewProps } from "./DocumentView"; import { CollectionFreeFormView } from "../collections/collectionFreeForm/CollectionFreeFormView"; -import { Doc } from "../../../new_fields/Doc"; -import { Document } from "../../../new_fields/Schema"; -import { FieldValue } from "../../../new_fields/Types"; +import { Doc, Self } from "../../../new_fields/Doc"; +import { Document, listSpec } from "../../../new_fields/Schema"; +import { FieldValue, Cast } from "../../../new_fields/Types"; @observer export class Timeline extends CollectionSubView(Document) { @@ -65,12 +65,17 @@ export class Timeline extends CollectionSubView(Document) { this._currentBar = this.createBar(5); this._inner.current.appendChild(this._currentBar); } - let doc: Document = this.props.Document; - let childrenList = this.children; + let doc: Doc = this.props.Document; + let test = this.props.Document[this.props.fieldKey]; + let children = Cast(this.props.Document[this.props.fieldKey], listSpec(Doc)); // let keyFrame = new KeyFrame(); //should not be done here... // this._keyFrames.push(keyFrame)"; + if (!children) { + return; + } + let childrenList = (children[Self] as any).__fields; let keys = ["x", "y"]; - const addReaction = (element: Document) => { + const addReaction = (element: Doc) => { return reaction(() => { return keys.map(key => FieldValue(element[key])); @@ -92,7 +97,7 @@ export class Timeline extends CollectionSubView(Document) { } }); }; - observe(childrenList as IObservableArray, change => { + observe(childrenList as IObservableArray, change => { if (change.type === "update") { this._reactionDisposers[change.index](); this._reactionDisposers[change.index] = addReaction(change.newValue); -- cgit v1.2.3-70-g09d2 From 905750f6625ed1f11242cd0e0ea52e4e5a606c96 Mon Sep 17 00:00:00 2001 From: Eleanor Eng Date: Tue, 4 Jun 2019 10:41:07 -0400 Subject: merge --- .../collections/collectionFreeForm/CollectionFreeFormView.tsx | 7 ++----- src/client/views/nodes/PDFBox.tsx | 8 +++++--- 2 files changed, 7 insertions(+), 8 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index e741953d6..49195fba9 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -327,7 +327,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { private childViews = () => [ , ...this.views - ]; + ] render() { const containerName = `collectionfreeformview${this.isAnnotationOverlay ? "-overlay" : "-container"}`; const easing = () => this.props.Document.panTransformType === "Ease"; @@ -349,11 +349,8 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { -<<<<<<< HEAD - -======= + ->>>>>>> 6f49d067b58caf6297f7ae7687cf05b627c27a1d ); } diff --git a/src/client/views/nodes/PDFBox.tsx b/src/client/views/nodes/PDFBox.tsx index aa29a7170..6b5f5ab65 100644 --- a/src/client/views/nodes/PDFBox.tsx +++ b/src/client/views/nodes/PDFBox.tsx @@ -261,7 +261,7 @@ export class PDFBox extends DocComponent(PdfDocumen this.props.Document.thumbnail = new ImageField(new URL(url)); } runInAction(() => this._renderAsSvg = true); - }) + }); })) .catch(function (error: any) { console.error('oops, something went wrong!', error); @@ -335,8 +335,9 @@ export class PDFBox extends DocComponent(PdfDocumen } choosePath(url: URL) { - if (url.protocol === "data" || url.href.indexOf(window.location.origin) === -1) + if (url.protocol === "data" || url.href.indexOf(window.location.origin) === -1) { return url.href; + } let ext = path.extname(url.href); return url.href.replace(ext, this._curSuffix + ext); } @@ -350,8 +351,9 @@ export class PDFBox extends DocComponent(PdfDocumen } @action onError = () => { let timeout = this._curSuffix === "_s" ? this._smallRetryCount : this._curSuffix === "_m" ? this._mediumRetryCount : this._largeRetryCount; - if (timeout < 10) + if (timeout < 10) { setTimeout(this.retryPath, Math.min(10000, timeout * 5)); + } } _curSuffix = "_m"; -- cgit v1.2.3-70-g09d2 From c3352c006d6be40e88baa3ebceee46738f65fd18 Mon Sep 17 00:00:00 2001 From: Eleanor Eng Date: Mon, 10 Jun 2019 11:53:49 -0400 Subject: merge --- src/client/views/collections/CollectionSubView.tsx | 74 ++++++++++------------ 1 file changed, 33 insertions(+), 41 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/collections/CollectionSubView.tsx b/src/client/views/collections/CollectionSubView.tsx index 762955a08..fe9e12640 100644 --- a/src/client/views/collections/CollectionSubView.tsx +++ b/src/client/views/collections/CollectionSubView.tsx @@ -1,24 +1,22 @@ -import { action } from "mobx"; -import * as rp from 'request-promise'; -import CursorField from "../../../new_fields/CursorField"; -import { Doc, DocListCast, Opt } from "../../../new_fields/Doc"; -import { List } from "../../../new_fields/List"; -import { listSpec } from "../../../new_fields/Schema"; -import { Cast, PromiseValue } from "../../../new_fields/Types"; -import { CurrentUserUtils } from "../../../server/authentication/models/current_user_utils"; -import { RouteStore } from "../../../server/RouteStore"; -import { DocServer } from "../../DocServer"; -import { Docs, DocumentOptions } from "../../documents/Documents"; -import { DragManager } from "../../util/DragManager"; +import { action, runInAction } from "mobx"; +import React = require("react"); import { undoBatch, UndoManager } from "../../util/UndoManager"; -import { DocComponent } from "../DocComponent"; +import { DragManager } from "../../util/DragManager"; +import { Docs, DocumentOptions } from "../../documents/Documents"; +import { RouteStore } from "../../../server/RouteStore"; +import { CurrentUserUtils } from "../../../server/authentication/models/current_user_utils"; import { FieldViewProps } from "../nodes/FieldView"; +import * as rp from 'request-promise'; +import { CollectionView } from "./CollectionView"; import { CollectionPDFView } from "./CollectionPDFView"; import { CollectionVideoView } from "./CollectionVideoView"; -import { CollectionView } from "./CollectionView"; -import React = require("react"); -import { FormattedTextBox } from "../nodes/FormattedTextBox"; -import { Id } from "../../../new_fields/FieldSymbols"; +import { Doc, Opt, FieldResult, DocListCast } from "../../../new_fields/Doc"; +import { DocComponent } from "../DocComponent"; +import { listSpec } from "../../../new_fields/Schema"; +import { Cast, PromiseValue, FieldValue, ListSpec } from "../../../new_fields/Types"; +import { List } from "../../../new_fields/List"; +import { DocServer } from "../../DocServer"; +import CursorField from "../../../new_fields/CursorField"; export interface CollectionViewProps extends FieldViewProps { addDocument: (document: Doc, allowDuplicates?: boolean) => boolean; @@ -82,15 +80,28 @@ export function CollectionSubView(schemaCtor: (doc: Doc) => T) { @action protected drop(e: Event, de: DragManager.DropEvent): boolean { if (de.data instanceof DragManager.DocumentDragData) { + if (de.data.dropAction || de.data.userDropAction) { + ["width", "height", "curPage"].map(key => + de.data.draggedDocuments.map((draggedDocument: Doc, i: number) => + PromiseValue(Cast(draggedDocument[key], "number")).then(f => f && (de.data.droppedDocuments[i][key] = f)))); + } let added = false; if (de.data.dropAction || de.data.userDropAction) { - added = de.data.droppedDocuments.reduce((added: boolean, d) => this.props.addDocument(d) || added, false); + added = de.data.droppedDocuments.reduce((added: boolean, d) => { + let moved = this.props.addDocument(d); + return moved || added; + }, false); } else if (de.data.moveDocument) { - let movedDocs = de.data.options === this.props.Document[Id] ? de.data.draggedDocuments : de.data.droppedDocuments; - added = movedDocs.reduce((added: boolean, d) => - de.data.moveDocument(d, this.props.Document, this.props.addDocument) || added, false); + const move = de.data.moveDocument; + added = de.data.droppedDocuments.reduce((added: boolean, d) => { + let moved = move(d, this.props.Document, this.props.addDocument); + return moved || added; + }, false); } else { - added = de.data.droppedDocuments.reduce((added: boolean, d) => this.props.addDocument(d) || added, false); + added = de.data.droppedDocuments.reduce((added: boolean, d) => { + let moved = this.props.addDocument(d); + return moved || added; + }, false); } e.stopPropagation(); return added; @@ -155,25 +166,6 @@ export function CollectionSubView(schemaCtor: (doc: Doc) => T) { e.stopPropagation(); e.preventDefault(); - if (html && FormattedTextBox.IsFragment(html)) { - let href = FormattedTextBox.GetHref(html); - if (href) { - let docid = FormattedTextBox.GetDocFromUrl(href); - if (docid) { // prosemirror text containing link to dash document - DocServer.GetRefField(docid).then(f => { - if (f instanceof Doc) { - if (options.x || options.y) { f.x = options.x; f.y = options.y; } // should be in CollectionFreeFormView - (f instanceof Doc) && this.props.addDocument(f, false); - } - }); - } else { - this.props.addDocument && this.props.addDocument(Docs.WebDocument(href, options)); - } - } else if (text) { - this.props.addDocument && this.props.addDocument(Docs.TextDocument({ ...options, documentText: "@@@" + text }), false); - } - return; - } if (html && html.indexOf(" Date: Tue, 11 Jun 2019 13:30:28 -0400 Subject: changes --- .../CollectionFreeFormLinksView.tsx | 2 +- src/client/views/nodes/Timeline.tsx | 103 ++++++++++++++------- 2 files changed, 73 insertions(+), 32 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx index c4dd534ed..481202dfc 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx @@ -109,7 +109,7 @@ export class CollectionFreeFormLinksView extends React.Component { if (this._isRecording === true) { this._isRecording = false; return; - } + } this._isRecording = true; let children = Cast(this.props.Document[this.props.fieldKey], listSpec(Doc)); if (!children) { @@ -75,7 +77,6 @@ export class Timeline extends CollectionSubView(Document) { }, async data => { if (this._inner.current) { if (!this._barMoved) { - let bar; if (this._data.indexOf(node) === -1) { this._data.push(node); let index = this._data.indexOf(node); @@ -84,15 +85,15 @@ export class Timeline extends CollectionSubView(Document) { let info: Doc[] = new Array(1000); //kinda weird info[this._currentBarX] = timeandpos; this._keyframes[index] = info; - - //graphical yellow bar - bar = this.createBar(5, this._currentBarX, "yellow"); + this._bars = []; + + this._bars.push({ x: this._currentBarX, doc: node }); } else { let index = this._data.indexOf(node); if (this._keyframes[index][this._currentBarX] !== undefined) { //when node is in data, but doesn't have data for this specific time. let timeandpos = this.setTimeAndPos(node); - bar = this.createBar(5, this._currentBarX, "yellow"); this._keyframes[index][this._currentBarX] = timeandpos; + this._bars.push({ x: this._currentBarX, doc: node }); } else { //when node is in data, and has data for this specific time let timeandpos = this.setTimeAndPos(node); this._keyframes[index][this._currentBarX] = timeandpos; @@ -103,6 +104,8 @@ export class Timeline extends CollectionSubView(Document) { }); }; + + observe(childrenList as IObservableArray, change => { if (change.type === "update") { this._reactionDisposers[change.index](); @@ -116,6 +119,7 @@ export class Timeline extends CollectionSubView(Document) { } + @action setTimeAndPos = (node: Doc) => { let pos: Position = Position(node); let timeandpos = new Doc(); @@ -162,6 +166,7 @@ export class Timeline extends CollectionSubView(Document) { }); } + @action calcMinLeft = (kfList: Doc[], time: number): number => { //returns the time of the closet keyframe to the left let counter: number = Infinity; let leftMin: number = Infinity; @@ -177,6 +182,10 @@ export class Timeline extends CollectionSubView(Document) { return leftMin; } + /** + * calculates the + */ + @action calcMinRight = (kfList: Doc[], time: number): number => { //returns the time of the closest keyframe to the right let counter: number = Infinity; let rightMin: number = Infinity; @@ -196,7 +205,9 @@ export class Timeline extends CollectionSubView(Document) { /** * Linearly interpolates a document from time1 to time2 * @param Doc that needs to be modified - * @param + * @param kf1 timeandposition of the first yellow bar + * @param kf2 timeandposition of the second yellow bar + * @param time time that you want to interpolate */ @action interpolate = async (doc: Doc, kf1: TimeAndPosition, kf2: TimeAndPosition, time: number) => { @@ -213,18 +224,22 @@ export class Timeline extends CollectionSubView(Document) { }); } - private _barMoved: boolean = false; + /** + * when user lifts the pointer. Removes pointer move event and no longer tracks green bar moving + * @param e react pointer event + */ @action onInnerPointerUp = (e: React.PointerEvent) => { if (this._inner.current) { this._barMoved = false; this._inner.current.removeEventListener("pointermove", this.onInnerPointerMove); } - this._data.forEach((node) => { - console.log(node.y); - }); } + /** + * called when user clicks on a certain part of the inner. This will move the green bar to that position. + * @param e react pointer event + */ @action onInnerPointerDown = (e: React.PointerEvent) => { e.preventDefault(); @@ -235,7 +250,7 @@ export class Timeline extends CollectionSubView(Document) { let mouse = e.nativeEvent; let offsetX = Math.round(mouse.offsetX); this._currentBarX = offsetX; - this._inner.current.removeEventListener("pointermove", this.onInnerPointerMove); //reset + this._inner.current.removeEventListener("pointermove", this.onInnerPointerMove); this._inner.current.addEventListener("pointermove", this.onInnerPointerMove); this.timeChange(this._currentBarX); } @@ -243,54 +258,71 @@ export class Timeline extends CollectionSubView(Document) { } } + /** + * Called when you drag the green bar across the inner div. + * @param e pointer event + */ @action onInnerPointerMove = (e: PointerEvent) => { e.preventDefault(); e.stopPropagation(); this._barMoved = true; - let offsetX = Math.round(e.offsetX); + let offsetX = Math.round(e.offsetX); //currentbarX is rounded so it is indexable this._currentBarX = offsetX; this.timeChange(this._currentBarX); } - createBar = (width: number, pos: number = 0, color: string = "green"):JSX.Element => { + /** + * creates JSX bar element. + * @param width required: the thickness of the bar + * @param pos optional: the position of the bar + * @param color option: default is green, but you can choose other colors + */ + @action + createBar = (width: number, pos: number = 0, color: string = "green"): JSX.Element => { return (
); } + /** + * called when you input a certain time on the input bar and press enter. The green bar will move to that location. + * @param e keyboard event + */ + @action onTimeEntered = (e: React.KeyboardEvent) => { if (this._timeInput.current) { if (e.keyCode === 13) { let input = parseInt(this._timeInput.current.value) || 0; this._currentBarX = input; + this.timeChange(input); } } } - componentDidMount() { - - let doc: Doc = this.props.Document; - let test = this.props.Document[this.props.fieldKey]; - - } - + /** + * removes reaction when the component is removed from the timeline + */ componentWillUnmount() { this._reactionDisposers.forEach(disp => disp()); this._reactionDisposers = []; } + + /** + * Displays yellow bars per node when selected + */ @action - displayKeyFrames = (dv: DocumentView) => { - let doc: Doc = dv.props.Document; + displayKeyFrames = (doc: Doc) => { let views: (JSX.Element | null)[] = []; + //this._bar = undefined; this._data.forEach((node, i) => { if (node === doc) { views = this._keyframes[i].map(tp => { @@ -307,18 +339,27 @@ export class Timeline extends CollectionSubView(Document) { return views; } + // @action + // currentKeyFrames = (doc?:Doc) => { + // this.displayKeyFrames(doc!); + // } + render() { return (
- {SelectionManager.SelectedDocuments().map((dv) => this.displayKeyFrames(dv))} + {SelectionManager.SelectedDocuments().map(dv => this.displayKeyFrames(dv.props.Document))} + {this._bars.map((data) => { + return this.createBar(5, data.x, "yellow"); + })} {this.createBar(5, this._currentBarX)} +
- +
); -- cgit v1.2.3-70-g09d2 From 82f21b627c4823b1984cd1865aea6eb91f290eca Mon Sep 17 00:00:00 2001 From: andrewdkim Date: Thu, 20 Jun 2019 11:48:45 -0400 Subject: drag change --- .../collectionFreeForm/CollectionFreeFormView.tsx | 1 + src/client/views/nodes/Keyframe.scss | 2 + src/client/views/nodes/Keyframe.tsx | 57 +++++++++++++++++++--- src/client/views/nodes/Track.tsx | 5 +- 4 files changed, 56 insertions(+), 9 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index a977f4090..1a99ac383 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -26,6 +26,7 @@ import { MarqueeView } from "./MarqueeView"; import React = require("react"); import v5 = require("uuid/v5"); import PDFMenu from "../../pdf/PDFMenu"; +import { Timeline } from "../../nodes/Timeline"; export const panZoomSchema = createSchema({ panX: "number", diff --git a/src/client/views/nodes/Keyframe.scss b/src/client/views/nodes/Keyframe.scss index 298fec34a..930384c7f 100644 --- a/src/client/views/nodes/Keyframe.scss +++ b/src/client/views/nodes/Keyframe.scss @@ -24,6 +24,7 @@ left:-10px; height:20px; width:20px; + background-color: black; top: calc(50% - 10px); position:absolute; } @@ -32,6 +33,7 @@ height:20px; width:20px; top:calc(50% - 10px); + background-color:black; position:absolute; } diff --git a/src/client/views/nodes/Keyframe.tsx b/src/client/views/nodes/Keyframe.tsx index cef6aac83..6f7a7ec0b 100644 --- a/src/client/views/nodes/Keyframe.tsx +++ b/src/client/views/nodes/Keyframe.tsx @@ -25,8 +25,9 @@ export class Keyframe extends React.Component { @observable private _display:string = "none"; @observable private _duration:number = 200; + @observable private _bar = React.createRef(); - async componentDidMount() { + componentDidMount() { console.log("mounted"); if (this.props.node){ @@ -42,16 +43,14 @@ export class Keyframe extends React.Component { onPointerEnter = (e: React.PointerEvent) => { e.preventDefault(); e.stopPropagation(); - //console.log("in"); - this._display = "block"; + //this._display = "block"; } @action onPointerOut = (e: React.PointerEvent) => { e.preventDefault(); e.stopPropagation(); - //console.log("out"); - this._display = "none"; + //this._display = "none"; } @action @@ -69,13 +68,55 @@ export class Keyframe extends React.Component { e.preventDefault(); e.stopPropagation(); } + + @action + onResizeLeft = (e:React.PointerEvent)=>{ + let bar = this._bar.current!; + bar.addEventListener("pointermove", this.onDragResizeLeft); + } + + @action + onDragResizeLeft = (e:PointerEvent)=>{ + e.preventDefault(); + e.stopPropagation(); + let bar = this._bar.current!; + let barX = bar.getBoundingClientRect().left; + let offset = barX - e.clientX; + bar.style.width = `${bar.getBoundingClientRect().width + offset}px`; + } + + @action + onResizeFinished =(e:React.PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + let bar = this._bar.current!; + bar.removeEventListener("pointermove", this.onDragResizeLeft); + } + @action + onResizeRight = (e:React.PointerEvent)=> { + e.preventDefault(); + e.stopPropagation(); + let bar = this._bar.current!; + bar.addEventListener("pointermove", this.onDragResizeRight); + } + + @action + onDragResizeRight = (e:PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + let bar = this._bar.current!; + let barX = bar.getBoundingClientRect().right; + let offset = e.clientX - barX; + bar.style.width = `${bar.getBoundingClientRect().width + offset}px`; + } + render() { return (
-
-
-
+
+
+
{/* diff --git a/src/client/views/nodes/Track.tsx b/src/client/views/nodes/Track.tsx index cfb30aac5..dab73ce06 100644 --- a/src/client/views/nodes/Track.tsx +++ b/src/client/views/nodes/Track.tsx @@ -398,7 +398,10 @@ export class Track extends React.Component { @action onInnerDoubleClick = (e: React.MouseEvent) => { - this._keyframes.push(); + let inner = this._inner.current!; + let left = inner.getBoundingClientRect().left; + let offsetX = Math.round(e.clientX - left); + this._keyframes.push(); } render() { -- cgit v1.2.3-70-g09d2 From 918b0567a071e4fcb61c2afed676c850f8616e89 Mon Sep 17 00:00:00 2001 From: andrewdkim Date: Wed, 10 Jul 2019 17:13:17 -0400 Subject: Interpolation and keyframe modifications --- report.20190710.094052.12936.001.json | 51880 +++++++++++++++++++ .../collectionFreeForm/CollectionFreeFormView.tsx | 2 +- src/client/views/nodes/Keyframe.tsx | 87 +- src/client/views/nodes/Timeline.tsx | 170 +- src/client/views/nodes/Track.tsx | 74 +- 5 files changed, 52065 insertions(+), 148 deletions(-) create mode 100644 report.20190710.094052.12936.001.json (limited to 'src/client/views/collections') diff --git a/report.20190710.094052.12936.001.json b/report.20190710.094052.12936.001.json new file mode 100644 index 000000000..270feeb31 --- /dev/null +++ b/report.20190710.094052.12936.001.json @@ -0,0 +1,51880 @@ + +{ + "header": { + "event": "Allocation failed - JavaScript heap out of memory", + "location": "OnFatalError", + "filename": "report.20190710.094052.12936.001.json", + "dumpEventTime": "2019/07/10 09:40:52", + "processId": "12936", + "commandLine": [ + "C:\\Program Files\\nodejs\\node.exe", + "-r", + "C:/Users/Andri/AppData/Local/Temp/ts-node-dev-hook-8543301815590238.js", + "C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ts-node-dev\\lib\\wrap.js", + "src/server/index.ts" + ], + "nodejsVersion": "v11.8.0", + "wordSize": "64 bit", + "componentVersions": { + "node": "11.8.0", + "v8": "7.0.276.38-node.16", + "uv": "1.25.0", + "zlib": "1.2.11", + "brotli": "1.0.7", + "ares": "1.15.0", + "modules": "67", + "nghttp2": "1.34.0", + "napi": "4", + "llhttp": "1.0.1", + "http_parser": "2.8.0", + "openssl": "1.1.0j", + "cldr": "34.0", + "icu": "63.1", + "tz": "2018e", + "unicode": "11.0", + "arch": "x64", + "platform": "win32", + "release": "node" + }, + "osVersion": "Windows 10", + "machine": "DESKTOP-G9G1TRP " + }, + "javascriptStack": { + "message": "No stack.", + "stack": [ + "Unavailable." + ] + }, + "nativeStack": [ + " [pc=00007FF793186B5C] std::basic_ostream >::operator<<+8924", + " [pc=00007FF793185C8D] std::basic_ostream >::operator<<+5133", + " [pc=00007FF793185662] std::basic_ostream >::operator<<+3554", + " [pc=00007FF79327FD9D] uv_loop_fork+82637", + " [pc=00007FF79373CF4E] v8::internal::FatalProcessOutOfMemory+798", + " [pc=00007FF79373CE87] v8::internal::FatalProcessOutOfMemory+599", + " [pc=00007FF793A15C94] v8::internal::Heap::RootIsImmortalImmovable+14788", + " [pc=00007FF793A0B8D4] v8::internal::Heap::CollectGarbage+7556", + " [pc=00007FF793A09FA8] v8::internal::Heap::CollectGarbage+1112", + " [pc=00007FF793A13917] v8::internal::Heap::RootIsImmortalImmovable+5703", + " [pc=00007FF793A13996] v8::internal::Heap::RootIsImmortalImmovable+5830", + " [pc=00007FF7935D4871] v8::internal::Factory::NewFillerObject+49", + " [pc=00007FF793D2F76A] v8::internal::StoreBuffer::StoreBufferOverflow+26826", + " [pc=000001AD5A750461] " + ], + "javascriptHeap": { + "totalMemory": "1510240256", + "totalCommittedMemory": "1510240256", + "usedMemory": "1352300040", + "availableMemory": "35498568", + "memoryLimit": "1526909922", + "heapSpaces": { + "read_only_space": { + "memorySize": "524288", + "committedMemory": "524288", + "capacity": "515584", + "used": "33520", + "available": "482064" + }, + "new_space": { + "memorySize": "33554432", + "committedMemory": "33554432", + "capacity": "16498688", + "used": "1406640", + "available": "15092048" + }, + "old_space": { + "memorySize": "1188237312", + "committedMemory": "1188237312", + "capacity": "1070105168", + "used": "1066015336", + "available": "4089832" + }, + "code_space": { + "memorySize": "4718592", + "committedMemory": "4718592", + "capacity": "3904832", + "used": "3904832", + "available": "0" + }, + "map_space": { + "memorySize": "3158016", + "committedMemory": "3158016", + "capacity": "2490560", + "used": "2490560", + "available": "0" + }, + "large_object_space": { + "memorySize": "280047616", + "committedMemory": "280047616", + "capacity": "294283776", + "used": "278449152", + "available": "15834624" + }, + "new_large_object_space": { + "memorySize": "0", + "committedMemory": "0", + "capacity": "0", + "used": "0", + "available": "0" + } + } + }, + "libuv": [ + { + "type": "async", + "is_active": "1", + "is_referenced": "0", + "address": "2492387899936", + "details": "" + }, + { + "type": "timer", + "is_active": "1", + "is_referenced": "1", + "address": "757181967168", + "details": "repeat: 0, timeout in: 165 ms" + }, + { + "type": "check", + "is_active": "1", + "is_referenced": "0", + "address": "757181967328", + "details": "" + }, + { + "type": "idle", + "is_active": "0", + "is_referenced": "1", + "address": "757181967448", + "details": "" + }, + { + "type": "prepare", + "is_active": "0", + "is_referenced": "0", + "address": "757181967568", + "details": "" + }, + { + "type": "check", + "is_active": "0", + "is_referenced": "0", + "address": "757181967688", + "details": "" + }, + { + "type": "async", + "is_active": "1", + "is_referenced": "0", + "address": "140701326272064", + "details": "" + }, + { + "type": "async", + "is_active": "1", + "is_referenced": "0", + "address": "140701326271840", + "details": "" + }, + { + "type": "pipe", + "is_active": "1", + "is_referenced": "0", + "address": "2492416829584", + "details": ", write queue size: 0, readable, writable" + }, + { + "type": "signal", + "is_active": "1", + "is_referenced": "0", + "address": "2492416822672", + "details": "signum: 15" + }, + { + "type": "tty", + "is_active": "0", + "is_referenced": "1", + "address": "2492417211520", + "details": "width: 240, height: 22, write queue size: 0, writable" + }, + { + "type": "signal", + "is_active": "1", + "is_referenced": "0", + "address": "2492418357200", + "details": "signum: 28" + }, + { + "type": "tty", + "is_active": "0", + "is_referenced": "1", + "address": "2492417204864", + "details": "width: 240, height: 22, write queue size: 0, writable" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492428529680", + "details": "DESKTOP-G9G1TRP:50347 connected to DESKTOP-G9G1TRP:27017, send buffer size: 65536, recv buffer size: 65536, write queue size: 0, readable, writable" + }, + { + "type": "pipe", + "is_active": "1", + "is_referenced": "0", + "address": "2492429235936", + "details": ", write queue size: 0, readable, writable" + }, + { + "type": "process", + "is_active": "1", + "is_referenced": "1", + "address": "2492429619040", + "details": "pid: 8668" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492428528688", + "details": "DESKTOP-G9G1TRP:1050 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492428531168", + "details": "DESKTOP-G9G1TRP:4321 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492428529184", + "details": "DESKTOP-G9G1TRP:50349 connected to DESKTOP-G9G1TRP:27017, send buffer size: 65536, recv buffer size: 65536, write queue size: 0, readable, writable" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492421629728", + "details": "DESKTOP-G9G1TRP:50350 connected to DESKTOP-G9G1TRP:27017, send buffer size: 65536, recv buffer size: 65536, write queue size: 0, readable, writable" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492421629232", + "details": "DESKTOP-G9G1TRP:50351 connected to DESKTOP-G9G1TRP:27017, send buffer size: 65536, recv buffer size: 65536, write queue size: 0, readable, writable" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418948416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418952096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\cache\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418954304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\hash\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418942528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\memoize\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418945840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\serialize\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418954672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\sheet\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418955040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\stylis\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418946208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\unitless\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418939584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\utils\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418939952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\weak-memoize\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418946576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\fontawesome-svg-core" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418946944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418940320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\react-fontawesome" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418940688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@hig\\flyout\\build" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418941056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@hig\\theme-context\\build" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418941424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@hig\\theme-data\\build\\json\\webLightMediumDensityTheme" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418941792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418947312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\after" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418942160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418943632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\compile" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418944000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496410944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\refs" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496417200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ansi-html" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496417936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\arraybuffer.slice" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496413152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1.js\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496422720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1.js\\lib\\asn1" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496409104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1.js\\lib\\asn1\\base" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496409472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1.js\\lib\\asn1\\constants" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496411680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1.js\\lib\\asn1\\decoders" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496423088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1.js\\lib\\asn1\\encoders" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496417568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1\\lib\\ber" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496420880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496408736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\assert-plus" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496420144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\assert" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496407632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\aws-sign2" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496418304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\aws4" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496413520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\backo2" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496418672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\base64-arraybuffer\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496407264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\base64-js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496421616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\bcrypt-pbkdf" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496408000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\blob" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496409840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\bluebird\\js\\browser" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496416832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\bn.js\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496419408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\brorand" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496413888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496410208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\modes" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496414256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-cipher" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496410576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-des" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496420512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-rsa" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496419040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-sign" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496414992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-sign\\browser" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496419776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-zlib\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496421248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer-from" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496421984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer-shims" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496422352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer-xor" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496415728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496416096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\builtin-status-codes" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496416464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\caseless" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422754976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\cipher-base" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422756816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\classnames" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422756080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\combined-stream\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422760864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\component-bind" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422759392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\component-inherit" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422761968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\core-util-is\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422757184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-ecdh" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422756448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-emotion\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422757552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-hash" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422760496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-hmac" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422757920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-react-context\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422760128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\crel" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422761232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\crypto-browserify" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422755344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\css-loader\\dist\\runtime" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422762336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\d3-format\\src" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422758288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\delayed-stream\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422755712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\des.js\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422758656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\des.js\\lib\\des" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422759024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\diffie-hellman" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422759760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\diffie-hellman\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435146688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ecc-jsbn" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435150736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ecc-jsbn\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435145584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435160304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib\\elliptic\\curve" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435147056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib\\elliptic" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435157360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib\\elliptic\\ec" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435145952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib\\elliptic\\eddsa" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435156992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib\\elliptic\\precomputed" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435149264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435148528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\emotion\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435150000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435160672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\lib\\transports" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435152576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\node_modules\\component-emitter" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435148896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\node_modules\\debug\\src" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435151104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-parser\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435146320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\events" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435159568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\evp_bytestokey" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435150368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\exenv" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435144848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\extend" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435154048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\extsprintf\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435147424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fast-deep-equal" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435149632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fast-json-stable-stringify" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435154784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435148160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\flexlayout-react\\images" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435147792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\forever-agent" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435151840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\form-data\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435152208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\golden-layout\\src\\css" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435154416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\gud" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435155152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-schema\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435155520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-validator\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435156256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\has-binary2" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435156624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\has-binary2\\node_modules\\isarray" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435157728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\has-cors" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435158096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash-base" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435158464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash.js\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435158832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash.js\\lib\\hash" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435159200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash.js\\lib\\hash\\sha" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495395888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hmac-drbg\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495402880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\html-entities" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495398096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\html-entities\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495403616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\http-signature\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495392944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\https-browserify" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495396624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ieee754" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495402512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\image-size\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495403248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\image-size\\lib\\types" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495398464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\indexof" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495403984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\inherits" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495404352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\is-typedarray" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495405456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\isarray" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495393312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\isstream" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495404720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\jquery\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495405824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\jsbn" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495408400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\json-schema-traverse" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495396992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\json-schema\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495396256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\json-stringify-safe" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495401776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\jsprim\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495398832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495405088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\material-colors\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495401040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\md5.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495408032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\miller-rabin\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495393680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mime-db" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495394416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mime-types" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495399936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\minimalistic-assert" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495399200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\minimalistic-crypto-utils\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495406192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495395520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-utils" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495406560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495402144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ms" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495401408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\node-libs-browser\\mock" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495406928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\node-libs-browser\\node_modules\\punycode" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495407296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\normalize.css" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495397360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\oauth-sign" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495397728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\object-assign" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495407664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\orderedmap" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495399568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\os-browserify" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495408768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pako\\lib\\utils" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495394048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pako\\lib\\zlib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495394784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parse-asn1" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495395152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parseqs" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495400672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parseuri" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493804096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\path-browserify" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493808880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pbkdf2" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493809248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pbkdf2\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493803728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\build" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493807776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\web\\images" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493810720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\web" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493809616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\performance-now\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493804832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\process-nextick-args" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493809984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\process" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493810352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prop-types" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493802992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prop-types\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493803360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-commands\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493808144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-history\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493806672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-inputrules\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493807408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-keymap\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493804464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-menu\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493808512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-model\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493805200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-schema-list\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493805568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-state\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493805936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-transform\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493806304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-view\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493807040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\psl\\data" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489830368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\psl" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489831104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\public-encrypt" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489830000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\querystring-es3" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489828160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\randombytes" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489831840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\randomfill" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489833312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\alpha" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489827056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\block" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489831472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\chrome" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489825584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\circle" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489832208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\common" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489828896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\compact" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489826688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\github" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489832944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\hue" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489827792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\material" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489826320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\photoshop" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489825952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\sketch" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489829632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\slider" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489830736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\swatches" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489814544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\twitter" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489807184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\helpers" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489825216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489807920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\cjs" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489813808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489810496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-image-lightbox\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489822272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-image-lightbox" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489820800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-is\\cjs" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489815648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-is" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489814176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-jsx-parser\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489821536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-lifecycles-compat" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489814912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-measure\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489803136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-modal\\lib\\components" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489815280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-modal\\lib\\helpers" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489808656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-modal\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489809024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-table\\es" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489820432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-table" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489823008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-transition-group" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489820064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-transition-group\\utils" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489811600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react\\cjs" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489822640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489818592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\reactcss\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489824480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\reactcss\\lib\\components" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489807552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489819328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489808288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\lib\\internal\\streams" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489810128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request-image-size" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489811968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request-promise-core\\configure" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489823376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request-promise-core\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489802400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request-promise\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489804608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489809392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489809760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\node_modules\\qs\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489823744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\resize-observer-polyfill\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489824848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ripemd160" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489802032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\rope-sequence\\dist" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489816384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\safe-buffer" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489802768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\safer-buffer" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489811232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\scheduler\\cjs" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489803504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\scheduler" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489816016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\serializr\\lib\\es" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489806816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\setimmediate" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489817120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sha.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489812336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-client\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489812704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-client\\node_modules\\component-emitter" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489805712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-client\\node_modules\\debug\\src" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489813440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489817488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\node_modules\\component-emitter" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489819696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\node_modules\\debug\\src" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493362352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\node_modules\\isarray" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493366400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\node_modules\\source-map\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493365664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\node_modules\\source-map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493360512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493360880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493362720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\formats" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493361248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\standard-error" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493361616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\standard-http-error" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493367136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stealthy-require\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493363088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-browserify" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493363456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493363824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493364192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\process-nextick-args" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493341376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493342480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\lib\\internal\\streams" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493347632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493355360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\string_decoder\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493356096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\style-loader\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493336592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\timers-browserify" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493356832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tinycolor2" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493352416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\to-array" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493346160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\to-arraybuffer" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493339536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tough-cookie\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493356464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tough-cookie" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493346528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tunnel-agent" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493348736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tweetnacl" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493359040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493344688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uri-js\\dist\\es5" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493342112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\url" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493337328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\util-deprecate" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493345424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\util\\support" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493357200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\util" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493348000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493335856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493350944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\verror\\lib" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493349104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\vm-browserify" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493336224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\w3c-keyname" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493336960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\warning" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493345056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack-hot-middleware" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493338064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack-hot-middleware\\node_modules\\ansi-regex" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493338432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack-hot-middleware\\node_modules\\strip-ansi" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493339168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack\\buildin" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493348368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\xtend" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493349840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\yeast" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493343216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493355728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493339904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\documents" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493341744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\core" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493354624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\core\\attribute" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493358672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\core\\filter" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493350208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\dash-fields" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493340272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\dash-nodes" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493354256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\manager" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493357568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\model" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493354992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\model\\binRanges" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493350576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\model\\idea" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493351312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\operations" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493345792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\utils" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493344320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493340640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\ProsemirrorCopy" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493341008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493346896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493351680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\collectionFreeForm" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493352048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493529824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\pdf" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493536080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\debug" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493525408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\fields" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493529088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\mobile" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493530928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\new_fields" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493533504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\server" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493530560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\server\\authentication\\models" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493535344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\deploy" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493532768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\deploy\\assets" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493529456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\deploy\\debug" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493533872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\deploy\\mobile" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493530192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\Utils.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493534240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\.DS_Store" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493537552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\deploy\\index.html" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493531296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\deploy\\test.pdf" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493531664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\after\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493538288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\after\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493535712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\after\\LICENCE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493532032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\after\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493536816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\after\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493532400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\after\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493527248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\arraybuffer.slice\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493537184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\arraybuffer.slice\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493526144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\arraybuffer.slice\\LICENCE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493534608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\arraybuffer.slice\\Makefile" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493533136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\arraybuffer.slice\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493526512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\arraybuffer.slice\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493534976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ansi-html\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493525040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ansi-html\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493525776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ansi-html\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493528720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ansi-html\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493538656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ansi-html\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493526880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\assert\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493527616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\assert\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493524304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\assert\\.zuul.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493527984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\assert\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493537920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\assert\\assert.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493528352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\assert\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493536448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\assert\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493540128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\assert\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493524672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\aws-sign2\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493539024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\assert-plus\\assert.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493539392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\aws-sign2\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493539760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\aws-sign2\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493352784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\aws-sign2\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493347264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\assert-plus\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493342848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\assert-plus\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493349472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\assert-plus\\CHANGES.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493353152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\assert-plus\\AUTHORS" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493343584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\base64-js\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493353520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\base64-js\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493343952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\base64-js\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493353888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\base64-js\\base64js.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493357936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\base64-js\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493358304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\backo2\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493337696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\backo2\\History.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493338800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\backo2\\Makefile" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493361984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\backo2\\Readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493367872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\backo2\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493367504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\backo2\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493364560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\backo2\\component.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493364928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\aws4\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493365296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\aws4\\lru.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493359408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\aws4\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493366032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\aws4\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493366768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\aws4\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493359776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\aws4\\aws4.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493360144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\bcrypt-pbkdf\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489803872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\bcrypt-pbkdf\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489810864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\bcrypt-pbkdf\\CONTRIBUTING.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489816752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\bcrypt-pbkdf\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489813072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\bcrypt-pbkdf\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489818960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\brorand\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489804976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\brorand\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489804240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\brorand\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489824112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\brorand\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489817856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\blob\\.zuul.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489805344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\blob\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489806080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\blob\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489818224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\blob\\Makefile" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489821168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\blob\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489821904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\blob\\component.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489806448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\blob\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489828528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489834048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\aes.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489829264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489832576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489833680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\authCipher.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492489827424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418950992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\decrypter.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418952464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\encrypter.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418947680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\ghash.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418942896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\incr32.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418945104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418945472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\streamCipher.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418948048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418948784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-cipher\\browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418949152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-cipher\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418949888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-cipher\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418951728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-cipher\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418950256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-cipher\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492418951360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-cipher\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496408368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-des\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496411312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-cipher\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496412784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-des\\modes.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496412048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-des\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496412416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-des\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496414624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-des\\license" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496415360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-des\\readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435155888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-des\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435153680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-rsa\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435159936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-rsa\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435145216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-rsa\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435151472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-rsa\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435152944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-rsa\\readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435153312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-rsa\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422761600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-sign\\algos.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492422762704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-sign\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492495400304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-sign\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491370704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-sign\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491369232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\builtin-status-codes\\browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491379904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-sign\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491364080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\builtin-status-codes\\build.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491386528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\builtin-status-codes\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491365920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\builtin-status-codes\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491385056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\builtin-status-codes\\license" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491367392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\builtin-status-codes\\readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491371072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer-xor\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491374752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer-xor\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491372912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer-xor\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491381008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer-xor\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491371808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer-xor\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491380272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer-xor\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491364448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer-xor\\inline.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491376224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\cipher-base\\.eslintrc" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491378432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\cipher-base\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491385424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer-xor\\inplace.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491366656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\cipher-base\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491363344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\cipher-base\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491372176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\cipher-base\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491366288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\cipher-base\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491371440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\cipher-base\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491367760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\cipher-base\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491368864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\caseless\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491369968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\caseless\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491372544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\caseless\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491367024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\caseless\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491382480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\caseless\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491377696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\classnames\\HISTORY.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491375120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\classnames\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491380640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\classnames\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491375856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\classnames\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491376592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\classnames\\bind.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491368128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\classnames\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491364816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\classnames\\dedupe.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491377328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\component-inherit\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491374384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\component-inherit\\Makefile" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491381376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\component-inherit\\History.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491373648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\component-inherit\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491365184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\component-inherit\\Readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491374016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\component-inherit\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491379536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\component-inherit\\component.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491368496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-hash\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491373280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-hash\\browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491369600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-hash\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491370336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-hash\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491382848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-hash\\md5.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491375488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-hash\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491376960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-hash\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491378064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-ecdh\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491378800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-hash\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491379168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-ecdh\\browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491381744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-ecdh\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491382112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-ecdh\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491383216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-ecdh\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491383584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-ecdh\\readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491383952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491384320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491384688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491385792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491386160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer\\AUTHORS.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491363712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491365552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491393888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer-shims\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491388368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer-shims\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491387264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-hmac\\browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491387632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer-shims\\license.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491389104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer-shims\\readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491390208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-hmac\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491388000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-hmac\\legacy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491394992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-hmac\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491386896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-hmac\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491395360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-hmac\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491388736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\crypto-browserify\\.zuul.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491394256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\crypto-browserify\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491389472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\crypto-browserify\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491389840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\crypto-browserify\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491394624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\crypto-browserify\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491390576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\crypto-browserify\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491392784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\component-bind\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491390944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\component-bind\\Makefile" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491391312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\component-bind\\History.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491391680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\component-bind\\Readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491392048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\component-bind\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491392416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\component-bind\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491393520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\component-bind\\component.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492491393152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\crel\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433073696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\crel\\crel.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433077008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\crel\\LICENSE.txt" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433071120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\crel\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433078848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\crel\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433077744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\crel\\crel.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433075168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\crel\\logo.png" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433078480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\diffie-hellman\\browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433076272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\diffie-hellman\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433079216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\diffie-hellman\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433074064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\diffie-hellman\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433079584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\diffie-hellman\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496125120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\diffie-hellman\\readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496126224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ecc-jsbn\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496112240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ecc-jsbn\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496126960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ecc-jsbn\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496123280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ecc-jsbn\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496126592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ecc-jsbn\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496108192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496123648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496117024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\events\\.airtap.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496108928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\events\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496112608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\events\\History.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496109296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\events\\events.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496109664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\events\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496117392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\events\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496112976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\events\\Readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497050336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\exenv\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497061376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\exenv\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497061744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\exenv\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497050704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\extend\\.editorconfig" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497046656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\exenv\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497065792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\extend\\.eslintrc" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497062848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\extend\\.jscs.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497054752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\extend\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497063216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\extend\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497047760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\extend\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497045552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\extend\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497056960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\extend\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497055120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\extend\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497057328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\extend\\component.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497066160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\evp_bytestokey\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497062112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\evp_bytestokey\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497051072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\evp_bytestokey\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497044448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\evp_bytestokey\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497047024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fast-json-stable-stringify\\.eslintrc.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497055488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fast-json-stable-stringify\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497053648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fast-json-stable-stringify\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497065424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fast-json-stable-stringify\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497062480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fast-json-stable-stringify\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497052912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fast-json-stable-stringify\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497060272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fast-json-stable-stringify\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497054016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\forever-agent\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497048496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\forever-agent\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497066528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\forever-agent\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497045920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\forever-agent\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497048864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\has-binary2\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497055856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\has-binary2\\History.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497056224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\has-binary2\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497054384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\has-binary2\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497059536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\has-binary2\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497058432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\gud\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497056592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\gud\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497064688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\gud\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497049968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\has-cors\\History.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497049232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\has-cors\\Makefile" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497066896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\has-cors\\Readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497052176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\has-cors\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497045184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\has-cors\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497065056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\has-cors\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497048128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\has-cors\\component.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497043712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash-base\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497057696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\has-cors\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497046288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash-base\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497049600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash-base\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497044816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash-base\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497044080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer-from\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497047392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer-from\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497059168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer-from\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497051808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\buffer-from\\readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497052544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fast-deep-equal\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497058064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fast-deep-equal\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497064320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fast-deep-equal\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497058800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fast-deep-equal\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497059904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fast-deep-equal\\index.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497060640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\html-entities\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497061008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\html-entities\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497063584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\html-entities\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497063952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\html-entities\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497073152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ieee754\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497070944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ieee754\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497071312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ieee754\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497073520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ieee754\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497072048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\isarray\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497074624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\isarray\\Makefile" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497068736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\isarray\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497071680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\isarray\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497075360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\isarray\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497072416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\isarray\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497075728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\isarray\\component.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497072784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\isarray\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497073888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\indexof\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497074256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\indexof\\Makefile" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497070208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\indexof\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497074992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\indexof\\component.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497067264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\indexof\\Readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497067632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\indexof\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497069104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\inherits\\inherits.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497070576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\inherits\\inherits_browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497068000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\inherits\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497068368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\inherits\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497069472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\https-browserify\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497069840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\inherits\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494784464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\https-browserify\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494795136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\https-browserify\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494785200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\https-browserify\\readme.markdown" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494782624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\is-typedarray\\LICENSE.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494789248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\is-typedarray\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494787408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\is-typedarray\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494782256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\is-typedarray\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494794400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\is-typedarray\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494796240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\json-schema-traverse\\.eslintrc.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494786304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\json-schema-traverse\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494789984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\json-schema-traverse\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494794032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\json-schema-traverse\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494794768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\json-schema-traverse\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494793296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\json-schema-traverse\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494798080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\isstream\\.jshintrc" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494782992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\isstream\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494795872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\isstream\\LICENSE.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494791088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\isstream\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494783360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\isstream\\isstream.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494796608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\isstream\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494796976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\isstream\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494792928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\isstream\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494787040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\jsbn\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494783728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\jsbn\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494784096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\jsbn\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494788512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\jsbn\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494793664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\jsbn\\example.html" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494787776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\jsbn\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494788880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\md5.js\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494791824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\jsbn\\example.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494788144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\md5.js\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494790720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\md5.js\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494784832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\md5.js\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494789616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mime-db\\HISTORY.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494790352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mime-db\\db.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494785568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mime-db\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494797712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mime-db\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494795504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mime-db\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494797344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mime-db\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494780784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\json-stringify-safe\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494780416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\json-stringify-safe\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494785936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\json-stringify-safe\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494781152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\json-stringify-safe\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494786672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\json-stringify-safe\\stringify.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494781520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\json-stringify-safe\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494791456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\json-stringify-safe\\Makefile" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494792192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\minimalistic-assert\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494792560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\minimalistic-assert\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494781888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\minimalistic-assert\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494742512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\minimalistic-assert\\readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494751344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mime-types\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494747296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mime-types\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494746192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mime-types\\HISTORY.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494741040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mime-types\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494753184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ms\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494743984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mime-types\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494745456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ms\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494753920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ms\\license.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494734048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ms\\readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494736992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react\\.prettierignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494733312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react\\.browserlistrc" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494752448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react\\.editorconfig" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494755760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react\\.prettierrc" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494745824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494737728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494738096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494751712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494754288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react\\custom.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494743616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react\\custom.module.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494740672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react\\custom.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494733680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react\\empty.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494748400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react\\index.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494752080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494741408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react\\index.module.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494746928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react\\index.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494741776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react\\native.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494752816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494744352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react\\native.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494742144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-react\\yarn.lock" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494734416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\object-assign\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494753552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\object-assign\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494734784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\object-assign\\license" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494756496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\object-assign\\readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494737360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\orderedmap\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494754656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\orderedmap\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494749136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\orderedmap\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494750240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\orderedmap\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494744720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\orderedmap\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494755024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\normalize.css\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494755392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\normalize.css\\LICENSE.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494746560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\normalize.css\\normalize.css" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494735888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\normalize.css\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494749504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\normalize.css\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494738832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-utils\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494747664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-utils\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494756128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-utils\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494736256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-utils\\mobx-utils.module.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494735152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-utils\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494735520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx-utils\\mobx-utils.umd.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494736624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\oauth-sign\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494738464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\oauth-sign\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494745088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\oauth-sign\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494739200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\oauth-sign\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494748032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\os-browserify\\browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494750976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\os-browserify\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494739568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\os-browserify\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494739936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\os-browserify\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494740304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\os-browserify\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494742880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\os-browserify\\main.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494748768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parse-asn1\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494743248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parse-asn1\\aesid.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494749872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parse-asn1\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494750608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parse-asn1\\asn1.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494760176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parse-asn1\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494764592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parse-asn1\\certificate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494767904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parse-asn1\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494775264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parse-asn1\\fixProc.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494765328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parse-asn1\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494771584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parseqs\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494776736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parseqs\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494773424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parseqs\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494774160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parseqs\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494772320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parseqs\\Makefile" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494773056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parseqs\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494762016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parseqs\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494762384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\path-browserify\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494760912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\path-browserify\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494759440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\path-browserify\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494769376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\path-browserify\\readme.markdown" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494763856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parseuri\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494767168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parseuri\\History.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494761280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parseuri\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494760544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parseuri\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494764224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parseuri\\Makefile" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494761648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parseuri\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494758704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parseuri\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494766432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\parseuri\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494762752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pbkdf2\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494778944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pbkdf2\\browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494779312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pbkdf2\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494759808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pbkdf2\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494778208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pbkdf2\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494757600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_DataView.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494774528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_Hash.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494774896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_ListCache.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494775632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_Map.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494764960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494771952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494765696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_LazyWrapper.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494766800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_Promise.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494770848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_Set.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494776000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_MapCache.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494763120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_LodashWrapper.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494763488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_Symbol.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494770480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_SetCache.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494757232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_Stack.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494776368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_Uint8Array.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494773792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_WeakMap.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494766064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_apply.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494767536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_arrayEach.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494777104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_arrayEachRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494777840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_arrayAggregator.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494768272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_arrayFilter.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494777472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_arrayEvery.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494768640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_arrayIncludes.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494769008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_arrayLikeKeys.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494772688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_arrayIncludesWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494769744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_arrayMap.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494778576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_arrayPush.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494779680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_arrayReduce.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494780048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_arrayReduceRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494756864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_arraySample.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494757968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_arraySome.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494770112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_arraySampleSize.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494771216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_arrayShuffle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494758336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_asciiSize.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494759072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_assignMergeValue.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497016128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_asciiToArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497004720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_assocIndexOf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497008768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_assignValue.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497016496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseAssign.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497010976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_asciiWords.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497011712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseAssignIn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497006192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseAggregator.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497015392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseAssignValue.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497001776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseClone.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497004352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseCreate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497007664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseClamp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497013184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseAt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497005088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseConforms.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497005824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseConformsTo.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497011344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseEach.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497006560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseDelay.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497016864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseDifference.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497018336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseEachRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497006928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseExtremum.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497017232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseFilter.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497003984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseFill.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497014288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseEvery.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497008032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseFor.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497012080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseFindIndex.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497017600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseFindKey.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497002512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseFlatten.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497000672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseForOwn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497017968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseGet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497012448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseForRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497005456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseForOwnRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497015760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseGetAllKeys.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497007296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseGetTag.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497008400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseFunctions.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497013552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseGt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497009136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseHasIn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497009504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseHas.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497012816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseInRange.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497001040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseIndexOfWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497009872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseIndexOf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497010240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseIntersection.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497015024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseIsArguments.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497001408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseInverter.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497010608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseInvoke.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497013920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseIsArrayBuffer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497014656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseIsEqualDeep.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497002144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseIsDate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497002880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseIsEqual.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497003248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseIsMap.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497003616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseIsMatch.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496974544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseIsNative.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496972336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseIsNaN.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496963136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseIsRegExp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496962400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseIsSet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496963504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseIsTypedArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496962032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseIteratee.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496960192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseKeysIn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496961664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseKeys.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496972704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseMap.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496969760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseMatches.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496963872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseLt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496965712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseLodash.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496973440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseMatchesProperty.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496964240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseMergeDeep.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496966080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseMean.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496958352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseMerge.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496970496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseNth.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496975280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseOrderBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496957984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseProperty.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496974912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_basePick.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496965344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_basePickBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496954304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_basePropertyDeep.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496960560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_basePropertyOf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496954672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_basePullAll.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496967552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseRandom.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496958720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseRest.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496964608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_basePullAt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496973072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseRange.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496964976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseReduce.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496966448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseRepeat.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496973808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseSample.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496974176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseSampleSize.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496955040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseSet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496956512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseSetData.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496953568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseSetToString.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496959088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseShuffle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496975648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseSome.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496959456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseSlice.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496967184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseSortBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496970864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseSortedIndex.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496971968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseSortedIndexBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496967920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseSortedUniq.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496976016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseSum.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496968288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseTimes.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496976384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseToString.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496957248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseUnary.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496966816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseToNumber.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496968656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseToPairs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496969024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseUniq.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496959824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseUpdate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496970128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseValues.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496976752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseUnset.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496969392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseXor.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496971232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseWhile.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496953936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseWrapperValue.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496955408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_baseZipObject.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496957616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_cacheHas.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496971600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_castFunction.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496955776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_castPath.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496956144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_castArrayLikeObject.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496956880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_castRest.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496960928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_castSlice.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496961296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_charsEndIndex.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496962768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_cloneArrayBuffer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496984848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_charsStartIndex.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496997728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_cloneBuffer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496985216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_cloneDataView.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496991472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_cloneRegExp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496998096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_cloneSymbol.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496984112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_cloneTypedArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496999936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_compareMultiple.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496993680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_compareAscending.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496979696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_composeArgs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496994048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_composeArgsRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496993312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_copyArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496981168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_copySymbolsIn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496979328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_copySymbols.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496997360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_copyObject.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496996992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_coreJsData.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496985584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createBaseEach.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496983376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createAssigner.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496987792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_countHolders.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496982640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createAggregator.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496996256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createBaseFor.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496985952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createBind.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496991840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createCaseFirst.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496978224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createCtor.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496983744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createCompounder.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496992208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createCurry.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496984480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createFind.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496995888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createFlow.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496990368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createInverter.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496977856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createHybrid.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496986320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createMathOperation.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496980064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createOver.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496986688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createPartial.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496987056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createPadding.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496996624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createRange.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496994416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createRecurry.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496995520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createRelationalOperation.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496980432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createRound.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496988528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createSet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496992576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createToPairs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496987424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_customDefaultsAssignIn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496981536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_createWrap.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496992944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_customDefaultsMerge.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496998464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_defineProperty.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496994784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_customOmitClone.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496988160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_equalByTag.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496988896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_equalArrays.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496989264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_deburrLetter.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496989632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_equalObjects.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496990000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_escapeHtmlChar.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496991104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_escapeStringChar.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496998832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_flatRest.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496999200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_freeGlobal.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496990736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_getAllKeys.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496995152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_getAllKeysIn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496999568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_getData.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497000304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_getMapData.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496977120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_getFuncName.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496977488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_getMatchData.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496978592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_getHolder.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496978960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_getNative.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496980800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_getRawTag.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496982272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_getPrototype.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496981904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_getSymbolsIn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496983008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_getSymbols.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493274368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_getTag.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493274000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_getValue.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493289824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_hasPath.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493286512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_getView.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493277312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_getWrapDetails.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493285776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_hashClear.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493276944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_hasUnicode.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493292768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_hashDelete.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493280256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_hashGet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493272528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_hasUnicodeWord.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493286880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_hashHas.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493278048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_initCloneArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493274736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_initCloneByTag.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493277680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_initCloneObject.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493282096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_hashSet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493275104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_isIndex.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493275472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_insertWrapDetails.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493276576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_isFlattenable.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493290560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_isKey.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493283936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_isIterateeCall.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493278416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_isKeyable.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493283568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_isMasked.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493287616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_isPrototype.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493291664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_isStrictComparable.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493286144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_isLaziable.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493293136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_isMaskable.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493282832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_iteratorToArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493287248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_lazyReverse.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493282464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_lazyClone.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493270688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_listCacheClear.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493278784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_lazyValue.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493291296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_listCacheDelete.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493273264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_listCacheGet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493271792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_listCacheSet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493279152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_mapCacheClear.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493292032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_listCacheHas.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493279520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_mapCacheDelete.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493285040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_mapCacheGet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493280992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_mapCacheHas.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493293504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_mapCacheSet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493271424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_mapToArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493275840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_matchesStrictComparable.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493287984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_memoizeCapped.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493288720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_metaMap.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493279888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_nativeCreate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493283200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_nativeKeys.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493288352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_nativeKeysIn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493289088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_mergeData.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493270320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_nodeUtil.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493272160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_objectToString.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493280624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_overArg.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493272896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_overRest.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493290928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_parent.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493292400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_reEscape.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493281360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_reEvaluate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493281728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_reInterpolate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493276208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_realNames.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493271056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_root.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493273632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_safeGet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493284304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_reorder.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493284672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_replaceHolders.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493289456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_setCacheAdd.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493285408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_setCacheHas.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493290192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_setToArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493299392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_setToString.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493311536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_setData.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493300496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_shortOut.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493300864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_setToPairs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493316320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_stackClear.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493307120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_setWrapToString.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493303072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_stackDelete.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493306384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_shuffleSelf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493300128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_stackGet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493308224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_stackHas.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493314112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_stackSet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493302704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_strictIndexOf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493308960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_strictLastIndexOf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493293872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_stringSize.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493298288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_stringToPath.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493295344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_stringToArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493313744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_toKey.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493304544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_toSource.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493295712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_unescapeHtmlChar.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493299760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_unicodeSize.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493311904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_unicodeWords.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493315584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_unicodeToArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493302336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_updateWrapDetails.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493310800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\_wrapperClone.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493298656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\add.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493309696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\after.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493308592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\assign.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493294608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\array.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493297552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\ary.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493301232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\assignIn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493312272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\assignInWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493315952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\assignWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493303440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\at.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493303808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\attempt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493294976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\before.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493304176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\bindAll.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493311168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\bind.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493309328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\bindKey.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493297920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\camelCase.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493310064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\capitalize.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493306016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\castArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493310432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\chain.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493296080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\ceil.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493313376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\clamp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493305280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\cloneDeep.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493296448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\chunk.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493297184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\clone.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493312640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\cloneDeepWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493313008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\cloneWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493314480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\collection.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493307488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\commit.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493306752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\concat.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493296816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\compact.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493304912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\cond.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493305648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\constant.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493299024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\conforms.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493307856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\conformsTo.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493314848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\core.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493316688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\core.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493301600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\countBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493301968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\create.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493315216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\curry.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493317056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\debounce.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493294240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\date.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493329936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\curryRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493323312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\deburr.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493325152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\defaults.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493330304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\defaultTo.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493326992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\defaultsDeep.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493333616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\defer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493318896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\delay.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493329568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\difference.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493332880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\differenceBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493330672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\drop.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493318160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\dropRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493320736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\divide.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493326624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\differenceWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493320368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\each.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493323680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\dropRightWhile.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493324048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\dropWhile.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493325520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\eachRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493332144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\endsWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493322944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\eq.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493328464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\entriesIn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493317792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\entries.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493331040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\escape.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493318528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\escapeRegExp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493321104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\every.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493327360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\extend.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493320000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\extendWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493324416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\fill.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493325888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\filter.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493319264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\find.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493319632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\findIndex.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493326256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\findKey.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493327728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\findLast.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493334720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\findLastIndex.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493331408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\findLastKey.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493321472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\first.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493331776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\flatMap.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493324784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\flatMapDeep.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493328096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\flatMapDepth.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493328832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\flatten.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493321840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\flattenDeep.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493329200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\flattenDepth.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493332512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\flip.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493322208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\floor.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493335088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\flow.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493322576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\forEach.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493333248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\flowRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493333984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\forEachRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493334352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\forOwn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492493317424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\forIn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492729472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\forInRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492733520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\forOwnRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492723216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\fp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492726160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\fromPairs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492734256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\function.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492730576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\functions.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492719536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\get.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492723584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\functionsIn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492742352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\gt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492733888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\groupBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492721744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\hasIn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492732048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\gte.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492734624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\identity.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492727632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\has.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492720272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\head.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492734992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492728368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\inRange.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492726896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\includes.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492733152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\initial.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492731312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\indexOf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492723952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\intersectionBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492735360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\intersection.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492722112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\intersectionWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492737200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isArguments.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492724320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\invert.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492725792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\invokeMap.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492740144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492721008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\invertBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492727264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isArrayLike.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492735728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\invoke.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492720640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isArrayLikeObject.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492736096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isBuffer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492724688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isArrayBuffer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492737936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isBoolean.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492725056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isDate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492722480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isEqual.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492728000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isElement.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492736464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isEmpty.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492719168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isEqualWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492721376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isFunction.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492736832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isError.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492737568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isFinite.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492738304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isInteger.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492728736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isLength.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492738672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isMap.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492731680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isMatch.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492732416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isMatchWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492722848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isNaN.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492725424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isNative.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492741616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isNil.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492729104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isObject.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492726528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isNull.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492729840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isObjectLike.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492730208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isNumber.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492739040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isPlainObject.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492730944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isSet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492732784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isString.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492739408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isRegExp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492739776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isSafeInteger.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492741984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isUndefined.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492719904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isTypedArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492740512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isSymbol.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492740880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isWeakMap.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492741248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\isWeakSet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492746768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\join.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492757440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\iteratee.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492751920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\kebabCase.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492743456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\keys.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492750448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\keyBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492754128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\keysIn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492758176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\lang.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492762592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\lodash.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492752656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\last.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492763328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\lastIndexOf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492759280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\lodash.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492749712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\lowerCase.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492759648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\lowerFirst.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492762224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\lt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492757072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\map.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492753024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\lte.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492755600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\mapKeys.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492747136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\matches.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492761120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\mapValues.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492748976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\math.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492757808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\matchesProperty.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492751552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\maxBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492758544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\max.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492752288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\mean.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492748608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\meanBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492764432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\memoize.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492758912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\merge.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492753392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\mergeWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492754864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\methodOf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492749344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\method.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492755968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492764800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\minBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492753760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\multiply.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492756336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\noop.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492754496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\mixin.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492755232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\now.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492763696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\negate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492750080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\next.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492746032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\nth.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492750816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\nthArg.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492748240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\object.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492760016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\number.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492760384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\omit.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492756704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\omitBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492751184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\orderBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492765168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\once.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492760752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\overArgs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492761488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\over.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492765536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492761856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\overEvery.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492762960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\overSome.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492743824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\pad.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492744192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\padEnd.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492764064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\parseInt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492745664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\padStart.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492765904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\partial.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492742720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\partialRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492744560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\partition.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492743088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\pickBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492744928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\pick.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492745296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\property.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492747504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\plant.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492746400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\propertyOf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492747872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\pull.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492781360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\pullAll.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492776576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\pullAllBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492775840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\pullAllWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492768480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\random.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492772528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\pullAt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492783568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\range.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492782832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\rangeRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492766640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\rearg.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492783936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\reduce.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492772160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\reduceRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492782464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\reject.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492768848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\remove.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492772896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\repeat.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492768112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\rest.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492769216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\replace.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492776208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\result.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492766272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\reverse.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492770688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\round.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492783200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\sampleSize.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492774736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\sample.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492769584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\seq.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492769952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\setWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492780624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\set.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492777312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\shuffle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492775104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\size.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492773264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\slice.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492767008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\snakeCase.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492781728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\sortBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492773632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\some.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492771792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\sortedIndex.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492774000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\sortedIndexBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492770320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\sortedIndexOf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492779888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\sortedLastIndex.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492774368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\sortedLastIndexBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492775472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\sortedUniq.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492767376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\sortedLastIndexOf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492776944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\sortedUniqBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492777680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\split.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492780992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\spread.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492778048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\startCase.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492771056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\startsWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492771424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\stubArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492778416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\string.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492778784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\stubFalse.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492779152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\stubObject.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492779520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\stubString.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492780256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\stubTrue.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492767744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\subtract.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492492782096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\sum.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499690144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\sumBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499698608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\take.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499690880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\tail.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499683888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\takeRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499683520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\takeRightWhile.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499689040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\tap.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499688304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\throttle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499700080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\takeWhile.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499686096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\template.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499688672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\templateSettings.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499690512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\thru.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499687200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\toFinite.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499695664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\times.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499701184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\toArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499692352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\toInteger.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499687936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\toIterator.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499689408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\toLength.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499686832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\toJSON.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499684256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\toLower.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499698976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\toNumber.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499691248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\toPairs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499689776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\toPath.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499693088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\toPairsIn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499686464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\toPlainObject.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499684624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\toString.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499697504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\toSafeInteger.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499691616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\toUpper.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499691984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\transform.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499692720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\trim.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499693456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\trimEnd.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499693824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\trimStart.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499684992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\truncate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499694192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\unary.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499698240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\union.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499694560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\unionWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499687568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\unescape.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499694928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\unionBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499695296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\uniq.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499696032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\uniqBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499696400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\uniqueId.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499696768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\uniqWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499697136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\unzip.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499697872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\unset.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499699344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\unzipWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499700448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\update.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499685360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\upperCase.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499699712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\updateWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499700816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\upperFirst.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499685728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\util.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499645248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\value.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499652240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\valueOf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499648928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\valuesIn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499642672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\values.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499638256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\words.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499652608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\without.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499658496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\wrap.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499658864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\wrapperAt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499653712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\wrapperChain.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499651872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\wrapperReverse.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499647824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\wrapperLodash.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499637520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\wrapperValue.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499654080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\xor.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499644880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\xorBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499645616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\xorWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499644512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\zip.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499656656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\zipObjectDeep.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499657024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\zipObject.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499644144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\lodash\\zipWith.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499642304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\process-nextick-args\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499645984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\process-nextick-args\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499652976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\process-nextick-args\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499638624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\process-nextick-args\\license.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499648192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\process-nextick-args\\readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499640464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\process\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499651136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\process-nextick-args\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499646352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\process\\.eslintrc" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499653344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\process\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499654448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\process\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499657392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\process\\browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499638992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\process\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499646720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\process\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499637152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prop-types\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499637888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prop-types\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499649664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prop-types\\checkPropTypes.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499650768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prop-types\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499636416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prop-types\\factory.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499650400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prop-types\\factoryWithTypeCheckers.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499647088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prop-types\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499655920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prop-types\\factoryWithThrowingShims.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499643040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prop-types\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499641936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prop-types\\prop-types.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499651504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prop-types\\prop-types.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499648560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\querystring-es3\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499639360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\querystring-es3\\decode.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499659600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\querystring-es3\\History.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499649296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\querystring-es3\\License.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499639728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\querystring-es3\\Readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499650032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\querystring-es3\\encode.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499641200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\querystring-es3\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499643408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\querystring-es3\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499654816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\psl\\.eslintignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499655184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\psl\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499656288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\psl\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499636784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\psl\\.eslintrc" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499643776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\psl\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499657760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\psl\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499647456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\psl\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499655552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\psl\\karma.conf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499658128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\randombytes\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499640096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\randombytes\\.zuul.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499659232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\randombytes\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499640832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\randombytes\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499641568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\randombytes\\browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499680576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\randombytes\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499679472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\randombytes\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499660704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\randombytes\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499678736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\public-encrypt\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499679104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\public-encrypt\\browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499665120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\public-encrypt\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499674688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\public-encrypt\\mgf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499666960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\public-encrypt\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499677632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\public-encrypt\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499676896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\public-encrypt\\privateDecrypt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499666224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\public-encrypt\\publicEncrypt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499664752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\public-encrypt\\xor.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499681312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\public-encrypt\\withPublic.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499671008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\public-encrypt\\readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499675056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\randomfill\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499666592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\randomfill\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499675792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\randomfill\\.zuul.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499680944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\randomfill\\browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499661808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\randomfill\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499681680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\randomfill\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499669904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\randomfill\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499677264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\randomfill\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499668064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499678368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499672848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\build-info.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499679840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499665856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499667328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\profiling.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499670272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\server.browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499678000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\server.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499670640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\server.node.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499680208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\test-utils.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499665488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\unstable-fizz.browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499672480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\unstable-fizz.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499660336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\unstable-fizz.node.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499671376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\unstable-native-dependencies.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499671744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-lifecycles-compat\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499664384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-lifecycles-compat\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499667696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-lifecycles-compat\\LICENSE.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499673216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-lifecycles-compat\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499661440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-lifecycles-compat\\react-lifecycles-compat.es.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499668432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-lifecycles-compat\\react-lifecycles-compat.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499682048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-lifecycles-compat\\react-lifecycles-compat.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499672112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-lifecycles-compat\\react-lifecycles-compat.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499669536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-is\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499682784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-is\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499673952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-is\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499674320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-is\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499683152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-is\\build-info.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499659968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-image-lightbox\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499675424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-image-lightbox\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499676528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-image-lightbox\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499661072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-image-lightbox\\index.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499662176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-image-lightbox\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499662544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-image-lightbox\\style.css" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499662912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-transition-group\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499663280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-transition-group\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499663648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-transition-group\\CSSTransition.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499664016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-transition-group\\ReplaceTransition.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423471104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-transition-group\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423466320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-transition-group\\Transition.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423470000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-transition-group\\TransitionGroup.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423462640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-transition-group\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423461536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-transition-group\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423482144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-transition-group\\umd.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423468896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423465952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423480304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react\\build-info.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423481040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423472944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423478832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-table\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423474416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-table\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423462272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-table\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423469264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-table\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423477360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-table\\react-table.css" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423483248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-table\\react-table.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423479568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-table\\react-table.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423465584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request-image-size\\.eslintignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423463376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request-image-size\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423463744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request-image-size\\.eslintrc.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423479936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request-image-size\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423467424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request-image-size\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423464112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request-image-size\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423470368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423477728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\CONTRIBUTING.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423475888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423464848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423481408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423474784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\duplex-browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423466688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\GOVERNANCE.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423481776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\duplex.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423461168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423475520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\passthrough.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423468528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\readable-browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423470736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\transform.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423467056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\readable.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423480672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\writable-browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423475152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\writable.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423476256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423467792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423468160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423482512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423461904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423473312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\request.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423469632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ripemd160\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423471840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ripemd160\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423460800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ripemd160\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423482880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ripemd160\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423460064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ripemd160\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423460432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\safe-buffer\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423476624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\safe-buffer\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423463008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\safe-buffer\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423464480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\safe-buffer\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423465216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\safe-buffer\\index.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423471472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\safer-buffer\\Porting-Buffer.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423472208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\safer-buffer\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423472576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\safer-buffer\\Readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423473680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\safer-buffer\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423476992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\safer-buffer\\safer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423474048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\safer-buffer\\dangerous.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423478096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\safer-buffer\\tests.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423478464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\setimmediate\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423479200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\setimmediate\\setImmediate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423488400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\setimmediate\\LICENSE.txt" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423493552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\scheduler\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423496864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\scheduler\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423491344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\scheduler\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423500176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\scheduler\\build-info.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423488768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\scheduler\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423495760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\scheduler\\tracing.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423489872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\scheduler\\tracing-profiling.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423497600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\binary.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423490976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423491712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423487296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\Readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423495392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\is-buffer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423490240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423495024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\LICENSE.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423499072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\browser-source-map-support.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423498336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423489504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423497232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\source-map-support.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423498704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\register.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423497968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sha.js\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423486560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sha.js\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423499440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sha.js\\bin.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423483616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sha.js\\hash.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423485456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sha.js\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423484720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sha.js\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423496128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sha.js\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423500544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sha.js\\sha.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423489136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sha.js\\sha1.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423487664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sha.js\\sha224.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423492080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sha.js\\sha256.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423488032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sha.js\\sha384.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423490608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sha.js\\sha512.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423496496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\standard-error\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423485824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\standard-error\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423499808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\standard-error\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423492816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\standard-error\\Makefile" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423500912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\standard-error\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423492448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\standard-error\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423501280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\standard-error\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423486192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-browserify\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423493184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-browserify\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423493920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-browserify\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423483984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-browserify\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423494288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-browserify\\readme.markdown" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423484352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423485088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\.airtap.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423494656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423486928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423456752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423443136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423458592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\ie8-polyfill.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423455280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\standard-http-error\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423444976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\standard-http-error\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423438720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\standard-http-error\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423445344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\standard-http-error\\Makefile" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423444608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\standard-http-error\\codes.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423446816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\standard-http-error\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423458960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\standard-http-error\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423445712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\standard-http-error\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423439088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\standard-http-error\\codes.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423446080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\timers-browserify\\main.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423446448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\timers-browserify\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423447184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\timers-browserify\\LICENSE.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423459328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\timers-browserify\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423442032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\timers-browserify\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423449392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\to-arraybuffer\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423458224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\to-arraybuffer\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423437984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\to-arraybuffer\\.zuul.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423439824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\to-arraybuffer\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423447552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\to-arraybuffer\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423459696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\to-arraybuffer\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423436512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\to-arraybuffer\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423440192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\to-arraybuffer\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423447920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tinycolor2\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423436880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tinycolor2\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423451968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tinycolor2\\Gruntfile.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423443504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tinycolor2\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423451600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tinycolor2\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423457120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tinycolor2\\bower.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423456016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tinycolor2\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423455648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tinycolor2\\index.html" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423449760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tinycolor2\\tinycolor.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423456384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tweetnacl\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423450864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tweetnacl\\AUTHORS.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423457488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tweetnacl\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423444240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tweetnacl\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423450128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tweetnacl\\nacl-fast.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423437248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tweetnacl\\PULL_REQUEST_TEMPLATE.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423452704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tweetnacl\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423452336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tweetnacl\\nacl-fast.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423454176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tweetnacl\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423450496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tweetnacl\\nacl.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423448288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tweetnacl\\nacl.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423448656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tweetnacl\\nacl.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423449024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\to-array\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423437616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\to-array\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423438352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\to-array\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423439456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\to-array\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423451232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\to-array\\LICENCE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423440560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tunnel-agent\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423443872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tunnel-agent\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423454544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tunnel-agent\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423453072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tunnel-agent\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423440928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\url\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423441296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\url\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423441664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\url\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423453440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\url\\.zuul.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423442400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\url\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423442768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\url\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423453808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\url\\util.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423457856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\url\\url.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492423454912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\url\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435348368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tough-cookie\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435332912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tough-cookie\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435336592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tough-cookie\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435338064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\util-deprecate\\browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435325920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\util-deprecate\\History.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435335488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\util-deprecate\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435347264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\util-deprecate\\node.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435334016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\util-deprecate\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435325184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\util-deprecate\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435331808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\util\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435338432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\util\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435340640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\util\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435335856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\util\\util.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435341008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\util\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435338800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\vm-browserify\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435343952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\vm-browserify\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435344320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\vm-browserify\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435330336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\vm-browserify\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435332176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\vm-browserify\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435329600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\vm-browserify\\readme.markdown" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435348000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\warning\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435342112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\warning\\LICENSE.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435325552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\warning\\browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435342480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\warning\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435326288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\warning\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435328864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\warning\\warning.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435341376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\.eslintrc.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435333648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\AUTHORS" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435339536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435343216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435326656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\README_js.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435344688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\LICENSE.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435347632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435345056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435345424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\v1.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435345792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\v4.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435332544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\v3.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435327024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\v5.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435327392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack-hot-middleware\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435346160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack-hot-middleware\\client-overlay.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435346528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack-hot-middleware\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435329232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack-hot-middleware\\client.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435334384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack-hot-middleware\\helpers.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435346896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack-hot-middleware\\middleware.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435327760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack-hot-middleware\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435328496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack-hot-middleware\\process-update.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435328128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\xtend\\.jshintrc" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435329968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\xtend\\.npmignore" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435334752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\xtend\\LICENCE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435342848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\xtend\\Makefile" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435330704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\xtend\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435343584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\xtend\\immutable.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435331072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\xtend\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435336960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\xtend\\mutable.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435331440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\xtend\\test.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435335120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\DocServer.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435339904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\goldenLayout.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435337328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\goldenLayout.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435333280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\yeast\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435340272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\yeast\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435336224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\yeast\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435337696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\yeast\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435339168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\w3c-keyname\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435341744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\w3c-keyname\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435356464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\w3c-keyname\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435349472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\w3c-keyname\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435359408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\debug\\Test.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435360512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\debug\\Repl.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435352416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\debug\\Viewer.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435352784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\mobile\\ImageUpload.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435363456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\mobile\\ImageUpload.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435371552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\mobile\\InkControls.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435349840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\server\\Client.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435371920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\server\\Message.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435360144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\server\\Search.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435363824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\server\\RouteStore.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435358304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\server\\database.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435370816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\server\\index.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435361984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\server\\downsize.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435362352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\server\\remapUrl.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435350208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\server\\updateSearch.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435369712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\fields\\ScriptField.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435368976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\deploy\\debug\\repl.html" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435360880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\deploy\\debug\\test.html" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435350576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\deploy\\debug\\viewer.html" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435371184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\new_fields\\CursorField.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435357568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\new_fields\\FieldSymbols.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435355728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\new_fields\\DateField.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435359776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\new_fields\\Doc.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435364560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\new_fields\\HtmlField.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435361248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\new_fields\\IconField.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435366768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\new_fields\\InkField.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435352048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\new_fields\\List.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435348736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\new_fields\\ObjectField.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435356096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\new_fields\\Proxy.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435367504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\new_fields\\RichTextField.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435356832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\new_fields\\RefField.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435353152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\new_fields\\Types.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435361616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\new_fields\\Schema.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435357200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\new_fields\\URLField.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435357936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\new_fields\\util.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435349104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\deploy\\assets\\env.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435358672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\deploy\\mobile\\image.html" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435350944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\deploy\\mobile\\ink.html" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496127696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\fontawesome-svg-core\\index.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496122912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\fontawesome-svg-core\\LICENSE.txt" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496130272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\fontawesome-svg-core\\index.es.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496128432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\fontawesome-svg-core\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496116288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\fontawesome-svg-core\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496115552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\fontawesome-svg-core\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496118128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\fontawesome-svg-core\\styles.css" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496128064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\ajv.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496108560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\.DS_Store" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496118496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\cache.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496115920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\ajv.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496110400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\data.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496119232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\keyword.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496111136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\react-fontawesome\\index.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496119600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\react-fontawesome\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496110768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\react-fontawesome\\index.es.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496111504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\react-fontawesome\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496119968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\react-fontawesome\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496114816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\react-fontawesome\\LICENSE.txt" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496114080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\react-fontawesome\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496124384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1\\lib\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496128800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\bn.js\\lib\\bn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496130640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1.js\\lib\\asn1.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496113344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\base64-arraybuffer\\lib\\base64-arraybuffer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496111872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-sign\\browser\\algorithms.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496120336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-sign\\browser\\curves.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496131008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-sign\\browser\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496129536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-sign\\browser\\verify.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496113712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-sign\\browser\\sign.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496121440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-zlib\\lib\\binding.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496129904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-zlib\\lib\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496120704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\combined-stream\\lib\\combined_stream.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496115184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\core-util-is\\lib\\util.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496121072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-emotion\\dist\\create-emotion.browser.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496121808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-emotion\\dist\\create-emotion.browser.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496124752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-emotion\\dist\\create-emotion.cjs.dev.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496127328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-emotion\\dist\\create-emotion.cjs.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496116656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-emotion\\dist\\create-emotion.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496122176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-emotion\\dist\\create-emotion.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496122544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-emotion\\dist\\create-emotion.cjs.prod.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496125856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-react-context\\lib\\implementation.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496131376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-react-context\\lib\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496136160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-react-context\\lib\\index.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496133584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-react-context\\lib\\index.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496133216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\create-react-context\\lib\\maxSigned31BitInt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496134688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\des.js\\lib\\des.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496136528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\d3-format\\src\\defaultLocale.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496135056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\d3-format\\src\\formatDecimal.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496132848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\d3-format\\src\\formatGroup.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496139472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\d3-format\\src\\exponent.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496135424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\d3-format\\src\\formatNumerals.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496139104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\d3-format\\src\\formatPrefixAuto.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496136896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\d3-format\\src\\formatRounded.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496138000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\d3-format\\src\\formatSpecifier.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496138736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\d3-format\\src\\formatTrim.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496133952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\d3-format\\src\\formatTypes.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496138368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\d3-format\\src\\identity.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496134320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\d3-format\\src\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496135792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\d3-format\\src\\locale.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496137264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\d3-format\\src\\precisionFixed.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496137632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\d3-format\\src\\precisionPrefix.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496139840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\d3-format\\src\\precisionRound.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496140208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\delayed-stream\\lib\\delayed_stream.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496131744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\diffie-hellman\\lib\\generatePrime.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496132112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\diffie-hellman\\lib\\dh.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496132480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\diffie-hellman\\lib\\primes.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499673584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib\\elliptic.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499676160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\LICENSE.txt" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499668800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499682416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAd.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492499669168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAd.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497051440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAddressBook.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492497053280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAddressBook.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500193696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAddressCard.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500183392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAddressCard.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500184128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAdjust.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500198480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAdjust.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500191856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAirFreshener.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500194064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAirFreshener.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500194432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAlignCenter.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500199216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAlignCenter.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500193328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAlignJustify.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500187072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAlignJustify.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500192960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAlignLeft.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500184864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAlignLeft.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500199584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAlignRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500194800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAlignRight.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500183760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAllergies.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500177136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAllergies.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500200320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAmbulance.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500179344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAmbulance.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500185232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAmericanSignLanguageInterpreting.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500180448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAmericanSignLanguageInterpreting.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500196640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAnchor.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500195168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAnchor.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500178608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAngleDoubleDown.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500197744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAngleDoubleDown.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500189648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAngleDoubleLeft.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500179712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAngleDoubleRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500185600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAngleDoubleLeft.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500180816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAngleDoubleRight.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500197008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAngleDoubleUp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500186704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAngleDoubleUp.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500195536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAngleDown.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500178976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAngleDown.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500195904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAngleLeft.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500187440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAngleLeft.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500184496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAngleRight.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500198112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAngleRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500199952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAngleUp.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500197376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAngleUp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500177504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAngry.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500188176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAnkh.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500182288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAngry.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500187808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAnkh.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500196272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAppleAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500192592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAppleAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500178240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArchive.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500177872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArchive.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500198848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArchway.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500189280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArchway.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500188544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowAltCircleDown.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500188912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowAltCircleDown.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500186336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowAltCircleLeft.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500185968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowAltCircleLeft.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500190016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowAltCircleRight.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500180080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowAltCircleRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500190384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowAltCircleUp.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500190752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowAltCircleUp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500181184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowCircleDown.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500181552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowCircleDown.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500181920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowCircleLeft.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500191120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowCircleLeft.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500191488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowCircleRight.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500182656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowCircleRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500183024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowCircleUp.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500192224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowCircleUp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500208784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowDown.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500204000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowDown.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500220192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowLeft.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500210256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowLeft.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500217984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowRight.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500223504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500223872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowUp.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500206576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowUp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500212832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowsAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500213568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowsAltH.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500209888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowsAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500213200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowsAltH.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500213936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowsAltV.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500202528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faArrowsAltV.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500207312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAssistiveListeningSystems.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500210624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAsterisk.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500222768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAsterisk.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500214304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAssistiveListeningSystems.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500214672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500205472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500205840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAtlas.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500223136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAtom.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500216880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAtlas.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500215040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAtom.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500222032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAudioDescription.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500206208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAudioDescription.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500211360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAward.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500200688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faAward.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500207680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBaby.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500222400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBabyCarriage.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500210992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBaby.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500217248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBackspace.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500218352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBabyCarriage.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500201056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBackspace.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500201424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBackward.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500218720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBacon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500215408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBackward.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500204368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBacon.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500203632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBalanceScale.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500201792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBalanceScale.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500215776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBalanceScaleLeft.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500212096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBalanceScaleLeft.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500202160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBalanceScaleRight.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500208048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBan.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500202896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBalanceScaleRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500211728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBan.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500217616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBandAid.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500219088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBandAid.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500203264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBarcode.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500219824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBarcode.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500216144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBars.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500204736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBars.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500205104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBaseballBall.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500219456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBaseballBall.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500212464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBasketballBall.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500216512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBasketballBall.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500220560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBath.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500220928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBath.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500206944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBatteryEmpty.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500221296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBatteryEmpty.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500208416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBatteryFull.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500221664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBatteryFull.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500209152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBatteryHalf.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500209520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBatteryHalf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500240064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBatteryQuarter.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500224608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBatteryQuarter.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500240432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBatteryThreeQuarters.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500241536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBatteryThreeQuarters.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500237488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBed.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500227184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBed.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500226448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBeer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500238592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBeer.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500232336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBell.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500230864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBell.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500228656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBellSlash.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500231232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBellSlash.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500233440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBezierCurve.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500231600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBezierCurve.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500233808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBible.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500238224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBible.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500231968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBicycle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500236016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBiking.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500232704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBiking.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500229024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBicycle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500224976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBinoculars.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500240800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBiohazard.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500241904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBinoculars.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500233072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBirthdayCake.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500234176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBiohazard.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500238960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBirthdayCake.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500234912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBlender.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500226816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBlender.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500234544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBlenderPhone.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500227552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBlenderPhone.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500239328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBlind.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500241168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBlind.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500239696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBlog.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500235280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBlog.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500235648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBold.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500236384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBold.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500228288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBolt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500227920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBolt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500236752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBomb.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500224240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBomb.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500225344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBone.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500225712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBone.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500237856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBong.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500237120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBong.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500226080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBook.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500229392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBook.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500229760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBookDead.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500230128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBookMedical.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492500230496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBookDead.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435373024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBookMedical.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435368240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBookOpen.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435351312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBookOpen.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435366400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBookReader.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435351680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBookReader.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435367136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBookmark.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435353520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBookmark.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435367872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBorderAll.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435363088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBorderAll.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435353888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBorderNone.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435362720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBorderNone.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435354256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBorderStyle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435359040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBorderStyle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435364192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBowlingBall.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435364928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBowlingBall.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435368608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBox.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435354624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBox.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435354992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBoxOpen.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435355360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBoxOpen.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435365296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBoxes.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435365664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBoxes.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435366032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBraille.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435369344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBraille.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435370080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBrain.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435370448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBreadSlice.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496173792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBrain.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496185568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBreadSlice.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496178944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBriefcase.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496185936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBriefcase.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496173056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBriefcaseMedical.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496184096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBroadcastTower.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496168272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBriefcaseMedical.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496184464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBroom.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496174528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBroadcastTower.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496174160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBroom.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496182624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBrush.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496180048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBrush.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496180784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBug.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496170112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBug.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496175632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBuilding.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496187408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBuilding.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496185200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBullhorn.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496166800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBullseye.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496174896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBullhorn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496173424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBurn.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496169376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBullseye.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496169744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBus.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496167168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBurn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496177472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBus.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496181520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBusAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496180416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBusAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496184832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBusinessTime.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496171952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faBusinessTime.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496165328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCalculator.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496181888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCalculator.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496175264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCalendar.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496171216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCalendar.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496179312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCalendarAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496186304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCalendarAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496177104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCalendarCheck.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496170480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCalendarCheck.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496176000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCalendarDay.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496176368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCalendarDay.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496177840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCalendarMinus.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496166432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCalendarMinus.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496187776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCalendarPlus.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496164960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCalendarPlus.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496183728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCalendarTimes.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496178576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCalendarTimes.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496182992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCalendarWeek.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496181152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCalendarWeek.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496167536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCamera.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496171584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCamera.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496186672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCameraRetro.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496176736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCameraRetro.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496178208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCampground.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496187040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCampground.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496179680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCandyCane.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496164592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCandyCane.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496165696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCannabis.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496183360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCapsules.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496182256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCannabis.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496166064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCapsules.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496172320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCar.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496167904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCar.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496168640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCarAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496169008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCarAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496170848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCarBattery.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496172688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCarBattery.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496189616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCarCrash.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496201392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCarCrash.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496189984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCarSide.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496188144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCarSide.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496198816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCaretDown.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496194400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCaretDown.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496188512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCaretLeft.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496190352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCaretRight.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496188880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCaretLeft.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496196976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCaretRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496196240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCaretSquareDown.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496195872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCaretSquareDown.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496191088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCaretSquareLeft.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496193664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCaretSquareLeft.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496198080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCaretSquareRight.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496189248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCaretSquareRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496197344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCaretSquareUp.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496200656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCaretSquareUp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496202864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCaretUp.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496190720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCaretUp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496192192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCarrot.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496205808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCarrot.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496191456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCartArrowDown.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496191824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCartArrowDown.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496192560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCartPlus.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496197712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCartPlus.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496205072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCashRegister.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496201024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCashRegister.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496198448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCat.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496199184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCat.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496192928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCertificate.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496193296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCertificate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496201760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChair.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496194032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChair.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496199552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChalkboard.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496194768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChalkboard.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496199920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChalkboardTeacher.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496196608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChalkboardTeacher.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496202496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChargingStation.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496203232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChargingStation.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496200288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChartArea.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496202128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChartArea.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496203600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChartBar.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496195136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChartBar.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496195504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChartLine.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496203968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChartLine.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496204336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChartPie.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496204704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChartPie.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496205440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCheck.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496150608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCheck.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496149872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCheckCircle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496142512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCheckDouble.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496152080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCheckCircle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496160544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCheckDouble.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496150240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCheckSquare.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496143248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCheckSquare.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496144352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCheese.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496152448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChess.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496162016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCheese.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496141040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChessBishop.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496141408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChess.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496149136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChessBishop.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496154288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChessBoard.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496156864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChessBoard.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496163488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChessKing.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496142144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChessKing.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496143616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChessKnight.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496150976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChessKnight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496153920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChessPawn.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496163856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChessPawn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496146928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChessQueen.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496151344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChessQueen.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496153184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChessRook.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496152816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChessRook.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496142880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChevronCircleDown.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496147664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChevronCircleDown.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496156128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChevronCircleLeft.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496143984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChevronCircleRight.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496160176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChevronCircleLeft.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496141776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChevronCircleRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496144720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChevronCircleUp.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496151712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChevronCircleUp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496148032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChevronDown.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496145088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChevronDown.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496153552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChevronLeft.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496147296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChevronLeft.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496145456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChevronRight.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496154656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChevronRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496155024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChevronUp.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496157232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChevronUp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496161648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChild.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496155392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChild.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496145824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChurch.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496161280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCircle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496155760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faChurch.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496156496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCircle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496164224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCircleNotch.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496157600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCircleNotch.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496146192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCity.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496160912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCity.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496146560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faClinicMedical.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496148400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faClinicMedical.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496162384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faClipboard.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496149504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faClipboard.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496162752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faClipboardCheck.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496148768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faClipboardCheck.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496157968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faClipboardList.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496158336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faClipboardList.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496163120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faClock.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496158704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faClock.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496159072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faClone.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496159440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faClone.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496159808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faClosedCaptioning.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435377440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faClosedCaptioning.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435380752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCloud.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435381488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCloudDownloadAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435377808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCloud.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435378912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCloudDownloadAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435382224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCloudMeatball.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435387008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCloudMeatball.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435384064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCloudMoon.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435382592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCloudMoon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435383328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCloudMoonRain.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435389216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCloudMoonRain.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435384432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCloudRain.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435384800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCloudRain.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435385168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCloudShowersHeavy.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435389952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCloudShowersHeavy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435385536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCloudSun.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435372288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCloudSunRain.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435385904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCloudSun.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435386272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCloudSunRain.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435386640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCloudUploadAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435387376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCloudUploadAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435387744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCocktail.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435388112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCocktail.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435389584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCode.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435372656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCode.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502637056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCodeBranch.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502636320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCodeBranch.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502614976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCoffee.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502623072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCoffee.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502635216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCog.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502635584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCog.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502637424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCogs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502629328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCogs.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502631536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCoins.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502620128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faColumns.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502634848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faColumns.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502614240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCoins.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502629696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faComment.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502636688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faComment.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502624544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCommentAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502633744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCommentAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502614608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCommentDollar.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502615344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCommentDollar.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502615712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCommentDots.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502623440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCommentDots.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502625280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCommentMedical.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502616080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCommentMedical.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502635952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCommentSlash.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502616448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCommentSlash.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502627120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faComments.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502623808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faComments.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502627488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCommentsDollar.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502625648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCommentsDollar.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502616816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCompactDisc.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502626016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCompass.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502626752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCompactDisc.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502617184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCompass.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502618656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCompress.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502620496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCompress.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502621600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCompressArrowsAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502630064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCompressArrowsAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502631904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faConciergeBell.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502620864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faConciergeBell.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502617552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCookie.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502634112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCookie.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502626384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCookieBite.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502627856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCookieBite.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502617920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCopy.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502619024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCopy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502624176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCopyright.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502618288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCouch.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502621232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCopyright.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502619392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCreditCard.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502621968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCouch.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502619760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCreditCard.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502632272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCrop.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502632640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCrop.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502622336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCropAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502630432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCropAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502633008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCross.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502622704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCross.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502630800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCrosshairs.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502624912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCrosshairs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502631168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCrow.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502628224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCrow.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502628592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCrown.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502633376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCrutch.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502628960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCrown.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502634480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCrutch.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502643312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCube.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502642576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCube.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502642944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCubes.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502638528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCubes.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502644048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCut.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502649568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faCut.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502645888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDatabase.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502646256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDatabase.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502644416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDeaf.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502646624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDeaf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502642208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDemocrat.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502644784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDemocrat.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502646992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDesktop.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502641104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDesktop.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502645520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDharmachakra.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502645152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDharmachakra.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502647360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDiagnoses.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502638896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDiagnoses.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502641472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDice.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502649936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDice.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502641840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDiceD20.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502647728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDiceD20.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502648832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDiceD6.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502648464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDiceD6.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502648096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDiceFive.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502649200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDiceFive.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502640000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDiceFour.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502643680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDiceFour.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502650304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDiceOne.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502637792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDiceSix.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502638160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDiceOne.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502639264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDiceSix.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502639632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDiceThree.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502640368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDiceThree.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502640736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDiceTwo.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502527024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDiceTwo.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502529232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDigitalTachograph.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502534016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDigitalTachograph.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502543216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDirections.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502528128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDirections.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502527760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDivide.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502533280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDizzy.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502539168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDivide.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502542112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDizzy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502524816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDna.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502542480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDna.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502521136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDog.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502529600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDog.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502536592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDollarSign.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502542848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDollarSign.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502540640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDolly.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502522240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDolly.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502541376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDollyFlatbed.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502520032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDollyFlatbed.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502539536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDonate.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502524448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDonate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502528496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDoorClosed.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502533648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDoorClosed.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502520400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDoorOpen.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502527392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDoorOpen.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502535488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDotCircle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502525552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDotCircle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502540272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDove.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502520768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDownload.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502521872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDove.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502541008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDownload.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502526288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDraftingCompass.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502522608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDraftingCompass.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502521504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDragon.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502534752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDragon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502528864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDrawPolygon.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502536960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDrawPolygon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502522976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDrum.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502523344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDrum.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502532912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDrumSteelpan.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502535120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDrumstickBite.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502534384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDrumSteelpan.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502529968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDrumstickBite.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502530336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDumbbell.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502525184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDumbbell.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502541744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDumpster.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502536224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDumpster.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502523712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDumpsterFire.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502530704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDumpsterFire.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502537328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDungeon.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502537696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faDungeon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502531072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEdit.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502535856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEdit.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502538064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEgg.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502524080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEgg.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502525920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEject.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502538800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEllipsisH.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502538432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEllipsisH.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502539904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEject.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502531440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEllipsisV.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502531808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEllipsisV.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502532176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEnvelope.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502532544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEnvelopeOpen.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502526656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEnvelope.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502551312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEnvelopeOpen.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502560512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEnvelopeOpenText.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502566032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEnvelopeOpenText.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502556464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEnvelopeSquare.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502549840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEnvelopeSquare.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502543584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEquals.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502556832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEquals.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502546896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEraser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502552048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEraser.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502561248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEthernet.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502543952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEthernet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502553152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEuroSign.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502552784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEuroSign.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502558672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faExchangeAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502544688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faExclamation.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502548736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faExchangeAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502561616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faExclamation.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502553520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faExclamationCircle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502557200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faExclamationCircle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502560144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faExclamationTriangle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502549472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faExpand.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502553888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faExclamationTriangle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502552416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faExpand.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502561984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faExpandArrowsAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502555728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faExpandArrowsAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502550576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faExternalLinkAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502554256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faExternalLinkAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502546528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faExternalLinkSquareAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502547264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEye.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502554624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faExternalLinkSquareAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502554992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEye.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502544320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEyeDropper.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502566400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEyeSlash.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502545056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEyeDropper.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502545792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faEyeSlash.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502560880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFan.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502566768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFan.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502564928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFastBackward.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502562352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFastBackward.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502565296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFastForward.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502545424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFastForward.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502546160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFax.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502550944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFax.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502564560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFeather.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502559776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFeather.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502565664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFeatherAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502555360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFeatherAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502556096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFemale.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502547632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFile.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502548000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFemale.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502548368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFighterJet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502557568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFighterJet.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502559040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFile.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502562720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileArchive.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502563088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502557936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileArchive.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502549104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502558304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileAudio.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502559408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileCode.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502550208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileAudio.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502563456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileCode.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502563824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileContract.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502564192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileContract.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502551680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileCsv.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502569712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileCsv.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502587376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileDownload.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502582224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileExcel.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502572656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileDownload.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502588480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileExport.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502577072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileExcel.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502587008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileExport.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502585536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileImage.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502577440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileImage.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502570080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileImport.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502587744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileInvoice.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502582592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileImport.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502573024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileInvoiceDollar.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502577808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileInvoice.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502578176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileInvoiceDollar.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502578544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileMedical.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502581488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileMedical.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502570816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileMedicalAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502578912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileMedicalAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502568976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFilePdf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502588848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFilePdf.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502589952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFilePowerpoint.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502583696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFilePowerpoint.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502579280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFilePrescription.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502567872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFilePrescription.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502575600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileSignature.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502568608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileSignature.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502585904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileUpload.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502581120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileUpload.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502582960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileVideo.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502590320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileVideo.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502588112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileWord.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502586272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFileWord.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502586640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFill.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502570448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFillDrip.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502579648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFill.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502589216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFillDrip.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502589584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFilm.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502569344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFilm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502567136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFilter.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502567504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFilter.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502580384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFingerprint.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502584432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFire.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502571184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFingerprint.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502574128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFireAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502568240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFire.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502583328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFireAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502580752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFireExtinguisher.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502571552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFireExtinguisher.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502581856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFirstAid.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502571920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFirstAid.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502576336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFish.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502572288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFish.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502580016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFistRaised.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502584064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFistRaised.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502574864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFlag.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502584800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFlag.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502576704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFlagCheckered.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502585168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFlagCheckered.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502573392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFlagUsa.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502573760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFlagUsa.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502574496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFlask.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502575232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFlask.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502575968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFlushed.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502602832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFlushed.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502611296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFolder.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502594368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFolder.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502602464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFolderMinus.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502592528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFolderMinus.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502609824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFolderOpen.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502613504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFolderOpen.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502593264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFolderPlus.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502610928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFolderPlus.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502605776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFont.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502592160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFont.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502602096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFontAwesomeLogoFull.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502613136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFootballBall.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502603936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFontAwesomeLogoFull.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502605040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFootballBall.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502599888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faForward.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502591424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faForward.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502613872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFrog.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502608352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFrog.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502605408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFrown.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502607984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFrown.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502591056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFrownOpen.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502590688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFunnelDollar.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502599152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFrownOpen.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502607248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFunnelDollar.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502606144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFutbol.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502591792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faFutbol.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502593632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGamepad.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502594000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGamepad.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502601728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGasPump.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502594736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGasPump.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502592896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGavel.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502595104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGem.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502599520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGavel.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502598416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGem.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502612032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGenderless.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502603200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGenderless.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502595472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGhost.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502595840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGift.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502603568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGift.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502596208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGifts.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502596576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGhost.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502596944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGifts.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502601360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGlassCheers.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502597312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGlassMartini.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502604304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGlassCheers.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502611664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGlassMartini.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502597680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGlassMartiniAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502612400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGlassMartiniAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502612768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGlassWhiskey.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502600992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGlassWhiskey.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502604672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGlasses.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502598048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGlobe.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502606512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGlasses.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502598784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGlobe.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502600256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGlobeAfrica.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502606880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGlobeAfrica.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502600624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGlobeAsia.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502607616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGlobeAmericas.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502608720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGlobeAmericas.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502609088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGlobeAsia.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502609456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGlobeEurope.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502610192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGlobeEurope.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492502610560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGolfBall.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435373392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGopuram.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435375232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGolfBall.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435379648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGopuram.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435373760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGraduationCap.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435388480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGraduationCap.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435383696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGreaterThan.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435374496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGreaterThan.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435380384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGreaterThanEqual.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435375600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGreaterThanEqual.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435388848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrimace.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435374128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrimace.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435374864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrin.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435375968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrin.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435376336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435376704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435377072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinBeam.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435378176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinBeamSweat.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435378544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinBeam.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435379280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinBeamSweat.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435381856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinHearts.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435380016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinSquint.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435381120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinHearts.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492435382960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinSquint.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433062288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinSquintTears.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433057872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinSquintTears.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433062656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinTears.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433063024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinStars.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433070384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinStars.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433047936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinTears.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433049040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinTongue.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433049408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinTongue.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494645936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinTongueSquint.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494649616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinTongueSquint.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494652192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinTongueWink.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494663600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinWink.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494647040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinTongueWink.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494661024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGrinWink.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494654032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGripHorizontal.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494648880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGripLines.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494665440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGripLines.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494660656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGripHorizontal.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494643728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGripLinesVertical.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494662864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGripLinesVertical.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494655504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGripVertical.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494665072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGripVertical.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494654400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGuitar.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494663968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faGuitar.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494644832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHSquare.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494662496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHSquare.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494657344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHamburger.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494647776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHamburger.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494652928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHammer.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494653296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHammer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494655872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHamsa.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494656608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHamsa.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494656976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandHolding.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494642256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandHolding.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494653664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandHoldingHeart.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494651824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandHoldingHeart.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494650720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandHoldingUsd.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494654768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandHoldingUsd.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494649248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandLizard.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494642624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandLizard.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494645200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandMiddleFinger.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494644464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandMiddleFinger.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494664704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandPaper.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494651088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandPaper.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494662128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandPeace.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494664336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandPeace.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494645568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandPointDown.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494642992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandPointDown.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494651456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandPointLeft.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494648512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandPointLeft.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494660288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandPointRight.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494663232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandPointRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494643360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandPointUp.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494656240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandPointUp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494657712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandPointer.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494652560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandPointer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494644096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandRock.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494646304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandRock.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494655136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandScissors.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494658080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandSpock.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494659552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandScissors.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494649984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandSpock.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494658448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHands.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494646672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHands.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494647408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandsHelping.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494658816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandsHelping.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494659184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandshake.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494648144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHandshake.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494659920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHanukiah.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494650352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHanukiah.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494661392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHardHat.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494661760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHardHat.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494676848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHashtag.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494665808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHashtag.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494675008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHatWizard.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494672800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHatWizard.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494681264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHaykal.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494677216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHaykal.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494680160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHdd.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494680896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHdd.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494673904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHeading.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494671328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHeading.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494677584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHeadphones.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494668752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHeadphonesAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494675376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHeadphones.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494667648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHeadphonesAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494672064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHeadset.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494683472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHeadset.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494674640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHeart.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494668016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHeartBroken.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494681632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHeartBroken.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494677952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHeart.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494675744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHeartbeat.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494679056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHeartbeat.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494680528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHelicopter.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494682000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHelicopter.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494682368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHighlighter.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494678320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHighlighter.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494678688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHiking.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494670960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHippo.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494674272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHiking.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494679424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHippo.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494672432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHistory.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494676112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHistory.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494671696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHockeyPuck.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494666176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHockeyPuck.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494676480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHollyBerry.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494679792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHollyBerry.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494682736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHome.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494666544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHome.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494683104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHorse.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494666912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHorseHead.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494669856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHorse.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494667280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHorseHead.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494668384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHospital.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494669120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHospital.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494669488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHospitalAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494673168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHospitalAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494673536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHospitalSymbol.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494670224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHospitalSymbol.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494670592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHotTub.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494619808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHotTub.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494635264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHotdog.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494628640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHotdog.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494622016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHotel.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494629008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHotel.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494635632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHourglass.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494633056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHourglass.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494619072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHourglassEnd.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494633792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHourglassEnd.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494629376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHourglassHalf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494622384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHourglassHalf.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494631216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHourglassStart.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494632688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHourglassStart.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494637840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHouseDamage.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494618704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHryvnia.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494641152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHouseDamage.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494634160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faHryvnia.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494638208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faICursor.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494639680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faICursor.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494628272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faIceCream.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494627904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faIceCream.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494622752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faIcicles.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494631952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faIcicles.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494640048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faIcons.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494623488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faIdBadge.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494640416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faIcons.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494634896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faIdBadge.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494640784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faIdCard.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494627536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faIdCard.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494630848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faIdCardAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494619440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faIgloo.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494623120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faIdCardAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494636000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faImage.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494629744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faIgloo.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494638576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faImages.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494630112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faImages.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494632320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faImage.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494634528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faInbox.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494630480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faInbox.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494631584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faIndent.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494636368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faIndent.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494636736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faIndustry.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494638944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faIndustry.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494633424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faInfinity.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494637104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faInfinity.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494626800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faInfo.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494637472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faInfo.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494639312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faInfoCircle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494641520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faInfoCircle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494641888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faItalic.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494620176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faJedi.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494621280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faItalic.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494625328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faJedi.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494620544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faJoint.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494620912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faJournalWhills.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494621648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faJoint.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494623856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faKaaba.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494624224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faJournalWhills.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494624592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faKaaba.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494624960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faKey.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494625696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faKeyboard.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494626064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faKey.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494626432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faKeyboard.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492494627168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faKhanda.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433063392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faKiss.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433054192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faKhanda.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433054560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faKiss.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433058240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faKissBeam.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433059344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faKissWinkHeart.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433070016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faKissBeam.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433063760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faKissWinkHeart.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433064496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faKiwiBird.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433056768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faKiwiBird.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433065968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLandmark.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433066336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLandmark.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433066704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLanguage.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433048304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLaptop.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433049776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLanguage.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632514848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLaptop.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632524784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLaptopCode.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632518528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLaptopMedical.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632515216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLaptopCode.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632523680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLaptopMedical.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632521104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLaugh.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632526624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLaugh.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632520000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLaughBeam.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632525520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLaughBeam.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632510064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLaughSquint.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632518896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLaughSquint.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632513744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLaughWink.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632526256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLaughWink.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632524048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLayerGroup.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632510432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLeaf.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632525152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLayerGroup.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632514480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLeaf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632517056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLemon.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632518160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLessThan.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632510800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLemon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632526992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLessThan.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632527360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLessThanEqual.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632521472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLessThanEqual.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632512272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLevelDownAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632529936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLevelDownAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632520368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLevelUpAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632520736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLifeRing.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632511168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLevelUpAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632527728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLifeRing.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632514112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLightbulb.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632515584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLink.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632532144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLightbulb.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632511536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLink.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632524416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLiraSign.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632531408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faList.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632521840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faList.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632522208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLiraSign.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632532512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faListAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632511904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faListUl.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632519264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faListAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632519632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faListOl.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632528096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faListOl.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632522576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faListUl.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632530304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLocationArrow.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632515952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLock.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632532880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLocationArrow.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632522944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLock.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632516320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLockOpen.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632525888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLockOpen.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632523312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLongArrowAltDown.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632528464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLongArrowAltDown.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632528832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLongArrowAltLeft.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632516688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLongArrowAltLeft.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632529200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLongArrowAltRight.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632529568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLongArrowAltRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632530672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLongArrowAltUp.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632512640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLowVision.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632513008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLowVision.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632531040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLongArrowAltUp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632531776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLuggageCart.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632509696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faLuggageCart.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632517424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMagic.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632513376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMagnet.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632517792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMagic.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632534352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMagnet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632538768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMailBulk.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632556064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMailBulk.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632538400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMale.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632546496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMale.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632535088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMap.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632539136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMap.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632537664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMapMarked.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632549440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMapMarked.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632553488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMapMarkedAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632543552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMapMarker.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632536560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMapMarkedAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632545760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMapMarker.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632539504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMapMarkerAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632538032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMapMarkerAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632553856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMapPin.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632536928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMapSigns.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632548704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMapPin.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632541344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMapSigns.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632541712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMarker.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632547600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMars.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632534720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMarker.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632542080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMars.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632547232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMarsDouble.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632552384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMarsDouble.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632550912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMarsStroke.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632539872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMarsStroke.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632543920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMarsStrokeH.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632535824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMarsStrokeV.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632544656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMarsStrokeH.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632547968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMarsStrokeV.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632546128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMask.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632540240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMask.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632543184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMedal.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632556432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMedal.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632545024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMedkit.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632536192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMedkit.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632554224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMeh.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632542448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMeh.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632542816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMehBlank.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632553120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMehBlank.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632535456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMehRollingEyes.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632537296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMehRollingEyes.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632533616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMemory.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632554592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMemory.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632540608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMenorah.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632540976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMenorah.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632554960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMercury.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632544288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMercury.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632549072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMeteor.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632555328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMeteor.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632545392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMicrochip.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632548336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMicrochip.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632549808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMicrophone.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632546864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMicrophoneAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632533248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMicrophone.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632550176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMicrophoneAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632550544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMicrophoneAltSlash.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632555696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMicrophoneAltSlash.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632551280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMicrophoneSlash.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632551648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMicrophoneSlash.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632552016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMicroscope.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632552752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMicroscope.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632533984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMinus.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632556800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMinus.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632561584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMinusCircle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632562320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMinusCircle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632557168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMinusSquare.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632566368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMinusSquare.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632557904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMitten.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632574464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMitten.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632578880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMobile.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632560848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMobileAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632573728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMobile.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632565264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMobileAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632578144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMoneyBill.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632573360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMoneyBill.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632567104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMoneyBillAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632579248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMoneyBillAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632558272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMoneyBillWave.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632569680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMoneyBillWave.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632574096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMoneyBillWaveAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632568944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMoneyBillWaveAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632567472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMoneyCheck.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632559008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMoneyCheckAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632571520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMoneyCheck.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632569312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMonument.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632576672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMoneyCheckAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632560112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMonument.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632566736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMoon.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632570784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMoon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632578512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMortarPestle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632563792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMortarPestle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632579616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMosque.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632571888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMosque.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632570048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMotorcycle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632558640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMotorcycle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632564528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMountain.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632562688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMountain.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632572992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMousePointer.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632570416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMousePointer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632567840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMugHot.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632575936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMugHot.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632565632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMusic.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632561952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faMusic.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632568208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faNetworkWired.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632559376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faNetworkWired.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632577408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faNeuter.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632563056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faNeuter.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632572256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faNotEqual.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632566000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faNewspaper.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632563424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faNotEqual.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632559744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faNewspaper.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632557536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faNotesMedical.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632571152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faObjectGroup.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632572624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faNotesMedical.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632574832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faObjectGroup.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632575200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faObjectUngroup.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632579984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faObjectUngroup.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632577040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faOilCan.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632568576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faOilCan.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632575568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faOm.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632560480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faOtter.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632576304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faOm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632577776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faOtter.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632564160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faOutdent.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632561216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faOutdent.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632564896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPager.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632581456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPager.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632589552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPaintBrush.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632600592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPaintBrush.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632593232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPaintRoller.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632588080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPaintRoller.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632603168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPalette.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632598384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPalette.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632582928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPallet.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632594704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPaperPlane.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632585504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPallet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632602800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPaperPlane.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632581824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPaperclip.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632596544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPaperclip.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632588448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faParachuteBox.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632581088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faParachuteBox.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632588816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faParagraph.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632590656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faParagraph.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632598752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faParking.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632596912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPassport.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632600224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faParking.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632594336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPassport.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632595808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPastafarianism.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632602432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPastafarianism.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632600960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPaste.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632591024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPause.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632589184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPause.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632597280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPaste.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632595072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPauseCircle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632597648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPaw.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632591760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPauseCircle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632599120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPaw.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632584032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPeace.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632601328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPeace.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632585872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPen.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632601696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPen.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632582192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPenAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632593600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPenAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632585136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPenFancy.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632599856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPenFancy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632583664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPenNib.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632591392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPenNib.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632589920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPenSquare.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632590288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPenSquare.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632592128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPencilAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632582560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPencilAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632598016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPencilRuler.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632586976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPencilRuler.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632592496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPeopleCarry.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632599488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPeopleCarry.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632592864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPepperHot.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632586240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPepperHot.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632593968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPercent.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632595440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPercent.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632583296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPercentage.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632596176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPercentage.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632602064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPersonBooth.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632603536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPersonBooth.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632580352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPhone.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632580720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPhone.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632584400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPhoneAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632584768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPhoneAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632586608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPhoneSlash.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632587344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPhoneSlash.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632587712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPhoneSquare.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632614576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPhoneSquare.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632609792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPhoneSquareAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632614208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPhoneSquareAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632627088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPhoneVolume.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632619360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPhotoVideo.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632625984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPhoneVolume.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632618624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPhotoVideo.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632614944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPiggyBank.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632615312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPiggyBank.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632626352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPills.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632605008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPills.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632618992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPizzaSlice.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632608688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPizzaSlice.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632623408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPlaceOfWorship.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632615680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPlaceOfWorship.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632622304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPlane.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632616048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPlane.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632605376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPlaneArrival.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632624880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPlaneArrival.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632616416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPlaneDeparture.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632621568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPlaneDeparture.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632616784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPlay.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632613104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPlayCircle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632623776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPlay.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632626720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPlayCircle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632617152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPlug.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632618256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPlug.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632617520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPlus.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632605744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPlus.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632617888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPlusCircle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632603904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPlusSquare.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632619728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPlusCircle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632612736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPlusSquare.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632609424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPodcast.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632606480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPodcast.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632604272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPoll.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632620096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPoll.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632620464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPollH.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632610160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPollH.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632621936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPoo.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632620832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPoo.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632621200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPooStorm.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632612000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPoop.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632622672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPooStorm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632604640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPoop.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632623040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPortrait.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632624144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPoundSign.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632607584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPortrait.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632606112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPoundSign.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632609056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPowerOff.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632610528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPowerOff.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632606848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632607216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPray.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632625248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPrayingHands.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632608320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPrayingHands.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632624512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPrescription.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632625616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPrescription.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632607952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPrescriptionBottle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632610896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPrescriptionBottle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632611264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPrescriptionBottleAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632611632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPrescriptionBottleAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632612368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPrint.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632613472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPrint.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632613840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faProcedures.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632640336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faProcedures.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632644016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faProjectDiagram.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632639600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faProjectDiagram.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632637760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPuzzlePiece.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632629664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faQrcode.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632642176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faPuzzlePiece.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632639968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faQrcode.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632647328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faQuestion.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632650640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faQuestion.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632643648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faQuestionCircle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632647696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faQuestionCircle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632632240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faQuidditch.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632628560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faQuidditch.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632640704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faQuoteLeft.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632638864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faQuoteLeft.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632635920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faQuoteRight.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632631504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faQuoteRight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632630400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faQuran.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632641808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faQuran.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632627456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRadiation.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632645120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRadiation.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632633712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRadiationAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632631136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRadiationAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632641072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRainbow.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632630032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRainbow.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632631872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRandom.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632644384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRecycle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632641440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRandom.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632632976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faReceipt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632635552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faReceipt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632642544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRecycle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632630768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRedo.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632629296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRedoAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632633344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRedo.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632627824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRedoAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632646224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRegistered.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632642912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRegistered.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632632608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRemoveFormat.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632648064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRemoveFormat.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632637024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faReply.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632643280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faReply.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632645488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faReplyAll.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632634448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faReplyAll.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632649904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRepublican.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632644752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRepublican.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632646960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRestroom.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632648432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRestroom.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632636288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRetweet.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632645856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRetweet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632648800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRibbon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632639232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRibbon.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632628928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRing.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632646592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRing.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632649536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRoad.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632649168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRoad.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632650272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRobot.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632636656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRobot.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632634080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRoute.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632628192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRocket.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632634816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRocket.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632635184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRoute.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632637392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRssSquare.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632638128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRss.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632638496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRss.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632654320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRssSquare.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632657264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRubleSign.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632657632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRubleSign.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632654688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRuler.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632655056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRulerCombined.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632653952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRuler.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632651008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRulerCombined.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632653584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRulerHorizontal.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632655424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRulerHorizontal.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632656528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRulerVertical.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632656896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRulerVertical.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632653216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRunning.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632655792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRunning.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632651376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRupeeSign.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632656160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSadCry.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632651744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faRupeeSign.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632652112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSadCry.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632652480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSadTear.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632652848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSadTear.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632404080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSatellite.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632401136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSatellite.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632411808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSatelliteDish.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632402240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSatelliteDish.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632399296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSave.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632400032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSave.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632407760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSchool.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632410704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSchool.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632399664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faScrewdriver.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632394144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faScrewdriver.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632404816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faScroll.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632400400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faScroll.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632407392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSdCard.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632414016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSdCard.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632408128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSearch.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632413280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSearch.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632392672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSearchDollar.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632393040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSearchDollar.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632404448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSearchLocation.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632403344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSearchLocation.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632400768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSearchMinus.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632395984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSearchMinus.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632396352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSearchPlus.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632409600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSearchPlus.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632408864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faServer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632409968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSeedling.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632398192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSeedling.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632395616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faServer.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632412544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShapes.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632396720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShapes.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632405552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShare.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632397456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShare.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632405184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShareAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632397088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShareAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632412912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShareAltSquare.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632401504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShareAltSquare.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632410336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShareSquare.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632411072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShareSquare.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632398928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShekelSign.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632395248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShip.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632394512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShieldAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632397824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShieldAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632413648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShekelSign.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632398560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShip.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632405920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShippingFast.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632401872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShippingFast.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632402608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShoePrints.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632406288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShoppingBag.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632403712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShoppingBag.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632408496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShoppingBasket.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632406656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShoppingBasket.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632407024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShoppingCart.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632392304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShoePrints.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632402976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShower.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632409232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShuttleVan.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632411440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShoppingCart.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632414384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShower.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632412176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faShuttleVan.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632414752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSignInAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632415120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSignInAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632391936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSign.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632393408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSignLanguage.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632393776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSignLanguage.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632394880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSignOutAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632435360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSign.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632426160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSignOutAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632423584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSignal.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632416960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSignal.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632426896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSignature.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632435728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSignature.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632433888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSimCard.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632421008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSimCard.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632436096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSkating.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632436464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSitemap.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632427632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSkiing.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632427264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSkiing.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632437200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSitemap.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632422112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSkiingNordic.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632437936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSkating.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632416224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSkull.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632429104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSkiingNordic.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632417328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSkullCrossbones.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632425424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSlash.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632428000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSlash.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632438672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSkull.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632431680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSleigh.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632436832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSleigh.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632421376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSkullCrossbones.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632425792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSlidersH.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632428736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSmile.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632426528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSlidersH.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632415488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSmileBeam.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632419904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSmile.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632424320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSmileBeam.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632428368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSmileWink.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632429472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSmileWink.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632417696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSmog.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632432784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSmog.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632418064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSmoking.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632437568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSmokingBan.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632415856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSmoking.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632432048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSms.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632438304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSmokingBan.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632420272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSnowboarding.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632422480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSms.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632416592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSnowboarding.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632432416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSnowflake.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632433152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSnowman.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632418432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSnowman.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632430576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSnowflake.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632420640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSnowplow.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632434992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSnowplow.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632418800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSocks.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632429840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSocks.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632430208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSolarPanel.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632423952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSolarPanel.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632419168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSort.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632430944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSort.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632431312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortAlphaDown.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632419536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortAlphaDown.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632421744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortAlphaDownAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632422848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortAlphaDownAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632423216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortAlphaUp.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632433520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortAlphaUp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632424688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortAlphaUpAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632425056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortAlphaUpAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632434256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortAmountDown.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632434624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortAmountDownAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632447136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortAmountDown.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632455968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortAmountDownAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632452656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortAmountUp.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632444560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortAmountUp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632447504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortAmountUpAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632453024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortAmountUpAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632450816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortDown.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632454864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortDown.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632451184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortNumericDown.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632451920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortNumericDown.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632441984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortNumericDownAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632446400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortNumericUp.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632447872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortNumericDownAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632457072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortNumericUp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632451552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortNumericUpAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632448240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortUp.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632442720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortNumericUpAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632439408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSortUp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632440880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSpa.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632442352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSpa.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632448976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSpaceShuttle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632439776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSpaceShuttle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632450448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSpellCheck.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632452288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSpellCheck.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632453392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSpider.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632448608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSpinner.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632443088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSpinner.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632443456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSplotch.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632456704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSpider.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632462224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSplotch.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632453760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSprayCan.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632446032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSquare.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632457440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSquare.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632444928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSprayCan.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632458912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSquareFull.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632449712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSquareFull.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632457808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSquareRootAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632441248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSquareRootAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632454128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStamp.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632454496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStamp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632456336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStarAndCrescent.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632449344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStar.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632455232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStarAndCrescent.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632450080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStar.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632455600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStarHalf.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632459280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStarHalf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632458176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStarHalfAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632445664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStarHalfAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632441616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStarOfDavid.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632443824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStarOfDavid.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632458544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStarOfLife.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632459648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStepBackward.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632460016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStepBackward.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632460384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStepForward.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632444192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStethoscope.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632439040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStepForward.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632460752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStarOfLife.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632445296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStethoscope.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632446768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStickyNote.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632461120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStop.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632461488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStickyNote.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632461856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStop.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632440144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStopCircle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632440512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStopCircle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632473264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStopwatch.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632471792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStopwatch.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632464800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStore.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632475472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStoreAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632470320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStoreAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632465168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStore.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632484672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStream.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632477312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStream.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632483936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStreetView.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632476208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStreetView.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632482464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStrikethrough.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632463696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStrikethrough.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632478784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStroopwafel.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632477680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSubscript.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632473632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faStroopwafel.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632462592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSubscript.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632467008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSubway.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632471424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSubway.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632472528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSuitcase.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632475104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSuitcase.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632470688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSuitcaseRolling.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632478416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSuitcaseRolling.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632474000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSun.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632472160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSun.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632462960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSuperscript.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632472896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSuperscript.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632485776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSurprise.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632479520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSurprise.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632485040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSwatchbook.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632478048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSwatchbook.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632484304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSwimmer.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632476576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSwimmer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632474368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSwimmingPool.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632485408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSwimmingPool.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632474736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSynagogue.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632469216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSynagogue.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632463328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSync.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632471056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSync.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632467376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSyncAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632479152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSyringe.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632479888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSyncAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632464064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faSyringe.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632475840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTable.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632476944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTable.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632468480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTableTennis.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632482832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTableTennis.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632480256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTablet.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632480624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTablet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632480992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTabletAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632481360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTabletAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632483200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTablets.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632481728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTablets.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632468112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTachometerAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632483568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTachometerAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632482096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTag.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632464432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTag.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632466640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTags.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632465536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTags.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632465904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTape.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632466272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTape.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632467744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTasks.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632469952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTasks.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632468848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTaxi.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632469584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTaxi.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632506016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTeeth.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632500496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTeeth.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632495712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTeethOpen.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632499392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTeethOpen.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632499760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTemperatureHigh.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632500864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTemperatureHigh.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632489088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTemperatureLow.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632496080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTemperatureLow.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632486880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTenge.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632492032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTenge.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632498656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTerminal.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632497552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTerminal.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632494608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTextHeight.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632490192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTextHeight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632490560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTextWidth.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632503808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTextWidth.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632503072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTh.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632496448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTh.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632496816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThLarge.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632506384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThLarge.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632488352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThList.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632506752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTheaterMasks.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632509328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThList.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632491296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTheaterMasks.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632501232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThermometer.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632491664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThermometer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632507856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThermometerEmpty.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632500128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThermometerEmpty.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632487984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThermometerFull.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632492400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThermometerFull.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632490928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThermometerHalf.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632499024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThermometerHalf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632497184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThermometerQuarter.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632492768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThermometerQuarter.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632486144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThermometerThreeQuarters.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632497920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThermometerThreeQuarters.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632507120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThumbsDown.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632501600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThumbsDown.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632494976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThumbsUp.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632493136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThumbsUp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632488720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThumbtack.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632495344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faThumbtack.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632493872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTicketAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632493504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTicketAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632502704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTimes.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632498288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTimes.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632486512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTimesCircle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632501968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTimesCircle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632489456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTint.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632494240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTint.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632502336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTintSlash.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632503440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTintSlash.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632504176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTired.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632507488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTired.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632504544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faToggleOff.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632504912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faToggleOn.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632505280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faToggleOff.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632505648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faToggleOn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632508224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faToilet.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632487248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faToilet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632508592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faToiletPaper.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632508960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faToiletPaper.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632487616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faToolbox.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492632489824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faToolbox.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433075904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTools.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433071488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTools.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433078112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTooth.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433076640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTooth.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433071856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTorah.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433072960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTorah.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433072224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faToriiGate.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433070752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faToriiGate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433048672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTractor.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433054928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTractor.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433064128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTrademark.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433068176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTrademark.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433057136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTrafficLight.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433065600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTrafficLight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433058608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTrain.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433055296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTrain.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433052352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTram.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433067440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTram.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433051248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTransgender.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433050144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTransgender.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433052720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTransgenderAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433073328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTrash.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433055664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTransgenderAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433050880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTrash.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433067808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTrashAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433060448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTrashRestore.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433060080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTrashAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433053824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTrashRestore.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433053456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTrashRestoreAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433072592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTree.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433050512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTrashRestoreAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433053088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTree.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433064864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTrophy.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433058976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTrophy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433069280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTruck.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433057504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTruck.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433067072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTruckLoading.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433047568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTruckLoading.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433059712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTruckMonster.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433051616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTruckMonster.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433060816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTruckMoving.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433056032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTruckMoving.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433051984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTruckPickup.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433056400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTshirt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433061184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTshirt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433061552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTruckPickup.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433061920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTty.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433068544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTty.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433068912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTv.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433065232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUmbrella.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433069648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUmbrella.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635480832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faTv.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635462432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUmbrellaBeach.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635461696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUmbrellaBeach.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635474576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUnderline.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635469056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUnderline.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635462064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUndo.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635481200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUndo.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635473840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUndoAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635471632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUndoAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635475680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUniversalAccess.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635464640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUniversalAccess.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635483040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUniversity.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635467584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUniversity.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635459856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUnlink.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635470160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUnlink.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635479360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUnlock.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635472368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUnlock.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635466112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUnlockAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635478256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUnlockAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635478624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635461328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUpload.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635481568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUpload.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635462800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUser.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635463168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635481936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserAltSlash.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635463536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635471264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserAstronaut.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635465008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserAltSlash.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635463904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserAstronaut.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635476048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserCheck.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635460224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserCheck.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635474944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserCircle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635470896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserCircle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635476416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserClock.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635479728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserClock.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635465376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserCog.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635480096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserCog.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635460592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserEdit.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635470528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserEdit.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635480464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserFriends.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635464272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserFriends.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635482304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserGraduate.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635472000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserGraduate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635476784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserInjured.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635482672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserInjured.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635465744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserLock.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635475312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserLock.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635466480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserMd.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635460960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserMd.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635477152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserMinus.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635477520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserMinus.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635477888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserNinja.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635472736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserNinja.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635466848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserNurse.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635473104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserNurse.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635467216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserPlus.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635467952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserPlus.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635473472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserSecret.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635474208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserShield.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635478992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserSecret.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635468320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserShield.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635468688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserSlash.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635469424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserSlash.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635469792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserTag.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635499968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserTag.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635503280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserTie.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635497392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserTie.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635486720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserTimes.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635487824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUsers.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635498128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUserTimes.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635492608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUsers.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635503648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUsersCog.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635486352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUsersCog.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635493344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUtensilSpoon.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635484144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUtensilSpoon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635500336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUtensils.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635495920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faUtensils.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635494816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVectorSquare.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635491136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVectorSquare.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635487456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVenus.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635488192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVenus.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635485984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVenusDouble.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635488560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVenusDouble.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635504384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVial.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635493712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVenusMars.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635498864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVenusMars.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635490032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVial.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635488928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVials.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635494080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVideo.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635492976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVials.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635489296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVideoSlash.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635484880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVideo.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635489664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVideoSlash.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635504016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVihara.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635496656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVihara.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635496288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVoicemail.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635500704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVoicemail.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635495184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVolleyballBall.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635487088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVolleyballBall.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635494448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVolumeDown.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635497024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVolumeDown.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635504752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVolumeMute.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635495552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVolumeMute.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635497760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVolumeOff.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635505488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVolumeOff.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635498496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVolumeUp.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635499232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVolumeUp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635490400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVoteYea.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635506592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVoteYea.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635499600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVrCardboard.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635505120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faVrCardboard.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635501072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWalking.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635490768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWalking.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635501440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWallet.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635491504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWallet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635505856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWarehouse.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635501808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWarehouse.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635485248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWater.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635502176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWater.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635506224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWaveSquare.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635492240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWaveSquare.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635491872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWeight.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635502544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWeightHanging.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635502912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWeight.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635483408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWeightHanging.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635483776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWheelchair.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635484512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWheelchair.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635485616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWifi.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635511376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWifi.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635511744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWind.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635527568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWind.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635523888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWindowClose.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635523520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWindowClose.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635512480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWindowMaximize.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635525360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWindowMaximize.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635520944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWindowMinimize.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635518736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWindowMinimize.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635522784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWindowRestore.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635521680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWindowRestore.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635525728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWineGlass.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635511008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWineBottle.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635512112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWineBottle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635519840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWineGlassAlt.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635524256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWineGlassAlt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635518368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWonSign.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635510640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWineGlass.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635517632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWonSign.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635520576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWrench.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635519104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faWrench.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635526832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faXRay.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635509168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faYenSign.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635519472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faXRay.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635521312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faYenSign.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635508432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faYinYang.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635524624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\faYinYang.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635522048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\index.es.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635512848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\index.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635522416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635513216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@fortawesome\\free-solid-svg-icons\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635506960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\emotion\\dist\\emotion.cjs.dev.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635520208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\emotion\\dist\\emotion.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635526464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\emotion\\dist\\emotion.cjs.prod.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635513584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\emotion\\dist\\emotion.cjs.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635526096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\emotion\\dist\\emotion.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635516896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\emotion\\dist\\emotion.umd.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635513952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\emotion\\dist\\emotion.umd.min.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635524992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\lib\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635507328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\lib\\xmlhttprequest.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635515056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\lib\\socket.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635515424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\lib\\transport.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635529040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-parser\\lib\\browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635514320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-parser\\lib\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635518000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-parser\\lib\\utf8.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635516160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-parser\\lib\\keys.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635529408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\extsprintf\\lib\\extsprintf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635508800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ecc-jsbn\\lib\\ec.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635517264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ecc-jsbn\\lib\\sec.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635529776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ecc-jsbn\\lib\\LICENSE-jsbn" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635515792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccessPointIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635508064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountBoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635509536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccessPointNetworkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635509904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountAlertIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635516528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635510272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountCardDetailsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635514688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountCheckIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635551488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635536768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountEditIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635543392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountGroupIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635547440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountConvertIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635543024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountHeartIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635545232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountKeyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635533824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635531984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountLocationIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635534192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountMinusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635534560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountMultipleMinusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635551120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountMultipleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635530880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountMultipleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635545600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountMultiplePlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635543760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635532352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountMultiplePlusOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635552592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountNetworkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635544496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635547072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountPlusOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635546704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635550016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountRemoveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635531248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountSearchIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635535664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountSettingsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635550384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountSettingsVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635544128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountStarIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635531616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountStarVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635537504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AdjustIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635540816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccusoftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635532720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AirConditionerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635551856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AccountSwitchIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635544864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AirballoonIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635533088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AirplaneLandingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635534928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AirplaneIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635545968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AirplayIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635546336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AirplaneOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635538608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AirplaneTakeoffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635552224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AirportIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635541920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlarmBellIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635552960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlarmCheckIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635541184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlarmIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635547808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlarmMultipleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635548176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlarmOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635536032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlarmLightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635537872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlarmPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635535296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlarmSnoozeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635548544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlbumIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635553696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlertBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635553328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlertCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635548912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlertDecagramIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635530512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlertCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635538976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlertIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635549280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlertOctagonIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635533456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlertOctagramIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635536400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlienIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635538240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AllInclusiveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635537136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlertOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635542288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlloIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635539344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlphaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635549648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AlphabeticalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635539712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AmazonClouddriveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635540080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AltimeterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635540448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AmazonIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635550752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AmbulanceIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635541552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AmplifierIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635542656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AnchorIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635575408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AndroidDebugBridgeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635569520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AndroidHeadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635569888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AndroidIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635554432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AndroidStudioIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635559952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AngularIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635577248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AnimationIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635568784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AngularjsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635556272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AnvilIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635569152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AppleFinderIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635557744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AppleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635575776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AppleIosIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635571360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AppleKeyboardCapsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635562528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AppleKeyboardCommandIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635570256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AppleKeyboardControlIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635570624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AppleKeyboardShiftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635570992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AppleMobilemeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635567680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AppleKeyboardOptionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635556640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AppleSafariIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635558480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ApplicationIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635566944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ApprovalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635571728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AppsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635566208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArchiveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635559216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AppnetIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635572096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrangeBringForwardIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635558112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrangeBringToFrontIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635565840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrangeSendBackwardIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635557008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrangeSendToBackIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635572464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowCollapseAllIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635572832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowAllIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635573200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowBottomRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635562896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowBottomLeftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635574304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowCollapseDownIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635559584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowCollapseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635566576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowCollapseHorizontalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635554064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowCollapseRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635564736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowCollapseLeftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635564368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowCollapseUpIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635567312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowCollapseVerticalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635573568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowCompressAllIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635560320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowCompressIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635561424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowDownBoldBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635557376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowDownBoldCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635573936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowDownBoldBoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635561056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowDownBoldCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635574672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowDownBoldHexagonOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635565104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowDownBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635575040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowDownBoldIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635555536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowDownCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635576144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowDownDropCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635565472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowDownDropCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635558848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowDownIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635555168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowDownThickIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635576512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowExpandAllIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635561792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowExpandDownIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635560688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowExpandHorizontalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635562160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowExpandIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635568048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowExpandLeftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635563264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowExpandUpIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635555904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowExpandRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635554800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowExpandVerticalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635568416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowLeftBoldBoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635563632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowLeftBoldBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635564000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowLeftBoldCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635576880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowLeftBoldCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635584976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowLeftBoldHexagonOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635598224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowLeftBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635580560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowLeftBoldIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635592336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowLeftCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635579824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowLeftDropCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635596016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowLeftDropCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635597856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowLeftThickIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635596384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowLeftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635591232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowRightBoldBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635590864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowRightBoldBoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635580928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowRightBoldCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635589760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowRightBoldHexagonOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635582768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowRightBoldCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635594176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowRightBoldIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635581664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowRightBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635589392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowRightCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635580192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635593072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowRightDropCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635596752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowRightDropCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635586080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowRightThickIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635588656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowTopLeftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635583872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowTopRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635582400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowUpBoldBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635581296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowUpBoldBoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635582032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowUpBoldCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635593440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowUpBoldCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635597120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowUpBoldHexagonOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635586448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowUpBoldIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635595648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowUpBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635597488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowUpCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635583136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowUpDropCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635590128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowUpDropCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635600800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowUpIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635588288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArrowUpThickIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635589024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AssistantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635590496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AsteriskIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635587920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ArtistIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635598592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AtIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635577616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AtlassianIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635586816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AtomIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635587184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AudiobookIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635583504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AttachmentIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635585344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AugmentedRealityIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635593808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AutoFixIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635584240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AutoUploadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635592704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AutorenewIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635594544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AvTimerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635577984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\AzureIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635591600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BabyBuggyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635584608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BabyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635591968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BackburgerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635594912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BackspaceIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635585712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BackupRestoreIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635595280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BadmintonIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635587552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BandcampIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635598960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BankIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635599328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BarcodeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635599696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BarcodeScanIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635600064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BarleyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635600432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BarrelIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635578352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BaseballBatIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635578720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BaseballIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635579088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BasketFillIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635579456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BasecampIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635624352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BasketUnfillIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635611840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BasketIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635612208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BasketballIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635617728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryAlertIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635605216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryChargingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635612944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryChargingOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635603376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryChargingWirelessAlertIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635616624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryChargingWirelessIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635619936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryChargingWirelessOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635609632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryChargingWireless_10Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635619200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryChargingWireless_20Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635607792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryChargingWireless_30Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635606688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryChargingWireless_40Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635608896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryChargingWireless_50Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635622144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryChargingWireless_70Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635612576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryChargingWireless_60Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635604112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryChargingWireless_80Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635613312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryChargingWireless_90Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635608528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryCharging_100Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635618096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryCharging_10Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635605584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryCharging_20Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635613680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryCharging_30Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635603744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryCharging_40Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635616992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryCharging_60Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635620304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryCharging_50Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635610000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryCharging_70Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635619568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryCharging_90Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635608160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryCharging_80Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635607056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635614416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryMinusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635601168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635614048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryNegativeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635614784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635604480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryPositiveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635615152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BatteryUnknownIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635605952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Battery_10Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635606320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Battery_30Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635610368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Battery_40Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635604848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Battery_20Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635609264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Battery_50Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635617360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Battery_60Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635607424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Battery_70Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635615888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Battery_80Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635618464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BeachIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635601536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Battery_90Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635610736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BeakerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635618832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BedEmptyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635616256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BeatsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635601904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BeerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635621776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BehanceIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635611104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BellIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635615520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BellOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635611472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BellPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635620672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BellOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635621040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BellRingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635621408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BellSleepIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635623616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BellRingOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635622512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BetaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635622880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BibleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635623248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BikeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635623984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635602272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BinocularsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635602640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BioIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635603008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BiohazardIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635625456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BitcoinIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635626560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BitbucketIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635624720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BlackberryIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635628400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BlackMesaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635627664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BlenderIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635625824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BlockHelperIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635626928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BlindsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635629504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BloggerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635628768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BluetoothAudioIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635629136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BluetoothConnectIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635626192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BluetoothOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635628032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BluetoothIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635630240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BluetoothSettingsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635629872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BluetoothTransferIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635627296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BlurIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635630608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BlurLinearIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635630976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BlurOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635625088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BlurRadialIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635370064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BoneIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635379632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BombIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635378528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BombOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635388096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BookMultipleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635368592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BookIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635371168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BookMinusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635385520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BookOpenIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635375216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BookMultipleVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635386992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BookOpenVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635370432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BookPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635366384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BookOpenPageVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635374848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BookSecureIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635368224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BookUnsecureIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635377792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BookVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635373008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BookmarkCheckIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635382208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BookmarkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635369696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BookmarkMusicIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635380368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BookmarkOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635370800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BookmarkRemoveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635377056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BookmarkPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635384048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BookmarkPlusOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635380736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BoomboxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635374112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BootstrapIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635384416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BorderAllIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635371536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BorderAllVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635378896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BorderBottomIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635388832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BorderBottomVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635376320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BorderColorIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635367488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BorderHorizontalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635366752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BorderInsideIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635366016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BorderLeftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635373376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BorderLeftVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635365648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BorderNoneIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635377424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BorderNoneVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635373744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BorderOutsideIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635376688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BorderRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635378160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BorderRightVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635381104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BorderStyleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635367856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BorderTopIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635384784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BorderTopVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635381840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BorderVerticalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635381472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BottleWineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635374480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BowTieIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635382576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BowlIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635371904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BoxCutterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635368960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BowlingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635375584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635385152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BoxShadowIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635385888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BriefcaseCheckIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635375952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BridgeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635387360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BriefcaseDownloadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635379264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BriefcaseUploadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635380000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BriefcaseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635382944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BriefcaseOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635383312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BrightnessAutoIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635372272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Brightness_1Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635383680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Brightness_3Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635369328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Brightness_2Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635386256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Brightness_4Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635386624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Brightness_5Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635387728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Brightness_6Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635388464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BroomIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635372640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Brightness_7Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635367120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BrushIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635396928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BufferIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635410176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BulletinBoardIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635400608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BullhornIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635390304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BugIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635393616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BullseyeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635395456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BurstModeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635399504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BusArticulatedEndIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635391776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BusArticulatedFrontIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635397664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BusDoubleDeckerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635399136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635393984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BusSideIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635394352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\BusSchoolIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635400240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CachedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635409440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CakeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635392144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CakeLayeredIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635403920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CakeVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635405760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CalculatorIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635389568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CalendarBlankIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635392512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CalendarCheckIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635393248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CalendarEditIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635402816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CalendarClockIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635389936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CalendarMultipleCheckIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635404656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CalendarIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635390672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CalendarMultipleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635392880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CalendarPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635403184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CalendarQuestionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635391408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CalendarRangeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635399872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CalendarRemoveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635402448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CalendarTextIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635394720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CalendarTodayIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635391040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CallMadeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635407968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CallMergeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635400976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CallMissedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635401344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CallReceivedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635395088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CallSplitIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635395824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CamcorderBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635396192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CamcorderBoxOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635396560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CamcorderIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635397296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CamcorderOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635398032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CameraBurstIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635407232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CameraEnhanceIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635398400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CameraFrontIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635398768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CameraFrontVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635403552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CameraGoproIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635410544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CameraIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635401712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CameraIrisIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635408336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CameraMeteringCenterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635402080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CameraMeteringMatrixIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635404288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CameraMeteringPartialIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635405024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CameraMeteringSpotIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635405392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CameraOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635407600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CameraRearVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635408704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CameraPartyModeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635406128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CameraRearIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635406496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CameraSwitchIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635409072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CameraTimerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635406864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CancelIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635409808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CandleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635410912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CandycaneIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635411280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CannabisIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635411648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CarConnectedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635412016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CarBatteryIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635412384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CarConvertableIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635389200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CarConvertibleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635427472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CarEstateIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635431888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CarHatchbackIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635423056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CarPickupIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635425632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CarIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635434464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CarSideIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635430048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CarWashIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635413120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CarSportsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635421584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CaravanIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635419744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CardsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635418640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CardsOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635420112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CardsPlayingOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635416064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CardsVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635416432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CarrotIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635433360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CartIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635432256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CartOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635426368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CartOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635414960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CartPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635417168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CashUsdIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635424160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CaseSensitiveAltIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635427840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CashMultipleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635423424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CashIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635427104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Cash_100Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635429312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CastConnectedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635416800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CastIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635417536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CastleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635421216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CctvIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635426000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CastOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635435936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CatIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635423792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CellphoneBasicIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635432624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CeilingLightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635420848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CellphoneAndroidIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635414224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CellphoneDockIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635428576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CellphoneIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635414592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CellphoneIphoneIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635431152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CellphoneLinkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635432992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CellphoneLinkOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635424528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CellphoneSettingsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635426736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CellphoneWirelessIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635421952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CertificateIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635422320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChairSchoolIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635424896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChartArcIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635422688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChartAreasplineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635431520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChartBarIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635430416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChartBarStackedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635433728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChartDonutIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635435568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChartBubbleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635428208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChartDonutVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635425264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChartGanttIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635415696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChartHistogramIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635417904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChartLineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635413488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChartLineStackedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635418272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChartLineVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635428944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChartPieIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635415328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChartTimelineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635429680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckAllIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635413856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635419008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChartScatterplotHexbinIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635430784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635419376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635434096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckboxBlankCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635434832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckboxBlankCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635435200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635420480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckboxBlankIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635412752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckboxBlankOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635436672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckboxMarkedCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635451760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckboxMarkedCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635437040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckboxMarkedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635439248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckboxMarkedOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635449920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckboxIntermediateIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635438512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckboxMultipleBlankIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635446608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckboxMultipleBlankCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635437408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckboxMultipleBlankCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635437776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckboxMultipleBlankOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635451392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckboxMultipleMarkedCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635438144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckboxMultipleMarkedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635446240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckboxMultipleMarkedCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635458752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckboxMultipleMarkedOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635447344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CheckerboardIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635440352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChessBishopIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635459120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChemicalWeaponIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635442192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChessKingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635452128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChessKnightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635459488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChessPawnIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635455440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChessQueenIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635450288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChessRookIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635438880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChevronDoubleDownIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635440720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChevronDoubleRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635447712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChevronDoubleLeftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635452496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChevronDownIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635446976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChevronDoubleUpIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635439616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChevronLeftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635448080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChevronUpIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635441088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChevronRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635442560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChiliHotIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635445504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChiliMildIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635452864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChiliMediumIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635443664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChipIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635453232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635441456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ChurchIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635458016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635450656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CiscoWebexIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635449552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClipboardAccountIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635448448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CityIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635458384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClipboardAlertIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635451024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClipboardCheckIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635439984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClipboardArrowDownIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635449184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClipboardArrowLeftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635453600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClipboardCheckOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635453968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClipboardFlowIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635441824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClipboardOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635436304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClipboardPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635454336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClipboardIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635455808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClipboardPulseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635442928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClipboardPulseOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635444768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClipboardTextIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635448816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClippyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635443296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClockAlertIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635444032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClockInIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635444400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClockEndIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635454704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClockIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635445136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClockFastIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635445872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClockOutIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635455072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClockStartIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635456176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloseBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635456544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloseBoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635456912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloseCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635457280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloseCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635457648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloseNetworkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433074432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloseOctagonIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433074800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433075536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloseOctagonOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492433077376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloseOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496117760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ClosedCaptionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496114448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloudBracesIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638938992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloudCheckIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638934576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloudCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638923168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloudDownloadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638925376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloudIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638932368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloudOffOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638936416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloudOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638924272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloudOutlineOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638929424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloudPrintIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638939360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloudPrintOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638920960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloudSyncIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638933840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloverIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638940464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloudTagsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638938256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CloudUploadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638934208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CodeArrayIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638935312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CodeBracesIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638921696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CodeBracketsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638936048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CodeEqualIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638940832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CodeGreaterThanIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638936784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CodeLessThanIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638921328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CodeGreaterThanOrEqualIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638926848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CodeLessThanOrEqualIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638930896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CodeNotEqualIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638942304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CodeNotEqualVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638944144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CodeStringIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638943776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CodeParenthesesIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638934944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CodeTagsCheckIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638943408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CodepenIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638922064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CodeTagsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638927952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CoffeeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638931632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CoffeeOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638923904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CoinIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638942672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CoffeeToGoIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638924640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CoinsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638927216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CollageIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638930160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ColorHelperIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638937152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentAccountOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638930528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentAlertIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638925744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentAccountIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638932000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentAlertOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638937888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentCheckIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638928688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentCheckOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638922432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638922800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentMultipleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638935680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638923536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentMultipleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638925008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentPlusOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638928320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentProcessingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638932736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentQuestionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638926112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentProcessingOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638926480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentRemoveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638931264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentQuestionOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638929056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentTextIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638929792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentRemoveOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638933104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentTextMultipleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638937520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentTextOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638933472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CommentTextMultipleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638938624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CompareIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638927584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CompassIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638943040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CompassOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638939728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ConsoleLineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638940096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ConsoleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638941200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ContactMailIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638941568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ContactsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638941936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ConsoleNetworkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638947456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ContentCopyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638949664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ContentCutIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638958864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ContentDuplicateIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638961072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ContentPasteIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638948560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ContentSaveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638948928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ContentSaveAllIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638949296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ContentSaveOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638953344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ContentSaveSettingsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638962912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ContrastBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638945248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ContrastIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638952976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ContrastCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638955184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CookieIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638946352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CopyrightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638957760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CounterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638967696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CowIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638954816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CraneIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638946720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CornIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638963280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CreditCardIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638944512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CreationIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638957392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CreditCardMultipleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638964016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CreditCardScanIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638955552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CreditCardPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638958128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CreditCardOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638959232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CropFreeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638945616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CropIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638950400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CropLandscapeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638954448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CropPortraitIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638954080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CropRotateIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638952608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CropSquareIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638953712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CrosshairsGpsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638955920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CrownIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638966592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CrosshairsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638950032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CubeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638951872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CubeOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638956288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CubeSendIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638965856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CupIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638956656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CubeUnfoldedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638966224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CupWaterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638966960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CupOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638961808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CurlingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638945984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CurrencyBdtIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638950768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CurrencyBtcIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638960336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CurrencyChfIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638951136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CurrencyCnyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638947824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CurrencyEthIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638967328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CurrencyEurIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638962176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CurrencyGbpIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638947088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CurrencyJpyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638961440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CurrencyInrIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638959600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CurrencyKrwIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638951504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CurrencyKztIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638952240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CurrencyNgnIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638948192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CurrencyRubIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638965488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CurrencySignIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638957024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CurrencyTryIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638958496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CurrencyTwdIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638962544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CurrencyUsdOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638959968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CursorDefaultIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638960704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CurrencyUsdIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638944880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CursorDefaultOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638963648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CursorMoveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638964384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CursorPointerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638964752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\CursorTextIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638965120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DatabaseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638977632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DatabaseMinusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638968064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DatabasePlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638972480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DatabaseSearchIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638977264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DebugStepOutIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638979104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DebugStepOverIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638969904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DebugStepIntoIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638974320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DecagramIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638979840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DecagramOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638981312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DecimalDecreaseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638978736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DeleteCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638968800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DecimalIncreaseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638984992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DeleteEmptyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638983520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DeleteForeverIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638985360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DeleteRestoreIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638981680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DeleteIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638987568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DeleteVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638972848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DeleteSweepIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638989408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DeltaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638984624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DeskphoneIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638971744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DesktopMacIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638982048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DesktopClassicIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638969168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DesktopTowerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638982416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DetailsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638985728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DeveloperBoardIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638979472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DeviantartIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638986832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DialpadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638973216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DiamondIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638973584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DiceD10Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638982784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DiceD12Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638980208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DiceD20Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638990144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DiceD4Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638990880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DiceD6Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638980576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DiceD8Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638986096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DiceMultipleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638980944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Dice_2Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638983152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Dice_1Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638983888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Dice_4Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638969536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Dice_3Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638986464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Dice_5Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638973952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Dice_6Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638984256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DictionaryIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638989776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DipSwitchIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638974688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DirectionsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638975056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DiscordIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638975424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DiskAlertIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638975792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DirectionsForkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638976528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DiskIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638987200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DisqusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638987936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DivisionBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638990512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DisqusOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638970272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DivisionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638978000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DnaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638988304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DoNotDisturbIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638988672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DoNotDisturbOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638976160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DnsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638968432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DockerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638971376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DolbyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638989040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DomainIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638976896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DoorClosedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638978368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DonkeyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638991248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DoorIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638970640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DoorOpenIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638971008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DotsHorizontalCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638972112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DoorbellVideoIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638991616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DotsHorizontalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638996400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DotsVerticalCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638993088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DotsVerticalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638991984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DoubanIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638998240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DownloadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638993456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DownloadNetworkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638992352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DragHorizontalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638993824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DragIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638997872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DragVerticalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638994192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DrawingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638994560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DrawingBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638994928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DribbbleBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638995296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DribbbleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638995664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DroneIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638996032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DropboxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638992720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DrupalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638996768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DuckIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638997136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\DumbbellIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638997504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EarthBoxOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638745424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EarHearingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638755728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EarthBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638738800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EarthIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638732544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EarthOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638734016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ElephantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638745792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EdgeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638736960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EjectIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638748736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ElevationRiseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638738432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ElevationDeclineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638742848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EmailOpenIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638734384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ElevatorIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638742112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EmailOpenOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638743952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EmailOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638735856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EmailAlertIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638754256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EmailIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638735120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EmailSecureIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638743584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EmailVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638743216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EmoticonCoolIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638746160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EmbyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638741376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EmoticonDevilIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638747264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EmoticonHappyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638739168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EmoticonExcitedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638746528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EmoticonDeadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638754992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EmoticonIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638750208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EmoticonPoopIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638741744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EmoticonNeutralIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638744320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EmoticonSadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638753888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EmoticonTongueIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638734752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EngineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638736592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EngineOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638755360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EqualBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638736224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EqualIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638749104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EraserIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638747632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EraserVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638744688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EscalatorIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638754624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EthernetCableIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638735488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EthernetCableOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638732912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EthereumIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638739536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EthernetIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638742480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EtsyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638737328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EvernoteIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638752416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EvStationIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638739904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EventbriteIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638752048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ExclamationIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638737696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ExitToAppIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638738064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EyeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638740272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EyeOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638748000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ExportIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638745056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EyeOffOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638752784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EyeOutlineOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638750576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EyeOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638740640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EyePlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638746896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EyePlusOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638748368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EyeSettingsOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638750944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EyeSettingsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638749840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EyedropperIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638751312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\EyedropperVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638749472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FaceIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638741008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FacebookBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638751680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FaceProfileIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638733280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FacebookIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638753152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FactoryIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638753520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FacebookMessengerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638733648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FanIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638759408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FanOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638770816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FastForwardIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638761616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FastForwardOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638777440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FaxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638760512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FeatherIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638761984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FerryIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638757936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileAccountIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638766768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileCheckIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638777808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileCloudIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638758304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileChartIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638778544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileCompareIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638762352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileDelimitedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638766032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileDocumentBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638768976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileExcelBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638779280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileDocumentIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638764928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileExcelIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638767136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileExportIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638778176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileHiddenIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638757568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileFindIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638760144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638762720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileImageIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638763088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileImportIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638774128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileLockIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638760880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileMultipleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638759776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileMusicIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638771184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638763456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FilePdfBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638778912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FilePdfIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638756464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FilePercentIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638756096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FilePlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638768240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FilePowerpointBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638761248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FilePowerpointIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638763824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FilePresentationBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638772656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileQuestionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638771552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileRestoreIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638771920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileSendIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638770448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileVideoIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638776336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileTreeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638764192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileWordBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638764560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileWordIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638765296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FileXmlIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638776704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FilmIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638769344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FilmstripIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638773760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FilmstripOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638765664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FilterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638767504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FilterOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638756832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FilterRemoveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638758672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FilterRemoveOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638766400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FilterVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638757200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FinanceIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638759040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FindReplaceIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638769712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FingerprintIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638767872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FireTruckIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638770080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FireIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638774496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FirefoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638768608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FishIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638772288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlagCheckeredIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638774864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlagIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638777072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlagOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638773024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlagTriangleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638775232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlagOutlineVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638773392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlagVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638775600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlagVariantOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638775968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlashAutoIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638791792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlashCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638782960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlashIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638787008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlashOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638794000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlashOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638798416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlashlightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638801728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlashRedEyeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638786272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlaskEmptyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638784064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlaskEmptyOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638802832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlashlightOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638781488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlaskIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638793632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlaskOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638783328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlattrIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638796944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlipToBackIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638783696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlipToFrontIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638798784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FloorPlanIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638795840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FloppyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638792896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FlowerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638800256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FolderAccountIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638799152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FolderDownloadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638796576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FolderGoogleDriveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638787744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FolderIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638791424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FolderImageIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638797312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FolderKeyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638797680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FolderLockOpenIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638788480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FolderLockIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638794368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FolderKeyNetworkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638785904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FolderMoveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638794736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FolderMultipleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638802096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FolderMultipleImageIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638798048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FolderOpenIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638788848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FolderMultipleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638781856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FolderOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638802464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FolderNetworkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638786640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FolderPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638789584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FolderRemoveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638792528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FolderStarIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638799520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FolderUploadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638787376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FontAwesomeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638779648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FoodCroissantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638781120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FoodForkDrinkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638799888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FoodAppleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638793264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FoodIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638795104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FoodOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638792160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FootballHelmetIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638800624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FoodVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638800992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FootballAustralianIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638784432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FootballIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638788112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatAlignCenterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638795472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ForkliftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638796208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatAlignBottomIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638801360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatAlignJustifyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638780016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatAlignLeftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638784800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatAlignRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638789952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatAlignMiddleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638780384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatAlignTopIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638785168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatAnnotationPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638785536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatColorFillIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638780752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatBoldIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638782224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatClearIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638791056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatColorTextIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638789216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatFloatLeftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638790320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatFloatCenterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638782592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatFloatNoneIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638790688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatFloatRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638806880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatFontIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638823808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatHeaderDecreaseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638816448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatHeaderEqualIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638818656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatHeaderIncreaseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638814608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatHeaderPoundIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638819392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatHeader_1Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638807984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatHeader_3Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638811296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatHeader_2Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638824176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatHeader_4Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638820864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatHeader_5Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638808352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatHorizontalAlignCenterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638810192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatHeader_6Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638819024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatHorizontalAlignLeftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638817184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatHorizontalAlignRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638815344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatIndentDecreaseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638817920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatItalicIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638805408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatIndentIncreaseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638821600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatLineSpacingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638823440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatLineStyleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638821968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatLineWeightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638824544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatListBulletedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638822704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatListBulletedTypeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638820128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatListChecksIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638811664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatListNumbersIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638814976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatPaintIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638820496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatPageBreakIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638821232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatParagraphIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638806512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatPilcrowIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638818288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatQuoteCloseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638814240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatQuoteOpenIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638804304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatQuoteIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638816080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatRotate_90Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638807248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatSectionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638819760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatSizeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638803936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatStrikethroughIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638822336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatStrikethroughVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638808720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatSubscriptIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638823072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatSuperscriptIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638812032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatTextIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638815712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatTextdirectionLToRIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638824912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatTextdirectionRToLIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638804672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatTitleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638807616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatUnderlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638825648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatVerticalAlignBottomIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638816816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatVerticalAlignCenterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638825280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatVerticalAlignTopIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638812400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatWrapInlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638809088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatWrapSquareIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638809456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatWrapTopBottomIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638826016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FormatWrapTightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638826384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ForumIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638812768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ForumOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638803200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FoursquareIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638803568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ForwardIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638809824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FridgeFilledBottomIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638817552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FridgeFilledIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638805040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FridgeFilledTopIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638805776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FridgeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638806144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FuelIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638810560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FullscreenExitIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638810928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FullscreenIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638813136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FunctionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638813504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\FunctionVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638813872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GamepadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638848832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GarageAlertIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638833376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GamepadVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638831168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GarageIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638849936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GarageOpenIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638828592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GasCylinderIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638840736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GasStationIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638830432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GateIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638830064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GaugeFullIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638834112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GaugeEmptyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638835584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GaugeLowIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638848464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GavelIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638838896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GaugeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638844048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GenderFemaleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638830800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GenderMaleFemaleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638845888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GenderMaleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638842944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GenderTransgenderIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638837424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GestureDoubleTapIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638837792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GestureIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638837056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GestureSwipeDownIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638835952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GestureSwipeUpIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638831536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GestureSwipeLeftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638845152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GestureTapIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638828960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GestureSwipeRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638836320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GestureTwoDoubleTapIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638841840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GhostIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638846256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GiftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638832272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GestureTwoTapIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638840000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GitIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638838160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GithubBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638839264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GithubCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638844784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GithubFaceIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638836688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GlassCocktailIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638839632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GlassFluteIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638841104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GlassMugIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638845520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GlassStangeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638844416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GlassWineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638846624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GlassTulipIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638831904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GlassdoorIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638838528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GlassesIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638843680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GnomeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638833744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GmailIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638832640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GondolaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638840368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GolfIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638835216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GoogleAnalyticsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638846992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GoogleAssistantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638841472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GoogleCardboardIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638842208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GoogleChromeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638848096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GoogleCirclesCommunitiesIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638842576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GoogleCirclesExtendedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638847360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GoogleCirclesGroupIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638833008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GoogleCirclesIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638827488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GoogleControllerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638843312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GoogleControllerOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638834480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GoogleDriveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638847728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GoogleEarthIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638849200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GoogleGlassIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638834848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GoogleHomeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638828224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GoogleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638827120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GoogleKeepIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638849568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GoogleMapsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638826752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GoogleNearbyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638827856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GooglePagesIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638829328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GooglePhotosIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638829696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GooglePhysicalWebIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638852512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GooglePlusBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638854720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GooglePlayIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638866496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GooglePlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638856192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GoogleTranslateIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638858768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GoogleWalletIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638867232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GpuIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638855456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GradientIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638866864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GreasePencilIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638855824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GraphqlIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638870176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GridLargeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638867600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GridIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638862448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GridOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638865392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GroupIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638873120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GuitarAcousticIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638861344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GuitarElectricIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638851408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GuitarPickIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638863184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GuitarPickOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638866128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\GuyFawkesMaskIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638873488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HackernewsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638872016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HamburgerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638851776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HandPointingRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638863552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HangoutsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638860608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HarddiskIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638858400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HangerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638869440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HeadphonesBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638868336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HeadphonesIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638860240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HeadphonesOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638863920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HeadphonesSettingsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638864288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HeadsetIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638868704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HeadsetDockIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638867968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HeadsetOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638865760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HeartBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638856928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HeartBrokenIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638861712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HeartBoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638865024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HeartHalfFullIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638862080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HeartHalfIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638871648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HeartHalfOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638852144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HeartHalfPartOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638854352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HeartHalfPartIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638872752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HeartIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638864656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HeartOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638869072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HeartOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638859136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HeartPulseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638850304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HelpCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638859504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HelpIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638870544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HelpBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638872384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HelpCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638852880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HelpNetworkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638855088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HexagonIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638850672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HexagonMultipleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638869808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HighDefinitionBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638870912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HexagonOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638862816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HighwayIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638871280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HistoryIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638851040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HighDefinitionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638853248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HockeyPuckIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638859872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HockeySticksIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638853616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HololensIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638853984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HomeAccountIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638860976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HomeAlertIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638856560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HomeAutomationIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638857296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HomeAssistantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638857664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HomeCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638858032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HomeCurrencyUsdIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638892992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HomeHeartIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638883424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HomeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638893360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HomeMapMarkerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638874960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HomeModernIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638887104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HomeOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638884160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HomeVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638881952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HookIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638895936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HookOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638877168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HopsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638882320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HospitalBuildingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638890416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HospitalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638884896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HospitalMarkerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638875696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HotTubIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638894832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HotelIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638892256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HouzzBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638875328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HouzzIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638889312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HuluIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638874592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HumanGreetingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638876064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HumanChildIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638891152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HumanHandsdownIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638884528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HumanFemaleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638882688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HumanHandsupIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638895200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HumanMaleFemaleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638891520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HumanMaleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638878640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HumanIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638880848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HumanPregnantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638879744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\HumbleBundleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638887840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\IceCreamIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638890784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ImageAlbumIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638885264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ImageAreaCloseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638876432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ImageBrokenIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638895568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ImageAreaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638892624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ImageBrokenVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638891888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ImageFilterBlackWhiteIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638893728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ImageFilterCenterFocusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638876800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ImageFilterDramaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638877536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ImageFilterCenterFocusWeakIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638888208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ImageFilterFramesIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638885632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ImageFilterHdrIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638886000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ImageFilterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638886368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ImageFilterTiltShiftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638883056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ImageFilterVintageIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638877904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ImageFilterNoneIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638894096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ImageIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638878272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ImageMultipleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638883792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ImageOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638896304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ImportIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638894464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ImagePlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638886736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\InboxArrowDownIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638896672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\InboxArrowUpIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638879008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\InboxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638897040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\IncognitoIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638879376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\InboxMultipleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638873856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\InfinityIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638881216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\InformationIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638887472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\InformationVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638880112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\InformationOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638880480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\InstagramIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638881584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\InstapaperIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638888576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\InvertColorsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638888944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\InternetExplorerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638889680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ItunesIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638890048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\JeepneyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638874224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\JiraIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638907344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\JqueryIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638910288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\JsfiddleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638911392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\JsonIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638913600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\KarateIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638903296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\KegIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638915808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\KettleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638914704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\KeyChangeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638915072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\KeyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638916176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\KeyPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638918752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\KeyMinusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638899984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\KeyRemoveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638898880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\KeyVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638910656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\KeyboardCapsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638916912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\KeyboardBackspaceIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638899248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\KeyboardCloseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638899616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\KeyboardIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638914336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\KeyboardOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638916544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\KeyboardReturnIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638920592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\KeyboardTabIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638919488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\KickstarterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638900720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\KeyboardVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638917280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\KodiIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638913968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LabelIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638908448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LambdaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638911760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LadybugIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638909552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LabelOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638915440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LampIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638909920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LanConnectIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638913232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LanDisconnectIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638900352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LanIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638903664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LanPendingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638901088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LanguageCIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638912128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LanguageCppIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638904032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LanguageCss3Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638908080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LanguageCsharpIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638917648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LanguageGoIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638901824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LanguageHtml5Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638919120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LanguageJavascriptIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638904400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LanguagePhpIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638901456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LanguageLuaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638912496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LanguagePythonIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638904768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LanguagePythonTextIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638908816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LanguageSwiftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638918016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LanguageRIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638902192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LanguageTypescriptIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638919856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LaptopChromebookIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638902560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LaptopIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638902928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LaptopOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638911024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LaptopMacIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638918384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LaptopWindowsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638897408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LastfmIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638898512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LastpassIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638912864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LavaLampIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638907712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LaunchIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638905504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LayersIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638920224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LayersOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638897776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LeadPencilIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638909184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LeafIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638905136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LedOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638905872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LedOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638898144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LedOnIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638906240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LedVariantOnIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638906608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LedStripIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492638906976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LedVariantOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641939936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LedVariantOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641923744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LibraryBooksIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641941408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LibraryIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641924112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LibraryMusicIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641921904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LibraryPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641935520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LifebuoyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641921536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LightbulbIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641937360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LightbulbOnIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641934416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LightbulbOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641928896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LightbulbOnOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641930000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LinkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641940304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LinkOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641924480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LinkVariantOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641918224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LinkedinBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641924848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LinkVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641922272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LinkedinIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641935888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LinuxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641922640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LockIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641934784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LoadingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641933312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LockOpenIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641932944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LockOpenOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641931472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LockPatternIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641925216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LockOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641928160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LockResetIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641931104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LockPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641923008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LockSmartIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641931840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LockerMultipleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641923376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LockerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641925584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LoginIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641925952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LoginVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641928528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LogoutIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641933680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LogoutVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641935152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LoupeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641930368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LooksIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641929264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LoopIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641932208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\LumxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641930736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MagnetIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641936256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MagnifyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641936624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MagnetOnIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641926320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MagnifyMinusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641936992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MagnifyMinusOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641932576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MagnifyPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641934048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MagnifyPlusOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641941040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MailRuIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641929632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MailboxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641937728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MapIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641938096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MapMarkerCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641926688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MapMarkerMinusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641940672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MapMarkerMultipleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641927424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MapMarkerOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641920064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MapMarkerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641938464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MapMarkerOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641927056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MapMarkerPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641938832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MapMarkerRadiusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641939200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MarginIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641939568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MarkerCheckIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641918592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MarkdownIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641918960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MarkerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641919328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MartiniIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641927792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MaterialUiIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641919696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MathCompassIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641920432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MatrixIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641920800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MaxcdnIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641921168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MediumIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641943984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MedicalBagIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641961280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MemoryIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641962016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MenuDownIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641954288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MenuIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641958336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MenuDownOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641950240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MenuLeftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641963120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MenuRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641947296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MenuUpIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641942144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MessageAlertIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641948032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MenuUpOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641952448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MessageBulletedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641961648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MessageBulletedOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641943248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MessageDrawIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641959440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MessageIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641955392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MessageImageIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641959072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MessageOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641953920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MessagePlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641956864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MessageProcessingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641942512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MessageReplyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641952816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MessageReplyTextIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641958704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MessageSettingsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641954656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MessageVideoIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641945088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MessageSettingsVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641955024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MessageTextIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641945456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MessageTextOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641943616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MeteorIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641959808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MetronomeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641951712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MetronomeTickIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641955760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MicroSdIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641956128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MicrophoneIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641960176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MicrophoneOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641960544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MicrophoneMinusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641953184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MicrophonePlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641945824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MicrophoneOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641948400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MicrophoneSettingsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641956496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MicrophoneVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641952080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MicrophoneVariantOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641960912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MicroscopeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641948768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MicrosoftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641962384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MinusBoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641957232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MinecraftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641962752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MinusCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641957600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MinusBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641953552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MinusCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641949136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MinusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641963488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MinusNetworkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641957968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MixcloudIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641963856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MixedRealityIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641964224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MixerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641964592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MonitorIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641964960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MonitorMultipleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641946192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MoreIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641941776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MouseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641947664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MotorbikeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641949872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MouseOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641942880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MouseVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641944352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MoveResizeVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641949504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MoveResizeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641944720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MouseVariantOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641946560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MovieIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641946928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MovieRollIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641950608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MultiplicationBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641950976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MultiplicationIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641951344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MushroomOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641968272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MushroomIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641969744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MusicBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641968640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MusicBoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641966064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MusicCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641969008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MusicIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641966432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MusicNoteBluetoothIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641965696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MusicNoteBluetoothOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641969376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MusicNoteEighthIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641966800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MusicNoteOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641970480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MusicNoteHalfIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641970848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MusicNoteIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641970112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MusicNoteQuarterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641971216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MusicNoteSixteenthIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641971584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MusicOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641965328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\MusicNoteWholeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641967168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NatureIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641967536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NativescriptIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641967904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NaturePeopleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641720976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NavigationIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641720608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NearMeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641728704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NestProtectIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641716928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NeedleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641708096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NestThermostatIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641729072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NetflixIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641712512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NetworkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641716192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NetworkDownloadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641719136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NewBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641706256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NetworkQuestionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641716560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NetworkUploadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641711776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NewspaperIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641720240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NfcIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641717296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NfcVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641714352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NfcTapIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641727232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NinjaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641729440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NintendoSwitchIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641711040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NodejsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641722448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NoteMultipleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641727600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NoteMultipleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641712880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NoteIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641724656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NoteOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641717664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NotePlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641710304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NotePlusOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641718032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NoteTextIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641718768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NotebookIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641718400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NotificationClearAllIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641723920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NpmIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641719504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NukeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641714720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NullIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641708464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NumericIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641711408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_0BoxMultipleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641715088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_0BoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641713248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_0BoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641719872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_1BoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641721344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_1BoxMultipleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641712144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_1BoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641706624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_2BoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641710672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_2BoxMultipleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641724288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_2BoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641707360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_3BoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641706992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_3BoxMultipleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641721712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_3BoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641726128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_4BoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641722080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_4BoxMultipleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641715456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_4BoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641722816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_5BoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641723184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_5BoxMultipleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641726496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_5BoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641727968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_6BoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641723552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_6BoxMultipleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641725024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_6BoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641725392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_7BoxMultipleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641725760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_7BoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641709936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_7BoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641726864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_8BoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641728336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_8BoxMultipleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641707728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_8BoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641708832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_9BoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641709200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_9BoxMultipleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641709568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_9PlusBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641713616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_9BoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641713984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_9PlusBoxMultipleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641715824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Numeric_9PlusBoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641746368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NutIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641737904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\NutritionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641750784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OarIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641734960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OctagonOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641735696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OctagonIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641734592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OctagramIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641740480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OctagramOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641751520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OfficeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641752624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OdnoklassnikiIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641750048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OilIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641745632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OilTemperatureIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641746736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OmegaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641738272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OnedriveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641751152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OnenoteIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641735328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OnepasswordIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641733488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OpacityIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641748208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OpenInAppIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641750416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OpenidIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641742688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OpenInNewIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641743424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OrnamentIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641748944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OrbitIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641736064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OperaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641730912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OrnamentVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641749312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\OwlIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641732016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PackageIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641731280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PackageDownIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641739376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PackageUpIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641736432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PackageVariantClosedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641733856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PackageVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641751888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PageFirstIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641736800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PageLastIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641738640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PageLayoutBodyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641732384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PageLayoutFooterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641752256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PageLayoutHeaderIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641743056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PageLayoutSidebarLeftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641743792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PageLayoutSidebarRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641749680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PaletteIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641737168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PandaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641731648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PaletteAdvancedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641752992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PaletteSwatchIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641740848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PandoraIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641748576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PanoramaFisheyeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641730176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PanoramaHorizontalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641741216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PanoramaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641734224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PanoramaVerticalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641740112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PanoramaWideAngleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641742320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PaperCutVerticalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641741584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PaperclipIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641747472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ParkingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641737536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PassportIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641729808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PatreonIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641744528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PauseCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641739008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PauseCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641730544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PauseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641741952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PauseOctagonIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641747104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PauseOctagonOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641732752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PawIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641739744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PaypalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641733120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PawOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641744160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PeaceIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641744896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PenIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641745264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PencilBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641746000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PencilBoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641747840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PencilCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641754832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PencilCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641771024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PencilIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641766976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PencilOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641770656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PencilLockIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641765504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PentagonIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641771392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PentagonOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641768816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PercentIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641757776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PeriodicTableCo2Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641755200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PeriodicTableIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641769920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PeriscopeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641764032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PharmacyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641761456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PhoneBluetoothIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641774336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PhoneForwardIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641775072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PhoneIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641761824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PhoneHangupIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641760352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PhoneClassicIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641765872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PhoneInTalkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641772128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PhoneIncomingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641761088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PhoneLogIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641769552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PhoneLockedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641768080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PhoneMinusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641764400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PhoneMissedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641774704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PhonePausedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641771760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PhoneOutgoingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641758880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PhonePlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641775808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PhoneReturnIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641772496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PhoneRotateLandscapeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641766240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PhoneVoipIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641766608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PhoneRotatePortraitIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641776176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PhoneSettingsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641762560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PiBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641756304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PiIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641759616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PierCraneIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641762192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PianoIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641775440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PickaxeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641770288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PierIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641768448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PillarIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641759248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PigIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641772864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PillIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641769184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PinIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641767344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PinOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641773232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PineTreeBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641773600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PineTreeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641776544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PinterestIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641758512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PinterestBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641763664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PipeDisconnectedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641773968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PipeLeakIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641753360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PipeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641753728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PistolIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641767712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PistonIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641762928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PizzaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641754096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlaneShieldIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641754464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlayBoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641755568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlayCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641755936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlayIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641760720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlayCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641756672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlayNetworkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641757040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlayPauseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641757408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlaylistCheckIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641763296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlayProtectedContentIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641758144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlaylistMinusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641759984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlaylistPlayIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641764768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlaylistPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641765136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlaylistRemoveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641791264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlaystationIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641793472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlexIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641799360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlusBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641787584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlusBoxOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641782800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlusCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641799728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641777280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlusCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641787952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlusCircleMultipleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641790528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlusNetworkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641796048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlusOneIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641783168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PlusOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641778016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PocketIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641796416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PokeballIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641788320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PokerChipIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641796784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PollBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641798624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PolaroidIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641776912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PollIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641790896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PolymerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641798992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PoolIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641787216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PotIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641800096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PotMixIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641786848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PopcornIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641797152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PoundIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641797520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PoundBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641793840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PowerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641788688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PowerPlugIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641790160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PowerPlugOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641778752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PowerSettingsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641782064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PowerSocketIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641783536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PowerSocketEuIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641781696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PowerSocketUkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641789056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PowerSocketUsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641779120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PrescriptionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641794208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PresentationPlayIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641789424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PresentationIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641785008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PrinterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641797888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PrinterAlertIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641777648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PrinterSettingsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641785376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Printer_3dIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641783904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PriorityLowIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641789792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PriorityHighIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641779488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ProfessionalHexagonIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641784640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ProjectorIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641793104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ProjectorScreenIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641792368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PulseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641785744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PublishIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641786112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\PuzzleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641791632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\QqchatIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641798256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\QrcodeEditIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641792000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\QrcodeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641778384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\QrcodeScanIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641779856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\QuadcopterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641780224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\QualityHighIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641794576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\QuicktimeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641792736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641794944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RadarIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641780592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RadioHandheldIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641795312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RadiatorIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641782432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RadioIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641780960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RadioTowerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641795680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RadioactiveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641781328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RadioboxMarkedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641784272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RadioboxBlankIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641786480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RayEndArrowIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641806720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RaspberrypiIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641806352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RayEndIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641823648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RayStartArrowIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641813712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RayStartEndIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641805616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RayStartIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641823280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RdioIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641811136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ReadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641801936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ReactIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641818128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RayVertexIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641814080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ReadabilityIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641817760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ReceiptIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641812608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RecordIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641818496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RecordRecIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641814448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RecycleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641812240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RedoIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641801568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RedoVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641822912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RedditIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641800464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RefreshIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641812976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RegexIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641815184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ReminderIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641810400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RelativeScaleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641819968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ReloadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641802304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RemoteDesktopIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641802672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RenameBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641811504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RemoteIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641804144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ReorderHorizontalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641803040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ReorderVerticalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641821072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RepeatIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641813344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RepeatOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641814816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RepeatOnceIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641803408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ReplyAllIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641800832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ReplayIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641807088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ReplyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641801200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ReproductionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641807456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ResizeBottomRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641803776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ResponsiveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641815552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RestartIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641805984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RestoreIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641804512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RewindIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641815920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RhombusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641818864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RibbonIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641804880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RhombusOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641805248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RewindOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641810768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RiceIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641821440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641820704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RoadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641807824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RoadVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641808192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RobotIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641816288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RocketIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641808560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RoomServiceIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641819600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RoombaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641816656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RotateLeftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641808928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RotateLeftVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641809296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RotateRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641809664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RotateRightVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641819232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Rotate_3dIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641810032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RoutesIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641811872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RoundedCornerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641817024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Rotate_90Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641817392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RouterWirelessIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641820336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RowingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641821808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RssIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641822176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RssBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641822544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RulerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641825120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RunFastIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641837632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SaleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641845360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SalesforceIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641836528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\RunIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641827696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SatelliteIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641843152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SatelliteVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641839104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SaxophoneIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641846832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SassIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641825856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SausageIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641824752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ScaleBalanceIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641842416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ScaleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641838000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ScaleBathroomIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641838368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ScannerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641825488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SchoolIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641826224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ScreenRotationIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641831744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ScriptIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641840208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ScreenRotationLockIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641839472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ScrewdriverIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641832848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SdIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641838736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SearchWebIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641839840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SealIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641836896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SeatFlatAngledIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641824384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SeatFlatIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641830272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SeatIndividualSuiteIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641832112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SeatLegroomExtraIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641843888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SeatLegroomReducedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641826592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SeatLegroomNormalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641835056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SeatReclineExtraIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641847200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SeatReclineNormalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641826960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SecurityAccountIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641827328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SecurityHomeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641842784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SecurityNetworkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641833216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SecurityIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641837264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SelectAllIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641843520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SelectOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641828064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SelectIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641841312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SelectInverseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641833584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SelectionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641844256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SelectionOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641824016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SerialPortIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641846096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SendSecureIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641828432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SendIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641830640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ServerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641844624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ServerMinusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641835424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ServerNetworkOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641834320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ServerNetworkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641829536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ServerOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641828800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ServerPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641829168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ServerRemoveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641840576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SetAllIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641844992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ServerSecurityIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641845728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SetCenterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641829904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SetCenterRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641835792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SetLeftCenterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641846464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SetLeftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641840944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SetLeftRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641831008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SetNoneIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641841680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SetRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641831376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SettingsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641832480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SettingsBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641842048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SettingsOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641833952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShapeCirclePlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641834688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShapeOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641836160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShapeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641859344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShapePlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641868176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShapeSquarePlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641863760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShapePolygonPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641857872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShapeRectanglePlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641851248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShareIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641866704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShieldHalfFullIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641862656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShareVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641870384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShieldIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641849040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShieldOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641847936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShipWheelIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641865968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShoppingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641848304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShoppingMusicIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641848672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShovelOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641863024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShovelIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641853456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShredderIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641855664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShuffleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641861184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShuffleDisabledIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641868544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SigmaLowerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641869648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ShuffleVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641861552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SigmaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641849776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SignCautionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641860816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SignDirectionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641868912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SignTextIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641870016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SignalCellularOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641852720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SignalCellular_2Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641850880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SignalCellular_1Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641850144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SignalCellular_3Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641853088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SignalHspaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641853824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SignalHspaPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641864864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SignalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641849408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SignalOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641854192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Signal_2gIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641870752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SignalVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641861920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Signal_3gIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641856032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Signal_4gIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641869280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SilverwareForkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641847568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SilverwareIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641865600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SilverwareSpoonIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641858240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SimAlertIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641859712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SilverwareVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641856768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SimIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641850512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SimOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641854928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SitemapIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641860080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SkipBackwardIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641851616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SkipForwardIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641851984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SkipNextCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641858608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SkipNextCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641852352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SkipPreviousCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641854560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SkipNextIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641864128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SkipPreviousIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641858976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SkypeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641856400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SkipPreviousCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641855296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SkullIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641857136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SlackIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641857504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SkypeBusinessIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641860448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SleepOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641862288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SleepIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641863392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SmokingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641864496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SmokingOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641865232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SnapchatIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641866336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SnowflakeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641867072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SoccerFieldIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641867440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SnowmanIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641867808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SoccerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641882160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SofaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641884000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SolidIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641884736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SortAlphabeticalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641890256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SortAscendingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641877008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SortDescendingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641873328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SortIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641893200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SortNumericIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641890992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SortVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641872592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SoundcloudIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641880688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SourceBranchIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641875904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SourceCommitEndIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641882896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SourceCommitEndLocalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641890624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SourceCommitIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641888048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SourceCommitLocalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641871488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SourceCommitNextLocalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641886208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SourceCommitStartIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641877376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SourceMergeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641879216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SourceCommitStartNextLocalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641885104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SourceForkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641891728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SourcePullIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641893568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SoySauceIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641885472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SpeakerOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641885840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SpeakerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641891360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SpeakerWirelessIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641892832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SpeedometerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641876640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SpellcheckIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641883264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SpotlightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641892096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SpotlightBeamIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641888416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SprayIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641871856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SpotifyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641886576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SquareIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641877744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SquareIncCashIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641886944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SquareIncIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641878112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SquareOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641878480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SquareRootIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641893936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SshIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641887312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StadiumIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641883632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StackexchangeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641874800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StackoverflowIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641872960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StairsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641881792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StandardDefinitionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641875168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StarCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641873696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StarIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641887680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StarHalfIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641872224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StarOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641888784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StarOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641889152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SteeringIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641878848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SteamIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641879584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StepBackwardIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641894304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StepBackward_2Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641892464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StepForwardIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641889520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StepForward_2Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641889888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StethoscopeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641882528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StickerEmojiIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641871120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StickerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641874064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StockingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641874432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StopCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641875536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StopIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641876272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StopCircleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641879952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StoreIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641880320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Store_24HourIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641881056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\StoveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641881424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SubdirectoryArrowRightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641884368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SubdirectoryArrowLeftIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641906448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SummitIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641913808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SubwayIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641909024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SubwayVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641905344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SurroundSoundIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641904608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SunglassesIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641902032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SurroundSound_2_0Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641902768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SurroundSound_3_1Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641915280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SurroundSound_5_1Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641915648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SurroundSound_7_1Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641912704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SvgIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641896144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SwapHorizontalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641905712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SwapHorizontalVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641901296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SwapVerticalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641917120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SwapVerticalVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641902400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SwimIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641917488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SwitchIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641917856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SwordIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641894672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SyncAlertIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641914912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SyncIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641910496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SyncOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641904976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\SwordCrossIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641916016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TabPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641916384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TabIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641899456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TabUnselectedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641898352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TableColumnIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641914176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TableColumnRemoveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641909760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TableColumnPlusBeforeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641895040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TableColumnPlusAfterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641896512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TableColumnWidthIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641895408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TableEditIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641911232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TableLargeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641899824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TableIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641910128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TableOfContentsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641900192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TableRowHeightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641909392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TableRowPlusAfterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641900560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TableRowPlusBeforeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641903136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TableRowIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641895776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TableSettingsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641896880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TableRowRemoveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641913072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TabletIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641897248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TabletAndroidIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641897616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TabletIpadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641900928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TacoIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641901664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TagFacesIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641897984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TagHeartIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641911968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TagIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641906080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TagOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641906816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TagMultipleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641898720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TagRemoveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641899088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TagTextOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641908288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TagPlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641903504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TargetIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641903872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TaxiIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641904240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TeachIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641907184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TelegramIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641907552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TeamviewerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641907920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TelevisionClassicOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641908656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TelevisionBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641910864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TelevisionClassicIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641911600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TelevisionGuideIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641912336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TelevisionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641913440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TelevisionOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641914544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TemperatureCelsiusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492641916752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TemperatureFahrenheitIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644676256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TemperatureKelvinIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644663744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TennisIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644656384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TentIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644665216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TerrainIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644667056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TestTubeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644674784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TextShadowIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644661168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TextToSpeechIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644661536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TextToSpeechOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644674048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TextboxPasswordIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644662272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TextboxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644670736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TextureIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644672576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TheaterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644658592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ThermometerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644656752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ThemeLightDarkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644670368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ThermostatBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644674416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ThermometerLinesIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644665584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ThoughtBubbleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644669632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ThoughtBubbleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644675888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ThumbDownIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644659696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ThumbDownOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644657856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ThumbUpIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644660064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ThumbUpOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644664112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TicketAccountIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644664480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ThumbsUpDownIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644670000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TicketConfirmationIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644663008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TicketIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644658224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TicketPercentIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644662640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TieIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644672208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TimelapseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644671104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TildeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644658960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TimerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644659328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TimerOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644679568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TimerSandEmptyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644657120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TimerSandFullIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644660432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TimerSandIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644664848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Timer_10Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644665952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Timer_3Icon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644671472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TimetableIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644663376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ToggleSwitchIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644660800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ToggleSwitchOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644666320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TooltipEditIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644657488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TooltipImageIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644661904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TooltipOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644671840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TooltipIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644667424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TooltipOutlinePlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644672944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ToothIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644666688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ToothOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644667792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TooltipTextIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644673312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TorIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644668160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TowerBeachIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644676992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TowingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644678464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TrackpadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644673680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TowerFireIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644668528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TractorIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644675152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TrainIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644668896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TrafficLightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644669264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TramIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644675520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TrainVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644676624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TranscribeCloseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644677360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TransitTransferIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644677728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TransferIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644678096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TranscribeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644678832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TranslateIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644679200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TreasureChestIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644693552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TreeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644695024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TrendingDownIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644694288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TrendingNeutralIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644700912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TrelloIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644688400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TrendingUpIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644702384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TriangleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644703120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TriangleOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644700176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TrophyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644700544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TrophyAwardIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644681408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TrophyOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644691344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TrophyVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644696128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TruckDeliveryIcon.js" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492430705888", + "details": "DESKTOP-G9G1TRP:50365 connected to DESKTOP-G9G1TRP:27017, send buffer size: 65536, recv buffer size: 65536, write queue size: 0, readable, writable" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644690608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TruckFastIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644693920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TruckIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644695392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TrophyVariantOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644695760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TruckTrailerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644696496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TshirtCrewIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644682880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TshirtVIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644686192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TumblrReblogIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644692080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TumblrIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644686560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TuneIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644692448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TuneVerticalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644681776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TwitchIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644686928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TwitterBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644687296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TwitterCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644688032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TwitterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644688768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\TwitterRetweetIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644684352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UberIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644683248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UbuntuIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644690976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UmbracoIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644697232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UltraHighDefinitionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644697600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UmbrellaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644681040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UmbrellaOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644687664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UndoIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644691712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UndoVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644697968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UnfoldLessVerticalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644694656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UnfoldMoreHorizontalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644696864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UnfoldLessHorizontalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644689504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UnfoldLessIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644684720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UnfoldMoreVerticalIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644685824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UnityIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644682144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UngroupIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644689136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UnfoldMoreIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644682512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UntappdIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644689872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UploadNetworkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644690240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UploadIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644692816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UpdateIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644693184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UploadMultipleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644685088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\UsbIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644683616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VanUtilityIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644701280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VanPassengerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644701648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorArrangeAboveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644698336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VanishIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644683984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorArrangeBelowIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644698704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644702752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorCircleVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644699072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorCurveIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644685456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorCombineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644699440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorDifferenceAbIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644699808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorDifferenceIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644702016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorDifferenceBaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644679936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorEllipseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644680304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorLineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644680672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorIntersectionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644703856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorPointIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644718944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorPolygonIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644721888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorRadiusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644713056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorPolylineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644704960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorRectangleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644707904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorSelectionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644714160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorTriangleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644705328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorSquareIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644711584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VectorUnionIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644708272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VenmoIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644723360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VerifiedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644723728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VibrateIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644724096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VideoIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644720784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VideoInputAntennaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644704592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VideoInputComponentIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644706432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VideoInputSvideoIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644724832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VideoInputHdmiIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644710480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VideoSwitchIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644725568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VideoOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644707536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Video_3dIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644705696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ViewArrayIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644716736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ViewAgendaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644716000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\Video_4kBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644714528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ViewCarouselIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644717104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ViewDashboardVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644718576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ViewColumnIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644726672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ViewDashboardIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644719312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ViewDayIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644706800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ViewGridIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644726304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ViewListIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644715632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ViewHeadlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644716368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ViewModuleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644725936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ViewParallelIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644708640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ViewQuiltIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644720416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ViewSequentialIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644722992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ViewStreamIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644709008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ViewWeekIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644719680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VimeoIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644724464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644721152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ViolinIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644706064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VirtualRealityIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644707168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VisualstudioIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644725200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VkBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644710848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VkCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644709376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VlcIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644703488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644712320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VoiceIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644721520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VoicemailIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644709744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VolumeHighIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644720048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VolumeLowIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644704224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VolumeMediumIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644722624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VolumeMinusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644710112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VolumeMuteIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644711216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VolumePlusIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644711952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VolumeOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644712688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VpnIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644713424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\VuejsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644713792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WallIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644714896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WalkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644722256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WalletGiftcardIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644715264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WalletIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644717472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WalletMembershipIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644717840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WalletTravelIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644718208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WanIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644742128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WashingMachineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644746912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WatchExportIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644746176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WatchExportVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644748016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WatchImportIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644733296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WatchIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644749488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WatchImportVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644735872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WatchVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644745072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WatchVibrateIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644747648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WaterIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644749120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WaterOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644728880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WaterPercentIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644735136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WaterPumpIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644731456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WatermarkIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644739552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WavesIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644747280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WeatherFogIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644748384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WeatherCloudyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644744336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WeatherHailIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644728144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WeatherLightningRainyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644729984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WeatherLightningIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644748752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WeatherHurricaneIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644734032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WeatherNightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644743232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WeatherRainyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644736976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WeatherPartlycloudyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644733664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WeatherPouringIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644734400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WeatherSnowyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644734768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WeatherSunnyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644732192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WeatherSnowyRainyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644731088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WeatherSunsetDownIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644735504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WeatherSunsetIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644742496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WeatherSunsetUpIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644736240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WeatherWindyVariantIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644738448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WeatherWindyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644749856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WebIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644730352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WebcamIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644750224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WebhookIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644739920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WebpackIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644729248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WechatIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644740288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WeightIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644727040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WeightKilogramIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644732560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WhatsappIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644736608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WheelchairAccessibilityIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644741024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WhiteBalanceAutoIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644727408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WhiteBalanceIncandescentIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644740656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WhiteBalanceIridescentIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644728512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WidgetsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644729616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WhiteBalanceSunnyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644738816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WifiIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644727776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WiiIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644730720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WifiOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644731824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WiiuIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644732928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WikipediaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644741392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WindowCloseIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644738080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WindowMaximizeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644741760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WindowClosedIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644737712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WindowMinimizeIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644742864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WindowRestoreIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644744704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WindowOpenIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644737344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WindowsIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644743968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WordpressIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644739184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WorkerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644743600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WrapIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644745440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WrenchIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644745808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\WunderlistIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644746544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\XamarinIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644750592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\XamlIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644751696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\XamarinOutlineIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644752800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\XboxControllerBatteryAlertIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644755744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\XboxControllerBatteryEmptyIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644753168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\XboxControllerBatteryMediumIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644757216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\XboxControllerBatteryFullIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644756112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\XboxControllerBatteryLowIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644755376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\XboxControllerBatteryUnknownIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644752064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\XboxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644753904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\XboxControllerOffIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644756848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\XboxControllerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644750960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\XdaIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644755008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\XingBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644751328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\XingCircleIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644752432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\XingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644753536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\XmlIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644754272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\XmppIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644756480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\YammerIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644754640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\YelpIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644498880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\YeastIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644505136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\YinYangIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644499616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\YoutubeGamingIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644495936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\YoutubeCreatorStudioIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644506608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\YoutubePlayIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644511760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644512128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\YoutubeTvIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644508816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\ZipBoxIcon.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644492624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\flexlayout-react\\images\\close.png" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644491888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\flexlayout-react\\images\\close_white.png" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644504032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\transform.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644510656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@icons\\material\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644499248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\flexlayout-react\\images\\maximize.png" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644492256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\flexlayout-react\\images\\restore.png" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644491520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\flexlayout-react\\images\\more.png" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644509184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-schema\\lib\\afterRequest.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644512496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-schema\\lib\\cache.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644502928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-schema\\lib\\browser.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644498512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-schema\\lib\\beforeRequest.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644492992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-schema\\lib\\creator.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644505504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-schema\\lib\\content.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644499984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-schema\\lib\\entry.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644497040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-schema\\lib\\cookie.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644500352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-schema\\lib\\header.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644493360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-schema\\lib\\har.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644494832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-schema\\lib\\page.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644495568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-schema\\lib\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644495200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-schema\\lib\\log.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644508448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-schema\\lib\\postData.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644507712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-schema\\lib\\query.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644502560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-schema\\lib\\pageTimings.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644507344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-schema\\lib\\request.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644512864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-schema\\lib\\timings.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644511392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-schema\\lib\\response.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644500720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\form-data\\lib\\browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644506976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\form-data\\lib\\form_data.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644511024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\form-data\\lib\\populate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644502192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-validator\\lib\\error.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644513232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash.js\\lib\\hash.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644504768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash.js\\lib\\hash.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644513600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-validator\\lib\\promise.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644513968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\har-validator\\lib\\async.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644501088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\CSSCore.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644493728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\CSSCore.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644503296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\DataTransfer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644509552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\DataTransfer.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644494096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\Deferred.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644501456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\Deferred.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644496672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\ErrorUtils.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644514336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\ErrorUtils.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644505872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\EventListener.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644508080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\EventListener.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644506240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\ExecutionEnvironment.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644514704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\Keys.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644501824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\ExecutionEnvironment.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644494464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\Keys.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644503664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\Map.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644504400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\Map.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644496304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\PhotosMimeType.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644509920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\PhotosMimeType.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644510288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\Promise.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644497408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\Promise.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644497776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\Promise.native.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644498144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\PromiseMap.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644526112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\PromiseMap.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644515072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\Promise.native.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644516912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\Scroll.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644534208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\Scroll.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644534576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\Set.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644523536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\Set.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644534944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\Style.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644523904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\Style.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644536416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\TokenizeUtil.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644536784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\TokenizeUtil.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644533840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\TouchEventUtils.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644532736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\TouchEventUtils.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644519856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\URI.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644535312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\URI.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644530896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\UnicodeBidi.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644537888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\UnicodeBidi.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644531264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\UnicodeBidiDirection.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644535680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\UnicodeBidiDirection.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644521328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\UnicodeBidiService.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644538256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\UnicodeBidiService.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644531632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\UnicodeCJK.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644515440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\UnicodeCJK.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644532000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\UnicodeHangulKorean.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644532368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\UnicodeUtils.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644522064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\UnicodeHangulKorean.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644517280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\UnicodeUtils.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644536048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\UnicodeUtilsExtra.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644528688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\UnicodeUtilsExtra.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644515808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\UserAgent.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644516176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\UserAgent.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644537152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\UserAgentData.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644529792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\UserAgentData.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644533104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\VersionRange.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644516544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\VersionRange.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644537520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\_shouldPolyfillES6Collection.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644517648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\_shouldPolyfillES6Collection.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644518016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\areEqual.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644518384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\areEqual.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644524272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\base62.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644533472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\base62.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644518752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\camelize.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644522432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\camelize.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644519120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\camelizeStyleName.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644527216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\compactArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644519488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\camelizeStyleName.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644525376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\compactArray.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644520224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\containsNode.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644524640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\concatAllArray.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644520592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\concatAllArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644520960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\containsNode.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644527952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\countDistinct.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644527584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\crc32.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644521696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\countDistinct.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644525744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\crc32.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644522800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\createNodesFromMarkup.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644530528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\createArrayFromMixed.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644530160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\createArrayFromMixed.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644528320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\createNodesFromMarkup.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644526480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\cx.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644523168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\cx.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644525008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\distinctArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644526848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\emptyFunction.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644529056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\distinctArray.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644529424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\emptyObject.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644561808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\emptyFunction.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644545984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\enumerate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644553344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\emptyObject.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644544880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\equalsIterable.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644544512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\enumerate.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644549296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\equalsIterable.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644550768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\equalsSet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644543776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\equalsSet.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644551136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\everyObject.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644549664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\everyObject.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644540096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\everySet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644559232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\everySet.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644546720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\fetch.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644551504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\fetch.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644550032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\fetchWithRetries.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644545248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\fetchWithRetries.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644553712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\filterObject.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644538992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\filterObject.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644550400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\flatMapArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644551872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\flatMapArray.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644547824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\flattenArray.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644556656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\flattenArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644552976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\focusNode.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644540832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\focusNode.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644558496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\forEachObject.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644540464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\forEachObject.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644555920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\getActiveElement.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644557024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\getActiveElement.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644552240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\getDocumentScrollElement.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644561440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\getElementPosition.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644543408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\getDocumentScrollElement.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644543040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\getElementRect.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644548192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\getElementPosition.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644539360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\getMarkupWrap.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644554080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\getElementRect.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644552608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\getMarkupWrap.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644541936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\getScrollPosition.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644557760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\getScrollPosition.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644544144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\getStyleProperty.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644545616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\getStyleProperty.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644538624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\getUnboundedScrollPosition.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644542304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\getUnboundedScrollPosition.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644546352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\getViewportDimensions.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644547088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\getViewportDimensions.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644541568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\groupArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644541200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\groupArray.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644548928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\hyphenate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644539728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\hyphenate.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644554448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\hyphenateStyleName.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644555184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\hyphenateStyleName.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644547456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\invariant.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644555552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\invariant.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644559600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\isEmpty.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644548560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\isEmpty.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644554816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\isNode.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644556288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\isNode.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644557392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\isTextNode.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644542672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\isTextNode.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644558864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\joinClasses.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644558128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\joinClasses.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644559968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\keyMirror.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644560336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\keyMirror.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644560704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\keyMirrorRecursive.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644561072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\keyMirrorRecursive.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644572112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\keyOf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644568800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\keyOf.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644575424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\mapObject.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644569904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\mapObject.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644572480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\maxBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644580944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\maxBy.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644582416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\memoizeStringOnly.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644579840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\memoizeStringOnly.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644568064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\minBy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644567328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\monitorCodeUse.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644562912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\minBy.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644576160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\monitorCodeUse.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644578368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\nativeRequestAnimationFrame.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644570272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\nativeRequestAnimationFrame.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644574320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\nullthrows.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644571744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\nullthrows.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644566960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\partitionArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644566592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\partitionArray.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644564016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\partitionObject.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644568432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\partitionObject.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644584256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\partitionObjectByKey.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644573952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\partitionObjectByKey.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644573584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\performance.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644580208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\performance.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644579472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\performanceNow.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644573216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\performanceNow.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644574688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\requestAnimationFrame.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644562544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\removeFromArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644575056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\removeFromArray.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644565856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\resolveImmediate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644567696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\resolveImmediate.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644580576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\requestAnimationFrame.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644569168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\setImmediate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644581312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\setImmediate.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644571376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\shallowEqual.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644569536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\shallowEqual.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644578000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\someObject.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644575792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\someObject.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644563280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\someSet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644581680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\warning.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644584624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\someSet.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644564752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\sprintf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644570640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\sprintf.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644576528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\xhrSimpleDataSerializer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644566224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\warning.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644583152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\fbjs\\lib\\xhrSimpleDataSerializer.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644577264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\modes\\cbc.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644579104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\modes\\cfb1.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644582784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\modes\\cfb.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644572848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\modes\\cfb8.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644582048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\modes\\ctr.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644583520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\modes\\list.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644571008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\modes\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644576896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\modes\\ecb.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644577632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\browserify-aes\\modes\\ofb.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644583888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\http-signature\\lib\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644578736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\http-signature\\lib\\parser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644565120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\http-signature\\lib\\utils.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644584992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\http-signature\\lib\\signer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644585360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\http-signature\\lib\\verify.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644562176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hmac-drbg\\lib\\hmac-drbg.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644563648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\image-size\\lib\\detector.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644564384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\image-size\\lib\\readUInt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644565488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\image-size\\lib\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644597872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\image-size\\lib\\types.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644600816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\jquery\\dist\\jquery.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644606704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\jquery\\dist\\jquery.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644597504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\jquery\\dist\\core.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644589040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\jquery\\dist\\jquery.min.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644599344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\jquery\\dist\\jquery.slim.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644603024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\jquery\\dist\\jquery.slim.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644607440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\html-entities\\lib\\html4-entities.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644598976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\jquery\\dist\\jquery.slim.min.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644599712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\html-entities\\lib\\html5-entities.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644587936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\html-entities\\lib\\xml-entities.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644587568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\jsprim\\lib\\jsprim.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644600080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\json-schema\\lib\\validate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644593824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\minimalistic-crypto-utils\\lib\\utils.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644596032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\json-schema\\lib\\links.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644602656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\material-colors\\dist\\colors.es2015.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644607072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\material-colors\\dist\\colors.css" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644603392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\material-colors\\dist\\colors.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644600448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\material-colors\\dist\\colors.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644595664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\material-colors\\dist\\colors.less" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644592352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\material-colors\\dist\\colors.sass" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644586464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\material-colors\\dist\\colors.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644594560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\material-colors\\dist\\colors.styl" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644586832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\material-colors\\dist\\colors.var.css" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644593088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\node-libs-browser\\mock\\buffer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644606336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\node-libs-browser\\mock\\console.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644608176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\node-libs-browser\\mock\\net.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644588304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\node-libs-browser\\mock\\dns.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644601184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\node-libs-browser\\mock\\tls.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644603760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\node-libs-browser\\mock\\empty.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644587200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\node-libs-browser\\mock\\process.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644597136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\node-libs-browser\\mock\\punycode.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644594928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\node-libs-browser\\mock\\tty.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644601920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx\\lib\\internal.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644598240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx\\lib\\mobx.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644604128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx\\lib\\mobx.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644595296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx\\lib\\mobx.es6.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644590880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx\\lib\\mobx.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644593456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx\\lib\\mobx.module.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644604496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx\\lib\\mobx.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644608544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\miller-rabin\\lib\\mr.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644598608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx\\lib\\mobx.umd.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644596400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\mobx\\lib\\mobx.umd.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644607808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\build\\pdf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644601552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\build\\pdf.worker.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644589408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\build\\pdf.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644602288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\build\\pdf.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644588672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\build\\pdf.worker.entry.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644591248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\build\\pdf.worker.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644604864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\build\\pdf.worker.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644605232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prop-types\\lib\\ReactPropTypesSecret.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644594192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\web\\pdf_viewer.css" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644608912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\web\\pdf_viewer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644589776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\web\\pdf_viewer.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644605600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-history\\dist\\history.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644605968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\performance-now\\lib\\performance-now.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644586096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-history\\dist\\history.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644585728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\performance-now\\lib\\performance-now.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644590144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-keymap\\dist\\keymap.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644591616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-commands\\dist\\commands.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644590512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-keymap\\dist\\keymap.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644591984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pbkdf2\\lib\\default-encoding.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644592720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pbkdf2\\lib\\async.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644617376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-commands\\dist\\commands.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644625840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pbkdf2\\lib\\precondition.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644622160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pbkdf2\\lib\\sync-browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644629888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pbkdf2\\lib\\sync.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644626208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-menu\\dist\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644623632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-schema-list\\dist\\schema-list.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644618480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-schema-list\\dist\\schema-list.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644632096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-menu\\dist\\index.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644612592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-inputrules\\dist\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644624368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-model\\dist\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644630624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-inputrules\\dist\\index.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644620320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-state\\dist\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644625472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-model\\dist\\index.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644627312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-state\\dist\\index.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644611120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-transform\\dist\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644614064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-view\\dist\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644629520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-transform\\dist\\index.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644626576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\psl\\data\\rules.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644621792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\prosemirror-view\\dist\\index.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644622528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-is\\cjs\\react-is.development.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644614800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-is\\cjs\\react-is.production.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644622896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\Alpha.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644619584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\Block.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644618112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\Chrome.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644630256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\Compact.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644626944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\Circle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644624736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\Custom.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644609648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\Github.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644627680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\Hue.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644630992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\Material.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644610384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\Photoshop.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644631360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\Sketch.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644616640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\Slider.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644619952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644618848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\Swatches.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644624000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\Twitter.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644619216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-image-lightbox\\dist\\index.es.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644617744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-jsx-parser\\lib\\react-jsx-parser.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644610016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-image-lightbox\\dist\\index.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644623264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-jsx-parser\\lib\\react-jsx-parser.min.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644615168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\cjs\\react-dom-server.browser.production.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644632464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\cjs\\react-dom-server.browser.development.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644625104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\cjs\\react-dom-server.node.development.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644615536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\cjs\\react-dom-server.node.production.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644628048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\cjs\\react-dom-test-utils.development.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644628416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\cjs\\react-dom-test-utils.production.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644628784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\cjs\\react-dom-unstable-fire.development.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644629152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\cjs\\react-dom-unstable-fire.production.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644631728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\cjs\\react-dom-unstable-fire.profiling.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644620688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\cjs\\react-dom-unstable-fizz.browser.development.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644609280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\cjs\\react-dom-unstable-fizz.browser.production.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644610752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\cjs\\react-dom-unstable-fizz.node.development.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644617008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\cjs\\react-dom.development.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644611488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\cjs\\react-dom-unstable-fizz.node.production.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644611856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\cjs\\react-dom-unstable-native-dependencies.production.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644612224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\cjs\\react-dom-unstable-native-dependencies.development.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644612960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\cjs\\react-dom.production.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644613328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-dom\\cjs\\react-dom.profiling.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644613696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-measure\\dist\\index.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644614432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-measure\\dist\\index.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644615904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-measure\\dist\\index.umd.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644616272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-modal\\lib\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644621056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-table\\es\\defaultProps.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644621424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-table\\es\\actions.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644638720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-table\\es\\aggregations.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644640928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-table\\es\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644640560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-table\\es\\lifecycle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644633936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-table\\es\\methods.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644645712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-table\\es\\pagination.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644640192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-table\\es\\propTypes.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644655280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-table\\es\\utils.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644639088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react\\cjs\\react.development.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644641664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react\\cjs\\react.production.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644635776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\reactcss\\lib\\autoprefix.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644636880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\reactcss\\lib\\flattenNames.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644647920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\reactcss\\lib\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644646448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\reactcss\\lib\\mergeClasses.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644656016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\reactcss\\lib\\loop.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644635408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-transition-group\\utils\\PropTypes.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644651232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request-promise-core\\configure\\request2.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644637248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-transition-group\\utils\\SimpleSet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644652704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-transition-group\\utils\\ChildMapping.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644636144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request-promise-core\\configure\\request-next.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644643136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request-promise-core\\lib\\errors.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644648656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request-promise-core\\lib\\plumbing.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644646080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\lib\\_stream_duplex.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644653072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\lib\\_stream_readable.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644646816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\lib\\_stream_passthrough.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644647552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\lib\\_stream_transform.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644634304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\lib\\_stream_writable.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644651968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request-promise\\lib\\rp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644653808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\resize-observer-polyfill\\dist\\ResizeObserver.es.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644637616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\resize-observer-polyfill\\dist\\ResizeObserver.global.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644652336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\rope-sequence\\dist\\.keep" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644642400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\rope-sequence\\dist\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644648288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\resize-observer-polyfill\\dist\\ResizeObserver.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644635040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\resize-observer-polyfill\\dist\\ResizeObserver.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644653440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\scheduler\\cjs\\scheduler-tracing.development.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644644240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\scheduler\\cjs\\scheduler.development.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644641296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\scheduler\\cjs\\scheduler-tracing.production.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644642032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\lib\\auth.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644650496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\scheduler\\cjs\\scheduler-tracing.profiling.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644654544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\scheduler\\cjs\\scheduler.production.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644637984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\lib\\cookies.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644634672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\lib\\getProxyFromURI.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644644976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\lib\\har.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644655648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\lib\\hawk.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644642768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\lib\\helpers.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644643504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\lib\\oauth.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644638352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\lib\\multipart.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644643872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\lib\\querystring.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644649024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\lib\\redirect.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644649760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\lib\\tunnel.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644632832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-client\\lib\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644650128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-client\\lib\\manager.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644639824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-client\\lib\\url.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644636512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-client\\lib\\on.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644651600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-client\\lib\\socket.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496125488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\algs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647286176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\certificate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647289856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\dhe.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647290592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\ed-compat.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647305680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\errors.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647285072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\identity.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647288016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\fingerprint.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647299424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\key.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647295376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647295744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\signature.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647304944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\private-key.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647299056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\ssh-buffer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647290224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\utils.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647293536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\lib\\capability.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647292064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\lib\\response.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647287280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\lib\\request.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647298320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\style-loader\\lib\\addStyles.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647286544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\style-loader\\lib\\urls.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647292800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\style-loader\\lib\\addStyleUrl.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647285440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stealthy-require\\lib\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647296112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tough-cookie\\lib\\cookie.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647283968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tough-cookie\\lib\\pathMatch.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647293168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tough-cookie\\lib\\permuteDomain.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647293904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tough-cookie\\lib\\memstore.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647306416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tough-cookie\\lib\\pubsuffix-psl.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647286912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\tough-cookie\\lib\\store.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647306048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\string_decoder\\lib\\string_decoder.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647294272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\util\\support\\isBufferBrowser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647294640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\verror\\lib\\verror.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647285808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\lib\\bytesToUuid.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647306784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\util\\support\\isBuffer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647300160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\lib\\rng.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647296480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\lib\\rng-browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647302736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\lib\\md5-browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647290960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\lib\\v35.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647300528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\lib\\md5.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647287648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\lib\\sha1-browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647291328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uuid\\lib\\sha1.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647284336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack\\buildin\\global.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647295008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack\\buildin\\module.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647284704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack\\buildin\\amd-define.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647297584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack\\buildin\\amd-options.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647288384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack\\buildin\\harmony-module.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647303472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack\\buildin\\system.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647298688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\documents\\Documents.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647302000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\DocumentManager.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647302368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\DragManager.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647303840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\History.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647289488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\ProsemirrorExampleTransfer.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647308992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\RichTextRules.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647329968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\RichTextSchema.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647314144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\Scripting.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647325184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\SearchUtil.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647327392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\ScrollBox.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647309360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\SerializationHelper.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647322976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\SelectionManager.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647328496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\TooltipLinkingMenu.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647330336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\TooltipTextMenu.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647321872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\TooltipTextMenu.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647309728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\Transform.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647328864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\UndoManager.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647312304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\TypedEvent.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647326288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\type_decls.d" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647308256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\jsx-decl.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647313040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\ContextMenu.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647308624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\ContextMenu.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647326656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\ContextMenuItem.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647330704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\.DS_Store" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647320400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\DocComponent.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647315248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\DocumentDecorations.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647311568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\EditableView.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647321504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\EditableView.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647322240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\DocumentDecorations.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647320768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\InkingCanvas.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647310096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\InkingCanvas.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647313776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\InkingControl.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647319664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\InkingStroke.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647322608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\InkingControl.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647323344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\InkingStroke.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647329232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\Main.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647327024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\Main.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647324080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\MainOverlayTextBox.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647323712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\MainOverlayTextBox.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647324448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\MainView.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647324816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\PresentationView.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647318560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\PreviewCursor.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647313408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\PresentationView.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647325552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\SearchBox.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647321136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\PreviewCursor.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647329600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\SearchBox.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647310832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\SearchItem.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647325920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\TemplateMenu.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647314512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\Templates.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647310464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\_nodeModuleOverrides.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647327760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\globalCssVariables.scss.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647328128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\globalCssVariables.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647343216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\hash\\dist\\hash.browser.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647333648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\hash\\dist\\hash.browser.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647354256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\hash\\dist\\hash.cjs.dev.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647338064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\hash\\dist\\hash.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647336224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\hash\\dist\\hash.cjs.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647343584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\hash\\dist\\hash.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647334016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\hash\\dist\\hash.cjs.prod.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647341744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\serialize\\dist\\serialize.browser.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647335120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\serialize\\dist\\serialize.browser.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647339168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\serialize\\dist\\serialize.cjs.dev.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647336592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\serialize\\dist\\serialize.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647346528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\serialize\\dist\\serialize.cjs.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647339536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\serialize\\dist\\serialize.cjs.prod.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647350576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\serialize\\dist\\serialize.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647335488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\cache\\dist\\cache.browser.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647344688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\cache\\dist\\cache.browser.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647345056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\cache\\dist\\cache.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647351680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\cache\\dist\\cache.cjs.dev.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647339904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\cache\\dist\\cache.cjs.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647336960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\cache\\dist\\cache.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647346896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\cache\\dist\\cache.cjs.prod.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647342480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\sheet\\dist\\sheet.browser.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647332544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\sheet\\dist\\sheet.browser.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647331072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\sheet\\dist\\sheet.cjs.dev.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647332912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\sheet\\dist\\sheet.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647341008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\sheet\\dist\\sheet.cjs.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647347632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\sheet\\dist\\sheet.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647334752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\sheet\\dist\\sheet.cjs.prod.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647345424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\stylis\\dist\\stylis.browser.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647348368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\stylis\\dist\\stylis.browser.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647347264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\stylis\\dist\\stylis.cjs.dev.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647332176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\stylis\\dist\\stylis.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647348736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\stylis\\dist\\stylis.cjs.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647349472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\stylis\\dist\\stylis.cjs.prod.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647333280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\stylis\\dist\\stylis.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647349840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\unitless\\dist\\unitless.browser.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647350944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\unitless\\dist\\unitless.browser.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647337328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\unitless\\dist\\unitless.cjs.dev.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647337696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\unitless\\dist\\unitless.cjs.prod.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647352048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\unitless\\dist\\unitless.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647351312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\unitless\\dist\\unitless.cjs.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647338432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\unitless\\dist\\unitless.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647352784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\memoize\\dist\\memoize.browser.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647341376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\memoize\\dist\\memoize.browser.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647342112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\memoize\\dist\\memoize.cjs.dev.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647331440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\memoize\\dist\\memoize.cjs.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647342848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\memoize\\dist\\memoize.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647370080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\memoize\\dist\\memoize.cjs.prod.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647355360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\memoize\\dist\\memoize.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647364560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@hig\\theme-context\\build\\index.es.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647366400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@hig\\theme-context\\build\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647355728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\utils\\dist\\utils.browser.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647375968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\utils\\dist\\utils.browser.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647360144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\utils\\dist\\utils.cjs.dev.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647363456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\utils\\dist\\utils.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647362352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\utils\\dist\\utils.cjs.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647373024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\weak-memoize\\dist\\weak-memoize.browser.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647376336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\utils\\dist\\utils.cjs.prod.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647367504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\utils\\dist\\utils.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647364928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\weak-memoize\\dist\\weak-memoize.cjs.dev.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647367872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\weak-memoize\\dist\\weak-memoize.browser.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647366768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\weak-memoize\\dist\\weak-memoize.cjs.js.flow" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647360512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\weak-memoize\\dist\\weak-memoize.cjs.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647359776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\weak-memoize\\dist\\weak-memoize.cjs.prod.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647357200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@emotion\\weak-memoize\\dist\\weak-memoize.esm.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647354624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\refs\\json-schema-draft-06.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647373392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\refs\\json-schema-draft-07.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647368608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\refs\\data.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647356464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\refs\\json-schema-draft-04.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647363088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\refs\\json-schema-secure.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647360880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647377440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\_limitItems.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647363824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\_limit.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647365296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\_limitLength.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647370448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\_limitProperties.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647358672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\allOf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647359040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\comment.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647368976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\anyOf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647361248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\const.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647356096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\contains.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647361616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\enum.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647361984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\custom.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647373760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\dependencies.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647371552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\if.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647374128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\format.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647364192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647370816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\multipleOf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647365664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\items.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647368240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\oneOf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647371184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\not.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647356832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\pattern.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647367136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\propertyNames.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647354992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\properties.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647362720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\ref.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647357568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\required.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647371920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\uniqueItems.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647359408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\dotjs\\validate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647372288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\compile\\async.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647376704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\compile\\formats.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647366032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\compile\\equal.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647372656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\compile\\error_classes.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647374496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\compile\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647369344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\compile\\resolve.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647369712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\compile\\schema_obj.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647377808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\compile\\rules.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647374864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\compile\\util.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647357936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\ajv\\lib\\compile\\ucs2length.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647375232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@hig\\flyout\\build\\index.es.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647375600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@hig\\flyout\\build\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647377072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1\\lib\\ber\\errors.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647358304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1\\lib\\ber\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647393632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1\\lib\\ber\\reader.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647384800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1\\lib\\ber\\types.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647396944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1\\lib\\ber\\writer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647387008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1.js\\lib\\asn1\\api.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647395104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\bluebird\\js\\browser\\bluebird.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647383696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\css-loader\\dist\\runtime\\api.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647391056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\bluebird\\js\\browser\\bluebird.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647392528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\bluebird\\js\\browser\\bluebird.core.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647396576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\bluebird\\js\\browser\\bluebird.core.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647394000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\css-loader\\dist\\runtime\\url-escape.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647396208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\des.js\\lib\\des\\cbc.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647381120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\des.js\\lib\\des\\cipher.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647388848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\des.js\\lib\\des\\des.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647378544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\des.js\\lib\\des\\ede.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647385904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\des.js\\lib\\des\\utils.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647390320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib\\elliptic\\curves.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647395840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib\\elliptic\\utils.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647383328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\lib\\transports\\polling-xhr.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647394368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\lib\\transports\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647384432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\lib\\transports\\polling.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647379648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\lib\\transports\\polling-jsonp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647381488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\lib\\transports\\websocket.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647389216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\node_modules\\component-emitter\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647307520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\node_modules\\component-emitter\\History.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647311200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\node_modules\\component-emitter\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647315984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\node_modules\\component-emitter\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647316352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\node_modules\\component-emitter\\Readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647315616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\golden-layout\\src\\css\\goldenlayout-base.css" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647379280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\golden-layout\\src\\css\\goldenlayout-base.css.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647399152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\golden-layout\\src\\css\\goldenlayout-dark-theme.css" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647391792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\golden-layout\\src\\css\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647385168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\golden-layout\\src\\css\\default-theme.css" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647388112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\golden-layout\\src\\css\\goldenlayout-dark-theme.css.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647399888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\golden-layout\\src\\css\\goldenlayout-light-theme.css.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647394736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\golden-layout\\src\\css\\goldenlayout-light-theme.css" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647395472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\golden-layout\\src\\css\\goldenlayout-soda-theme.css" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647400624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\golden-layout\\src\\css\\goldenlayout-soda-theme.css.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647380384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\golden-layout\\src\\css\\goldenlayout-translucent-theme.css" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647307888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\golden-layout\\src\\css\\goldenlayout-translucent-theme.css.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647314880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\has-binary2\\node_modules\\isarray\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647400256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\has-binary2\\node_modules\\isarray\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647397312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\has-binary2\\node_modules\\isarray\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647389584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash.js\\lib\\hash\\hmac.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647398784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash.js\\lib\\hash\\common.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647380752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash.js\\lib\\hash\\ripemd.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647392160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash.js\\lib\\hash\\sha.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647397680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash.js\\lib\\hash\\utils.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647398048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\image-size\\lib\\types\\bmp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647380016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\image-size\\lib\\types\\dds.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647385536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\image-size\\lib\\types\\gif.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647384064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\image-size\\lib\\types\\cur.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647381856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\image-size\\lib\\types\\icns.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647386272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\image-size\\lib\\types\\jpg.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647386640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\image-size\\lib\\types\\png.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647391424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\image-size\\lib\\types\\ico.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647398416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\image-size\\lib\\types\\psd.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647387376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\image-size\\lib\\types\\svg.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647382960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\image-size\\lib\\types\\webp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647387744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\image-size\\lib\\types\\tiff.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647399520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pako\\lib\\utils\\common.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647382224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pako\\lib\\utils\\strings.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647400992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\node-libs-browser\\node_modules\\punycode\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647389952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\node-libs-browser\\node_modules\\punycode\\punycode.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647401360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\node-libs-browser\\node_modules\\punycode\\LICENSE-MIT.txt" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647311936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\node-libs-browser\\node_modules\\punycode\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647378176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pako\\lib\\zlib\\adler32.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647382592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pako\\lib\\zlib\\constants.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647390688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pako\\lib\\zlib\\crc32.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647378912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pako\\lib\\zlib\\README" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647388480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pako\\lib\\zlib\\deflate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647392896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pako\\lib\\zlib\\inflate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647393264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pako\\lib\\zlib\\inffast.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647402832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pako\\lib\\zlib\\inftrees.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647403200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pako\\lib\\zlib\\gzheader.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647404304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pako\\lib\\zlib\\messages.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647410560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pako\\lib\\zlib\\trees.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647413872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pako\\lib\\zlib\\zstream.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647423072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\web\\images\\annotation-check.svg" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647407248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\web\\images\\annotation-insert.svg" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647418656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\web\\images\\annotation-help.svg" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647412768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\web\\images\\annotation-comment.svg" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647408720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\web\\images\\annotation-key.svg" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647416816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\web\\images\\annotation-noicon.svg" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647403936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\web\\images\\annotation-newparagraph.svg" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647419760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\web\\images\\loading-icon.gif" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647404672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\web\\images\\annotation-note.svg" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647423440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\web\\images\\annotation-paragraph.svg" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647405040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\web\\images\\shadow.png" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647422704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\pdfjs-dist\\web\\images\\texture.png" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647424912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\helpers\\alpha.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647407984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\helpers\\checkboard.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647411296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\helpers\\color.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647414608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\helpers\\saturation.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647420496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\helpers\\hue.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647420864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\helpers\\interaction.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647401728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\helpers\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647402096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\helpers\\spec.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647414240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-modal\\lib\\helpers\\ariaAppHider.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647422336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-modal\\lib\\helpers\\classList.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647415712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-modal\\lib\\helpers\\safeHTMLElement.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647414976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-modal\\lib\\helpers\\focusManager.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647402464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-modal\\lib\\helpers\\scopeTab.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647419392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-modal\\lib\\helpers\\tabbable.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647406144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-modal\\lib\\components\\Modal.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647415344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-modal\\lib\\components\\ModalPortal.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647409088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\reactcss\\lib\\components\\hover.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647406512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\reactcss\\lib\\components\\active.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647424176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-client\\node_modules\\component-emitter\\History.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647317088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-client\\node_modules\\component-emitter\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647316720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-client\\node_modules\\component-emitter\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647312672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-client\\node_modules\\component-emitter\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647317456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-client\\node_modules\\component-emitter\\Readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647317824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\serializr\\lib\\es\\serializr.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647421232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\node_modules\\isarray\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647407616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\node_modules\\isarray\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647421600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\node_modules\\isarray\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647408352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\node_modules\\source-map\\CHANGELOG.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647318192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\node_modules\\source-map\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647421968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\node_modules\\source-map\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647318928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\node_modules\\source-map\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647423808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\node_modules\\source-map\\source-map.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647319296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\node_modules\\source-map\\source-map.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647320032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\node_modules\\component-emitter\\History.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647335856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\node_modules\\component-emitter\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647350208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\node_modules\\component-emitter\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647345792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\node_modules\\component-emitter\\Readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647344320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\node_modules\\component-emitter\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647352416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\formats\\auto.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647409824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\formats\\pem.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647410928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\formats\\dnssec.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647417184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\formats\\openssh-cert.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647417552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\formats\\pkcs1.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647411664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\formats\\pkcs8.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647417920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\formats\\putty.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647418288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\formats\\ssh-private.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647412032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\formats\\rfc4253.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647412400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\formats\\ssh.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647413136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\formats\\x509-pem.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647413504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sshpk\\lib\\formats\\x509.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647419024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\process-nextick-args\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647425648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\process-nextick-args\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647291696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\process-nextick-args\\license.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647292432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\process-nextick-args\\readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647353152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\.travis.yml" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647438528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\CONTRIBUTING.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647304208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\GOVERNANCE.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647445152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\README.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647436688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\LICENSE" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647428224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\duplex-browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647304576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647448464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\duplex.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647438896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\readable-browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647288752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\passthrough.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647296848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\readable.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647447360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\transform.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647431904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\writable.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647447728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\writable-browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647299792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uri-js\\dist\\es5\\uri.all.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647445520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uri-js\\dist\\es5\\uri.all.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647436320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uri-js\\dist\\es5\\uri.all.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647437792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uri-js\\dist\\es5\\uri.all.min.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647448096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uri-js\\dist\\es5\\uri.all.min.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647434848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\uri-js\\dist\\es5\\uri.all.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647433744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\BSTree.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647437056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\BSTree.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647425280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\BSTree.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647437424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\BSTreeKV.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647438160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\BSTreeKV.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647439264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\Bag.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647429328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\Bag.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647429696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\BSTreeKV.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647426384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\Dictionary.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647439632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\Bag.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647426016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\Dictionary.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647430064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\Dictionary.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647427120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\FactoryDictionary.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647431536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\FactoryDictionary.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647433376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\FactoryDictionary.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647305312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\Heap.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647440000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\Heap.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647426752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\LinkedDictionary.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647435216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\Heap.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647432272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\LinkedDictionary.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647435952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\LinkedList.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647441840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\LinkedDictionary.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647301632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\MultiDictionary.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647430432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\LinkedList.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647443312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\MultiDictionary.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647440368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\LinkedList.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647427488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\MultiRootTree.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647427856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\MultiRootTree.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647428592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\MultiDictionary.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647440736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\PriorityQueue.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647444416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\MultiRootTree.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647432640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\PriorityQueue.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647443680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\Queue.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647441104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\Set.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647434480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\PriorityQueue.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647428960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\Queue.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647441472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\Set.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647442208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\Stack.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647435584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\Queue.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647442576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\Stack.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647445888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\Set.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647442944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\arrays.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647430800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\arrays.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647444048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\index.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647444784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\Stack.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647431168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\arrays.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647433008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647446256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\index.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647446624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\umd.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647434112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\util.d.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647446992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\umd.min.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647471648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\util.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647462080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\typescript-collections\\dist\\lib\\util.js.map" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647468704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack-hot-middleware\\node_modules\\strip-ansi\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647289120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack-hot-middleware\\node_modules\\strip-ansi\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647303104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack-hot-middleware\\node_modules\\strip-ansi\\license" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647470176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack-hot-middleware\\node_modules\\strip-ansi\\readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647297216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack-hot-middleware\\node_modules\\ansi-regex\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647297952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack-hot-middleware\\node_modules\\ansi-regex\\package.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647300896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack-hot-middleware\\node_modules\\ansi-regex\\license" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647458400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\webpack-hot-middleware\\node_modules\\ansi-regex\\readme.md" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647301264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\core\\BaseObject.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647469808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\dash-nodes\\HistogramBox.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647458768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\dash-nodes\\HistogramBinPrimitiveCollection.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647456928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\dash-nodes\\HistogramBox.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647472016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\dash-nodes\\HistogramBoxPrimitives.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647455456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\dash-nodes\\HistogramBoxPrimitives.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647469440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\dash-nodes\\HistogramLabelPrimitives.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647459136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\dash-nodes\\HistogramLabelPrimitives.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647465392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\manager\\Gateway.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647459504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\operations\\BaseOperation.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647453984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\operations\\HistogramOperation.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647466496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\model\\ModelExtensions.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647452512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\model\\ModelHelpers.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647467968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\utils\\ArrayUtil.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647462448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\utils\\Extensions.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647457296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\utils\\GeometryUtil.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647451040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\utils\\IEquatable.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647458032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\utils\\IDisposable.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647462816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\utils\\KeyCodes.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647466864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\utils\\LABColor.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647451408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\utils\\MathUtil.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647465024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\utils\\PartialClass.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647449568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\utils\\SizeConverter.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647457664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\utils\\StyleContants.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647460976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\utils\\Utils.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647461344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\util\\ProsemirrorCopy\\prompt.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647459872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\dash-fields\\HistogramField.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647461712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\CollectionBaseView.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647449200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\CollectionBaseView.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647463184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\CollectionDockingView.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647463552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\CollectionDockingView.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647454352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\CollectionPDFView.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647451776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\CollectionPDFView.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647448832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\CollectionSchemaView.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647449936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\CollectionSchemaView.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647454720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\CollectionStackingView.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647463920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\CollectionStackingView.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647465760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\CollectionSubView.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647455824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\CollectionTreeView.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647450304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\CollectionTreeView.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647469072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\CollectionVideoView.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647460240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\CollectionVideoView.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647467232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\CollectionView.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647452880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\ParentDocumentSelector.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647464288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\ParentDocumentSelector.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647466128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\pdf\\PDFAnnotationLayer.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647450672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\pdf\\PDFMenu.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647452144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\pdf\\PDFViewer.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647460608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\pdf\\PDFMenu.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647453248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\pdf\\PDFViewer.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647456192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\pdf\\Page.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647464656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\Annotation.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647467600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\AudioBox.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647453616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\AudioBox.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647455088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\CollectionFreeFormDocumentView.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647468336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\DocumentContentsView.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647456560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\DocumentView.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647470544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\DocumentView.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647471280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\FieldView.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647470912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\FieldTextBox.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647495568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\FormattedTextBox.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647492256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\FormattedTextBox.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647480112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\IconBox.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647494464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\IconBox.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647480480", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\ImageBox.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647487472", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\ImageBox.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647477168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\KeyValueBox.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647488576", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\KeyValueBox.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647482320", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\KeyValuePair.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647472752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\KeyValuePair.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647485632", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\Keyframe.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647490416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\Keyframe.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647473856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\LinkBox.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647488944", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\LinkBox.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647490784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\LinkEditor.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647472384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\LinkEditor.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647477536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\LinkMenu.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647473488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\LinkMenu.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647483424", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\PDFBox.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647489312", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\PDFBox.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647481952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\Timeline.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647491152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\Timeline.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647485264", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\Track.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647486368", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\Track.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647486000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\VideoBox.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647491888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\VideoBox.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647484160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\WebBox.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647480848", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\nodes\\WebBox.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647348000", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\server\\authentication\\models\\current_user_utils.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647490048", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\server\\authentication\\models\\user_model.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647491520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\AsyncGenerator.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647474592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\AwaitValue.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647492624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\applyDecoratedDescriptor.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647487840", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\arrayWithoutHoles.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647494832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\arrayWithHoles.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647477904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\assertThisInitialized.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647492992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\asyncGeneratorDelegate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647479376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\asyncIterator.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647493360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\asyncToGenerator.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647483056", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\awaitAsyncGenerator.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647483792", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\classCallCheck.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647478640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\classNameTDZError.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647478272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\classPrivateFieldGet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647493728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\classPrivateFieldLooseBase.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647353520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\classPrivateFieldLooseKey.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647338800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\classPrivateFieldSet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647474224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\classPrivateMethodGet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647488208", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\classPrivateMethodSet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647474960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\classStaticPrivateFieldSpecGet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647331808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\classStaticPrivateFieldSpecSet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647340272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\classStaticPrivateMethodGet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647334384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\classStaticPrivateMethodSet.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647340640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\construct.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647495200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\createClass.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647473120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\defaults.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647479008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\decorate.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647479744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\extends.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647475328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\defineProperty.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647481216", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\get.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647476432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\getPrototypeOf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647484896", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\inheritsLoose.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647475696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\inherits.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647481584", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\initializerDefineProperty.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647343952", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\initializerWarningHelper.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647494096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\instanceof.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647476064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\interopRequireDefault.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647476800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\interopRequireWildcard.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647486736", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\isNativeFunction.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647482688", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\iterableToArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647487104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\iterableToArrayLimit.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647517648", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\iterableToArrayLimitLoose.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647349104", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\jsx.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647502560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\newArrowCheck.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647502928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\nonIterableRest.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647518752", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\defineEnumerableProperties.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647346160", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\nonIterableSpread.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647503664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\objectDestructuringEmpty.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647509920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\objectSpread.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647497040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\objectWithoutPropertiesLoose.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647353888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\objectWithoutProperties.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647500720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\possibleConstructorReturn.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647484528", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\readOnlyError.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647519120", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\set.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647498144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\setPrototypeOf.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647504032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\skipFirstGeneratorNext.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647515808", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\slicedToArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647497408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\superPropBase.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647510288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\slicedToArrayLoose.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647510656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\taggedTemplateLiteral.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647495936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\taggedTemplateLiteralLoose.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647489680", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\temporalRef.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647497776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\temporalUndefined.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647505872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\toArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647496672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\toConsumableArray.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647515440", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\toPropertyKey.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647508080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\toPrimitive.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647496304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\typeof.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647511024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\wrapNativeSuper.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647512128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\wrapAsyncGenerator.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647514704", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@babel\\runtime\\helpers\\esm\\wrapRegExp.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647498512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1.js\\lib\\asn1\\base\\node.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647516912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1.js\\lib\\asn1\\base\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647504768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1.js\\lib\\asn1\\base\\buffer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647499616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1.js\\lib\\asn1\\base\\reporter.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647502192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1.js\\lib\\asn1\\constants\\der.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647516176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1.js\\lib\\asn1\\constants\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647513968", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1.js\\lib\\asn1\\encoders\\der.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647501088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1.js\\lib\\asn1\\encoders\\pem.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647505504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1.js\\lib\\asn1\\encoders\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647514336", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1.js\\lib\\asn1\\decoders\\der.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647511392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1.js\\lib\\asn1\\decoders\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647507712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\asn1.js\\lib\\asn1\\decoders\\pem.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647498880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib\\elliptic\\curve\\base.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647499248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib\\elliptic\\curve\\edwards.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647515072", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib\\elliptic\\curve\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647503296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib\\elliptic\\curve\\mont.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647505136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib\\elliptic\\curve\\short.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647512496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib\\elliptic\\ec\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647501456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib\\elliptic\\ec\\key.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647506608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib\\elliptic\\ec\\signature.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647516544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib\\elliptic\\eddsa\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647518016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib\\elliptic\\eddsa\\key.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647506976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib\\elliptic\\eddsa\\signature.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647499984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\elliptic\\lib\\elliptic\\precomputed\\secp256k1.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647507344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\node_modules\\debug\\src\\browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647511760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\node_modules\\debug\\src\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647513600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\node_modules\\debug\\src\\debug.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647517280", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\engine.io-client\\node_modules\\debug\\src\\node.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647500352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash.js\\lib\\hash\\sha\\224.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647518384", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash.js\\lib\\hash\\sha\\1.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647504400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash.js\\lib\\hash\\sha\\384.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647512864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash.js\\lib\\hash\\sha\\256.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647509184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash.js\\lib\\hash\\sha\\common.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647501824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\hash.js\\lib\\hash\\sha\\512.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647506240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\alpha\\Alpha.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647508816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\alpha\\AlphaPointer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647513232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\alpha\\spec.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647508448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\chrome\\ChromeFields.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647509552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\chrome\\Chrome.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647526112", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\chrome\\ChromePointerCircle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647424544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\chrome\\ChromePointer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647519488", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\chrome\\spec.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647522800", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\chrome\\story.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647525744", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\block\\Block.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647519856", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\block\\BlockSwatches.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647520224", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\block\\spec.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647522432", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\block\\story.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647520592", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\circle\\Circle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647523168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\circle\\CircleSwatch.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647524640", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\circle\\spec.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647525008", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\circle\\story.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647520960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\hue\\Hue.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647521328", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\hue\\HuePointer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647523536", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\hue\\spec.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647525376", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\swatches\\Swatches.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647521696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\swatches\\SwatchesColor.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647522064", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\swatches\\SwatchesGroup.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647523904", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\swatches\\spec.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647524272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\swatches\\story.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647260416", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\material\\Material.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647268880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\material\\spec.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647266672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\material\\story.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647282864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\compact\\Compact.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647281392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\compact\\CompactColor.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647273664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\compact\\CompactFields.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647260784", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\compact\\spec.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647282496", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\compact\\story.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647279920", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\common\\Alpha.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647267040", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\common\\Checkboard.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647278080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\common\\ColorWrap.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647277712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\common\\EditableInput.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647262256", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\common\\Hue.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647262624", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\common\\Raised.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647274032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\common\\Saturation.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647265200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\common\\Swatch.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647268144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\common\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647272928", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\common\\spec.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647270720", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\photoshop\\Photoshop.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647276608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\photoshop\\PhotoshopButton.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647405408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\photoshop\\PhotoshopFields.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647420128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\photoshop\\PhotoshopPointer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647405776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\photoshop\\PhotoshopPointerCircle.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647267408", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\photoshop\\PhotoshopPreviews.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647409456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\photoshop\\spec.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647280656", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\photoshop\\story.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647271088", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\twitter\\Twitter.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647261152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\twitter\\story.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647281760", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\twitter\\spec.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647273296", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\sketch\\Sketch.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647283232", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\sketch\\SketchFields.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647267776", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\sketch\\SketchPresetColors.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647410192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\sketch\\spec.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647263728", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\sketch\\story.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647262992", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\github\\GithubSwatch.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647268512", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\github\\spec.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647272560", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\github\\Github.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647263360", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\github\\story.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647274400", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\slider\\SliderPointer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647269248", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\slider\\Slider.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647261520", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\slider\\SliderSwatch.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647282128", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\slider\\SliderSwatches.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647264096", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\react-color\\lib\\components\\slider\\spec.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647269616", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\readable-stream\\lib\\internal\\streams\\BufferList.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647280288", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\node_modules\\qs\\lib\\formats.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647265568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\node_modules\\qs\\lib\\stringify.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647271824", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\node_modules\\qs\\lib\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647269984", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\node_modules\\qs\\lib\\parse.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647278448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\request\\node_modules\\qs\\lib\\utils.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647270352", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-client\\node_modules\\debug\\src\\debug.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647281024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-client\\node_modules\\debug\\src\\browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647283600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-client\\node_modules\\debug\\src\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647276240", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-client\\node_modules\\debug\\src\\node.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647264464", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\node_modules\\debug\\src\\browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647271456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\node_modules\\debug\\src\\debug.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647272192", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\node_modules\\debug\\src\\node.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647261888", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\socket.io-parser\\node_modules\\debug\\src\\index.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647264832", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\node_modules\\source-map\\lib\\base64.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647416448", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\node_modules\\source-map\\lib\\array-set.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647416080", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\node_modules\\source-map\\lib\\base64-vlq.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647403568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\node_modules\\source-map\\lib\\mapping-list.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647274768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\node_modules\\source-map\\lib\\binary-search.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647265936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\node_modules\\source-map\\lib\\quick-sort.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647406880", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\node_modules\\source-map\\lib\\source-map-consumer.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647275136", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\node_modules\\source-map\\lib\\util.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647266304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\node_modules\\source-map\\lib\\source-node.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647275504", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\source-map-support\\node_modules\\source-map\\lib\\source-map-generator.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647275872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\lib\\_stream_duplex.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647276976", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\lib\\_stream_passthrough.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647277344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\lib\\_stream_transform.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647278816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\lib\\_stream_writable.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647279184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\lib\\_stream_readable.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647279552", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\core\\attribute\\AttributeModel.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492647307152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\core\\attribute\\AttributeTransformationModel.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644649392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\core\\attribute\\CalculatedAttributeModel.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644654176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\core\\filter\\FilterModel.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644633200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\core\\filter\\FilterOperand.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644633568", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\core\\filter\\FilterType.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644639456", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\core\\filter\\IBaseFilterConsumer.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644644608", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\core\\filter\\IBaseFilterProvider.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644650864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\core\\filter\\ValueComparision.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644645344", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\model\\idea\\MetricTypeMapping.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644647184", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\model\\idea\\idea.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644654912", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\model\\binRanges\\AlphabeticVisualBinRange.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492644596768", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\model\\binRanges\\DateTimeVisualBinRange.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635523152", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\model\\binRanges\\NominalVisualBinRange.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635530144", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\model\\binRanges\\QuantitativeVisualBinRange.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635527200", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\model\\binRanges\\VisualBinRange.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635527936", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\northstar\\model\\binRanges\\VisualBinRangeHelper.ts" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635507696", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\collectionFreeForm\\CollectionFreeFormLinkView.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635528304", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\collectionFreeForm\\CollectionFreeFormLinkView.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492635528672", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\collectionFreeForm\\CollectionFreeFormLinksView.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496118864", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\collectionFreeForm\\CollectionFreeFormLinksView.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496110032", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\collectionFreeForm\\CollectionFreeFormView.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496124016", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\collectionFreeForm\\CollectionFreeFormView.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492496129168", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\collectionFreeForm\\CollectionFreeFormRemoteCursors.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492652438816", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\collectionFreeForm\\CollectionFreeFormRemoteCursors.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492652441392", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\collectionFreeForm\\MarqueeView.scss" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492652450960", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\src\\client\\views\\collections\\collectionFreeForm\\MarqueeView.tsx" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492652454272", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@hig\\theme-data\\build\\json\\webLightMediumDensityTheme\\theme.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492652446176", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@hig\\theme-data\\build\\json\\webLightMediumDensityTheme\\metadata.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492652435872", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@hig\\theme-data\\build\\json\\webLightMediumDensityTheme\\resolvedRoles.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492652433664", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\@hig\\theme-data\\build\\json\\webLightMediumDensityTheme\\unresolvedRoles.json" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492652446544", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\lib\\internal\\streams\\BufferList.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492652441024", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\lib\\internal\\streams\\destroy.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492652437712", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\lib\\internal\\streams\\stream-browser.js" + }, + { + "type": "fs_event", + "is_active": "1", + "is_referenced": "1", + "address": "2492652443600", + "details": "filename: \\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\stream-http\\node_modules\\readable-stream\\lib\\internal\\streams\\stream.js" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492430705392", + "details": "DESKTOP-G9G1TRP:50369 connected to DESKTOP-G9G1TRP:27017, send buffer size: 65536, recv buffer size: 65536, write queue size: 0, readable, writable" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492430710848", + "details": "DESKTOP-G9G1TRP:50379 connected to DESKTOP-G9G1TRP:27017, send buffer size: 65536, recv buffer size: 65536, write queue size: 0, readable, writable" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492430704896", + "details": "DESKTOP-G9G1TRP:50381 connected to DESKTOP-G9G1TRP:27017, send buffer size: 65536, recv buffer size: 65536, write queue size: 0, readable, writable" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492430711344", + "details": "DESKTOP-G9G1TRP:50383 connected to DESKTOP-G9G1TRP:27017, send buffer size: 65536, recv buffer size: 65536, write queue size: 0, readable, writable" + }, + { + "type": "timer", + "is_active": "1", + "is_referenced": "0", + "address": "2492652740968", + "details": "repeat: 0, timeout in: 6237 ms" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492430703904", + "details": "DESKTOP-G9G1TRP:1050 connected to DESKTOP-G9G1TRP:50422, send buffer size: 65536, recv buffer size: 65536, write queue size: 0, readable, writable" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492430706880", + "details": "DESKTOP-G9G1TRP:1050 connected to DESKTOP-G9G1TRP:50424, send buffer size: 65536, recv buffer size: 65536, write queue size: 0, readable, writable" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492430706384", + "details": "DESKTOP-G9G1TRP:1050 connected to DESKTOP-G9G1TRP:50425, send buffer size: 65536, recv buffer size: 65536, write queue size: 0, readable, writable" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492430704400", + "details": "DESKTOP-G9G1TRP:50427 connected to DESKTOP-G9G1TRP:27017, send buffer size: 65536, recv buffer size: 65536, write queue size: 0, readable, writable" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492421628240", + "details": "DESKTOP-G9G1TRP:50437 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492421630720", + "details": "DESKTOP-G9G1TRP:50438 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492421627248", + "details": "DESKTOP-G9G1TRP:50439 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492421627744", + "details": "DESKTOP-G9G1TRP:50440 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492421628736", + "details": "DESKTOP-G9G1TRP:50441 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492430707376", + "details": "DESKTOP-G9G1TRP:50442 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492430707872", + "details": "DESKTOP-G9G1TRP:50443 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492430708368", + "details": "DESKTOP-G9G1TRP:50444 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492430708864", + "details": "DESKTOP-G9G1TRP:50445 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492430709360", + "details": "DESKTOP-G9G1TRP:50447 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492430709856", + "details": "DESKTOP-G9G1TRP:50448 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492430710352", + "details": "DESKTOP-G9G1TRP:50449 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492428530176", + "details": "DESKTOP-G9G1TRP:50450 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492428528192", + "details": "DESKTOP-G9G1TRP:50451 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492428530672", + "details": "DESKTOP-G9G1TRP:50452 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492421630224", + "details": "DESKTOP-G9G1TRP:50453 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492423914384", + "details": "DESKTOP-G9G1TRP:50454 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492423913888", + "details": "DESKTOP-G9G1TRP:50455 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492423914880", + "details": "DESKTOP-G9G1TRP:50456 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492423911904", + "details": "DESKTOP-G9G1TRP:50457 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492423915376", + "details": "DESKTOP-G9G1TRP:50458 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492423915872", + "details": "DESKTOP-G9G1TRP:50459 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492423916368", + "details": "DESKTOP-G9G1TRP:50460 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492423916864", + "details": "DESKTOP-G9G1TRP:50461 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492423917360", + "details": "DESKTOP-G9G1TRP:50462 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492423917856", + "details": "DESKTOP-G9G1TRP:50463 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492423910416", + "details": "DESKTOP-G9G1TRP:50464 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492423910912", + "details": "DESKTOP-G9G1TRP:50465 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492423911408", + "details": "DESKTOP-G9G1TRP:50466 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492423912400", + "details": "DESKTOP-G9G1TRP:50467 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492423912896", + "details": "DESKTOP-G9G1TRP:50468 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492423913392", + "details": "DESKTOP-G9G1TRP:50469 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492428832048", + "details": "DESKTOP-G9G1TRP:50470 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492428830560", + "details": "DESKTOP-G9G1TRP:50471 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492428833536", + "details": "DESKTOP-G9G1TRP:50472 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492428831056", + "details": "DESKTOP-G9G1TRP:50473 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492428831552", + "details": "DESKTOP-G9G1TRP:50474 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492428832544", + "details": "DESKTOP-G9G1TRP:50475 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492428834032", + "details": "DESKTOP-G9G1TRP:50476 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492428834528", + "details": "DESKTOP-G9G1TRP:50477 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + }, + { + "type": "tcp", + "is_active": "1", + "is_referenced": "1", + "address": "2492428833040", + "details": "DESKTOP-G9G1TRP:50478 (not connected), send buffer size: 65536, recv buffer size: 65536, write queue size: 0" + } + ], + "environmentVariables": { + "ALLUSERSPROFILE": "C:\\ProgramData", + "APPDATA": "C:\\Users\\Andri\\AppData\\Roaming", + "ChocolateyInstall": "C:\\ProgramData\\chocolatey", + "ChocolateyLastPathUpdate": "Wed Jan 30 16:31:44 2019", + "COMMONPROGRAMFILES": "C:\\Program Files\\Common Files", + "CommonProgramFiles(x86)": "C:\\Program Files (x86)\\Common Files", + "CommonProgramW6432": "C:\\Program Files\\Common Files", + "COMPUTERNAME": "DESKTOP-G9G1TRP", + "COMSPEC": "C:\\WINDOWS\\system32\\cmd.exe", + "CUDA_PATH": "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v9.0", + "CUDA_PATH_V9_0": "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v9.0", + "DriverData": "C:\\Windows\\System32\\Drivers\\DriverData", + "EXEPATH": "C:\\Program Files\\Git\\bin", + "FPS_BROWSER_APP_PROFILE_STRING": "Internet Explorer", + "FPS_BROWSER_USER_PROFILE_STRING": "Default", + "FSHARPINSTALLDIR": "C:\\Program Files (x86)\\Microsoft SDKs\\F#\\10.1\\Framework\\v4.0\\", + "GOPATH": "C:\\GoWorkspace", + "GOROOT": "C:\\Go\\", + "HOME": "C:\\Users\\Andri", + "HOMEDRIVE": "C:", + "HOMEPATH": "\\Users\\Andri", + "INIT_CWD": "C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web", + "JAVA_HOME": "C:\\Program Files\\Java\\jdk1.8.0_211", + "LANG": "en_US.UTF-8", + "LOCALAPPDATA": "C:\\Users\\Andri\\AppData\\Local", + "LOGONSERVER": "\\\\DESKTOP-G9G1TRP", + "MSYSTEM": "MINGW64", + "NODE": "C:\\Program Files\\nodejs\\node.exe", + "NODE_ENV": "development", + "npm_config_access": "", + "npm_config_allow_same_version": "", + "npm_config_also": "", + "npm_config_always_auth": "", + "npm_config_argv": "{\"remain\":[],\"cooked\":[\"start\"],\"original\":[\"start\"]}", + "npm_config_audit": "true", + "npm_config_audit_level": "low", + "npm_config_auth_type": "legacy", + "npm_config_bin_links": "true", + "npm_config_browser": "", + "npm_config_ca": "", + "npm_config_cache": "C:\\Users\\Andri\\AppData\\Roaming\\npm-cache", + "npm_config_cache_lock_retries": "10", + "npm_config_cache_lock_stale": "60000", + "npm_config_cache_lock_wait": "10000", + "npm_config_cache_max": "Infinity", + "npm_config_cache_min": "10", + "npm_config_cafile": "", + "npm_config_cert": "", + "npm_config_cidr": "", + "npm_config_color": "true", + "npm_config_commit_hooks": "true", + "npm_config_depth": "Infinity", + "npm_config_description": "true", + "npm_config_dev": "", + "npm_config_dry_run": "", + "npm_config_editor": "notepad.exe", + "npm_config_engine_strict": "", + "npm_config_fetch_retries": "2", + "npm_config_fetch_retry_factor": "10", + "npm_config_fetch_retry_maxtimeout": "60000", + "npm_config_fetch_retry_mintimeout": "10000", + "npm_config_force": "", + "npm_config_git": "git", + "npm_config_git_tag_version": "true", + "npm_config_global": "", + "npm_config_globalconfig": "C:\\Users\\Andri\\AppData\\Roaming\\npm\\etc\\npmrc", + "npm_config_globalignorefile": "C:\\Users\\Andri\\AppData\\Roaming\\npm\\etc\\npmignore", + "npm_config_global_style": "", + "npm_config_group": "", + "npm_config_ham_it_up": "", + "npm_config_heading": "npm", + "npm_config_https_proxy": "", + "npm_config_if_present": "", + "npm_config_ignore_prepublish": "", + "npm_config_ignore_scripts": "", + "npm_config_init_author_email": "", + "npm_config_init_author_name": "", + "npm_config_init_author_url": "", + "npm_config_init_license": "ISC", + "npm_config_init_module": "C:\\Users\\Andri\\.npm-init.js", + "npm_config_init_version": "1.0.0", + "npm_config_json": "", + "npm_config_key": "", + "npm_config_legacy_bundling": "", + "npm_config_link": "", + "npm_config_local_address": "", + "npm_config_loglevel": "notice", + "npm_config_logs_max": "10", + "npm_config_long": "", + "npm_config_maxsockets": "50", + "npm_config_message": "%s", + "npm_config_metrics_registry": "https://registry.npmjs.org/", + "npm_config_node_gyp": "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js", + "npm_config_node_options": "", + "npm_config_node_version": "11.8.0", + "npm_config_noproxy": "", + "npm_config_offline": "", + "npm_config_onload_script": "", + "npm_config_only": "", + "npm_config_optional": "true", + "npm_config_otp": "", + "npm_config_package_lock": "true", + "npm_config_package_lock_only": "", + "npm_config_parseable": "", + "npm_config_prefer_offline": "", + "npm_config_prefer_online": "", + "npm_config_prefix": "C:\\Users\\Andri\\AppData\\Roaming\\npm", + "npm_config_preid": "", + "npm_config_production": "", + "npm_config_progress": "true", + "npm_config_proxy": "", + "npm_config_read_only": "", + "npm_config_rebuild_bundle": "true", + "npm_config_registry": "https://registry.npmjs.org/", + "npm_config_rollback": "true", + "npm_config_save": "true", + "npm_config_save_bundle": "", + "npm_config_save_dev": "", + "npm_config_save_exact": "", + "npm_config_save_optional": "", + "npm_config_save_prefix": "^", + "npm_config_save_prod": "", + "npm_config_scope": "", + "npm_config_scripts_prepend_node_path": "warn-only", + "npm_config_script_shell": "", + "npm_config_searchexclude": "", + "npm_config_searchlimit": "20", + "npm_config_searchopts": "", + "npm_config_searchstaleness": "900", + "npm_config_send_metrics": "", + "npm_config_shell": "C:\\WINDOWS\\system32\\cmd.exe", + "npm_config_shrinkwrap": "true", + "npm_config_sign_git_commit": "", + "npm_config_sign_git_tag": "", + "npm_config_sso_poll_frequency": "500", + "npm_config_sso_type": "oauth", + "npm_config_strict_ssl": "true", + "npm_config_tag": "latest", + "npm_config_tag_version_prefix": "v", + "npm_config_timing": "", + "npm_config_tmp": "C:\\Users\\Andri\\AppData\\Local\\Temp", + "npm_config_umask": "0000", + "npm_config_unicode": "", + "npm_config_unsafe_perm": "true", + "npm_config_update_notifier": "true", + "npm_config_usage": "", + "npm_config_user": "", + "npm_config_userconfig": "C:\\Users\\Andri\\.npmrc", + "npm_config_user_agent": "npm/6.5.0 node/v11.8.0 win32 x64", + "npm_config_version": "", + "npm_config_versions": "", + "npm_config_viewer": "browser", + "npm_execpath": "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js", + "npm_lifecycle_event": "start", + "npm_lifecycle_script": "ts-node-dev -- src/server/index.ts", + "npm_node_execpath": "C:\\Program Files\\nodejs\\node.exe", + "npm_package_dependencies_async": "^2.6.2", + "npm_package_dependencies_babel_runtime": "^6.26.0", + "npm_package_dependencies_bcrypt_nodejs": "0.0.3", + "npm_package_dependencies_bluebird": "^3.5.3", + "npm_package_dependencies_body_parser": "^1.18.3", + "npm_package_dependencies_bootstrap": "^4.3.1", + "npm_package_dependencies_canvas": "^2.5.0", + "npm_package_dependencies_class_transformer": "^0.2.0", + "npm_package_dependencies_connect_flash": "^0.1.1", + "npm_package_dependencies_connect_mongo": "^2.0.3", + "npm_package_dependencies_cookie_parser": "^1.4.4", + "npm_package_dependencies_cookie_session": "^2.0.0-beta.3", + "npm_package_dependencies_crypto_browserify": "^3.11.0", + "npm_package_dependencies_d3_format": "^1.3.2", + "npm_package_dependencies_express": "^4.16.4", + "npm_package_dependencies_expressjs": "^1.0.1", + "npm_package_dependencies_express_flash": "0.0.2", + "npm_package_dependencies_express_session": "^1.15.6", + "npm_package_dependencies_express_validator": "^5.3.1", + "npm_package_dependencies_flexlayout_react": "^0.3.3", + "npm_package_dependencies_font_awesome": "^4.7.0", + "npm_package_dependencies_formidable": "^1.2.1", + "npm_package_dependencies_golden_layout": "^1.5.9", + "npm_package_dependencies_html_to_image": "^0.1.0", + "npm_package_dependencies_i": "^0.3.6", + "npm_package_dependencies_imagesloaded": "^4.1.4", + "npm_package_dependencies_image_data_uri": "^2.0.0", + "npm_package_dependencies_jsonwebtoken": "^8.5.0", + "npm_package_dependencies_jsx_to_string": "^1.4.0", + "npm_package_dependencies_lodash": "^4.17.11", + "npm_package_dependencies_mobile_detect": "^1.4.3", + "npm_package_dependencies_mobx": "^5.9.0", + "npm_package_dependencies_mobx_react": "^5.3.5", + "npm_package_dependencies_mobx_react_devtools": "^6.1.1", + "npm_package_dependencies_mobx_utils": "^5.4.0", + "npm_package_dependencies_mongodb": "^3.1.13", + "npm_package_dependencies_mongoose": "^5.4.18", + "npm_package_dependencies_nodemailer": "^5.1.1", + "npm_package_dependencies_nodemon": "^1.18.10", + "npm_package_dependencies_node_sass": "^4.12.0", + "npm_package_dependencies_normalize_css": "^8.0.1", + "npm_package_dependencies_npm": "^6.9.0", + "npm_package_dependencies_passport": "^0.4.0", + "npm_package_dependencies_passport_local": "^1.0.0", + "npm_package_dependencies_pdfjs_dist": "^2.0.943", + "npm_package_dependencies_probe_image_size": "^4.0.0", + "npm_package_dependencies_prosemirror_commands": "^1.0.7", + "npm_package_dependencies_prosemirror_example_setup": "^1.0.1", + "npm_package_dependencies_prosemirror_history": "^1.0.4", + "npm_package_dependencies_prosemirror_keymap": "^1.0.1", + "npm_package_dependencies_prosemirror_model": "^1.7.0", + "npm_package_dependencies_prosemirror_schema_basic": "^1.0.0", + "npm_package_dependencies_prosemirror_schema_list": "^1.0.2", + "npm_package_dependencies_prosemirror_state": "^1.2.2", + "npm_package_dependencies_prosemirror_transform": "^1.1.3", + "npm_package_dependencies_prosemirror_view": "^1.8.3", + "npm_package_dependencies_pug": "^2.0.3", + "npm_package_dependencies_p_limit": "^2.2.0", + "npm_package_dependencies_raw_loader": "^1.0.0", + "npm_package_dependencies_react": "^16.8.4", + "npm_package_dependencies_react_bootstrap": "^1.0.0-beta.5", + "npm_package_dependencies_react_bootstrap_dropdown_menu": "^1.1.15", + "npm_package_dependencies_react_color": "^2.17.0", + "npm_package_dependencies_react_dimensions": "^1.3.1", + "npm_package_dependencies_react_dom": "^16.8.4", + "npm_package_dependencies_react_golden_layout": "^1.0.6", + "npm_package_dependencies_react_image_lightbox": "^5.1.0", + "npm_package_dependencies_react_jsx_parser": "^1.15.0", + "npm_package_dependencies_react_measure": "^2.2.4", + "npm_package_dependencies_react_mosaic": "0.0.20", + "npm_package_dependencies_react_pdf": "^4.0.2", + "npm_package_dependencies_react_pdf_highlighter": "^2.1.2", + "npm_package_dependencies_react_pdf_js": "^4.0.2", + "npm_package_dependencies_react_simple_dropdown": "^3.2.3", + "npm_package_dependencies_react_split_pane": "^0.1.85", + "npm_package_dependencies_react_table": "^6.9.2", + "npm_package_dependencies_request": "^2.88.0", + "npm_package_dependencies_request_image_size": "^2.1.0", + "npm_package_dependencies_request_promise": "^4.2.4", + "npm_package_dependencies_serializr": "^1.5.1", + "npm_package_dependencies_sharp": "^0.22.1", + "npm_package_dependencies_socket_io": "^2.2.0", + "npm_package_dependencies_socket_io_client": "^2.2.0", + "npm_package_dependencies_solr_node": "^1.1.3", + "npm_package_dependencies_tiny_timer": "^1.3.0", + "npm_package_dependencies_typescript_collections": "^1.3.2", + "npm_package_dependencies_url_loader": "^1.1.2", + "npm_package_dependencies_uuid": "^3.3.2", + "npm_package_dependencies_xoauth2": "^1.2.0", + "npm_package_dependencies__fortawesome_fontawesome_free_solid": "^5.0.13", + "npm_package_dependencies__fortawesome_fontawesome_svg_core": "^1.2.15", + "npm_package_dependencies__fortawesome_free_solid_svg_icons": "^5.7.2", + "npm_package_dependencies__fortawesome_react_fontawesome": "^0.1.4", + "npm_package_dependencies__hig_flyout": "^1.0.3", + "npm_package_dependencies__hig_theme_context": "^2.1.3", + "npm_package_dependencies__hig_theme_data": "^2.3.3", + "npm_package_dependencies__trendmicro_react_dropdown": "^1.3.0", + "npm_package_dependencies__types_async": "^2.4.1", + "npm_package_dependencies__types_bcrypt_nodejs": "0.0.30", + "npm_package_dependencies__types_bluebird": "^3.5.25", + "npm_package_dependencies__types_body_parser": "^1.17.0", + "npm_package_dependencies__types_connect_flash": "0.0.34", + "npm_package_dependencies__types_cookie_parser": "^1.4.1", + "npm_package_dependencies__types_cookie_session": "^2.0.36", + "npm_package_dependencies__types_d3_format": "^1.3.1", + "npm_package_dependencies__types_express": "^4.16.1", + "npm_package_dependencies__types_express_flash": "0.0.0", + "npm_package_dependencies__types_express_session": "^1.15.12", + "npm_package_dependencies__types_express_validator": "^3.0.0", + "npm_package_dependencies__types_formidable": "^1.0.31", + "npm_package_dependencies__types_jquery": "^3.3.29", + "npm_package_dependencies__types_jsonwebtoken": "^8.3.2", + "npm_package_dependencies__types_lodash": "^4.14.121", + "npm_package_dependencies__types_mobile_detect": "^1.3.4", + "npm_package_dependencies__types_mongodb": "^3.1.22", + "npm_package_dependencies__types_mongoose": "^5.3.21", + "npm_package_dependencies__types_node": "^10.12.30", + "npm_package_dependencies__types_nodemailer": "^4.6.6", + "npm_package_dependencies__types_passport": "^1.0.0", + "npm_package_dependencies__types_passport_local": "^1.0.33", + "npm_package_dependencies__types_pdfjs_dist": "^2.0.0", + "npm_package_dependencies__types_prosemirror_commands": "^1.0.1", + "npm_package_dependencies__types_prosemirror_history": "^1.0.1", + "npm_package_dependencies__types_prosemirror_inputrules": "^1.0.2", + "npm_package_dependencies__types_prosemirror_keymap": "^1.0.1", + "npm_package_dependencies__types_prosemirror_menu": "^1.0.1", + "npm_package_dependencies__types_prosemirror_model": "^1.7.0", + "npm_package_dependencies__types_prosemirror_schema_basic": "^1.0.1", + "npm_package_dependencies__types_prosemirror_schema_list": "^1.0.1", + "npm_package_dependencies__types_prosemirror_state": "^1.2.3", + "npm_package_dependencies__types_prosemirror_transform": "^1.1.0", + "npm_package_dependencies__types_prosemirror_view": "^1.3.1", + "npm_package_dependencies__types_pug": "^2.0.4", + "npm_package_dependencies__types_react": "^16.8.7", + "npm_package_dependencies__types_react_color": "^2.14.1", + "npm_package_dependencies__types_react_measure": "^2.0.4", + "npm_package_dependencies__types_react_table": "^6.7.22", + "npm_package_dependencies__types_request": "^2.48.1", + "npm_package_dependencies__types_request_promise": "^4.1.42", + "npm_package_dependencies__types_sharp": "^0.22.2", + "npm_package_dependencies__types_socket_io": "^2.1.2", + "npm_package_dependencies__types_socket_io_client": "^1.4.32", + "npm_package_dependencies__types_typescript": "^2.0.0", + "npm_package_dependencies__types_uuid": "^3.4.4", + "npm_package_dependencies__types_webpack": "^4.4.25", + "npm_package_description": "Install Node.js, then, from the project directory, run", + "npm_package_devDependencies_awesome_typescript_loader": "^5.2.1", + "npm_package_devDependencies_chai": "^4.2.0", + "npm_package_devDependencies_copy_webpack_plugin": "^4.6.0", + "npm_package_devDependencies_css_loader": "^2.1.1", + "npm_package_devDependencies_file_loader": "^3.0.1", + "npm_package_devDependencies_fork_ts_checker_webpack_plugin": "^1.0.2", + "npm_package_devDependencies_jsdom": "^15.1.1", + "npm_package_devDependencies_mocha": "^5.2.0", + "npm_package_devDependencies_sass_loader": "^7.1.0", + "npm_package_devDependencies_scss_loader": "0.0.1", + "npm_package_devDependencies_style_loader": "^0.23.1", + "npm_package_devDependencies_tslint": "^5.15.0", + "npm_package_devDependencies_tslint_loader": "^3.5.4", + "npm_package_devDependencies_ts_loader": "^5.3.3", + "npm_package_devDependencies_ts_node": "^7.0.1", + "npm_package_devDependencies_ts_node_dev": "^1.0.0-pre.32", + "npm_package_devDependencies_typescript": "^3.4.1", + "npm_package_devDependencies_webpack": "^4.29.6", + "npm_package_devDependencies_webpack_cli": "^3.2.3", + "npm_package_devDependencies_webpack_dev_middleware": "^3.6.1", + "npm_package_devDependencies_webpack_dev_server": "^3.3.1", + "npm_package_devDependencies_webpack_hot_middleware": "^2.24.3", + "npm_package_devDependencies__types_chai": "^4.1.7", + "npm_package_devDependencies__types_mocha": "^5.2.6", + "npm_package_devDependencies__types_react_dom": "^16.8.2", + "npm_package_devDependencies__types_webpack_dev_middleware": "^2.0.2", + "npm_package_devDependencies__types_webpack_hot_middleware": "^2.16.4", + "npm_package_gitHead": "eeff89a0607eaa6a0204ec2cbac794706f3ab393", + "npm_package_main": "index.js", + "npm_package_name": "dash", + "npm_package_readmeFilename": "README.md", + "npm_package_scripts_build": "webpack --env production", + "npm_package_scripts_debug": "ts-node-dev --inspect -- src/server/index.ts", + "npm_package_scripts_start": "ts-node-dev -- src/server/index.ts", + "npm_package_scripts_test": "mocha -r ts-node/register test/**/*.ts", + "npm_package_scripts_tsc": "tsc", + "npm_package_version": "1.0.0", + "NUMBER_OF_PROCESSORS": "8", + "NVCUDASAMPLES9_0_ROOT": "C:\\ProgramData\\NVIDIA Corporation\\CUDA Samples\\v9.0", + "NVCUDASAMPLES_ROOT": "C:\\ProgramData\\NVIDIA Corporation\\CUDA Samples\\v9.0", + "NVTOOLSEXT_PATH": "C:\\Program Files\\NVIDIA Corporation\\NvToolsExt\\", + "OneDrive": "C:\\Users\\Andri\\OneDrive", + "OneDriveConsumer": "C:\\Users\\Andri\\OneDrive", + "OS": "Windows_NT", + "PATH": "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\npm-lifecycle\\node-gyp-bin;C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\.bin;C:\\Program Files\\Git\\mingw64\\bin;C:\\Program Files\\Git\\usr\\bin;C:\\Users\\Andri\\bin;C:\\Python27;C:\\Python27\\Scripts;C:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath;C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v9.0\\bin;C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v9.0\\libnvvp;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0;C:\\Program Files\\Microsoft SQL Server\\130\\Tools\\Binn;C:\\Program Files\\dotnet;C:\\Program Files\\Git\\cmd;C:\\Program Files (x86)\\Pandoc;C:\\Program Files\\CMake\\bin;C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit;C:\\Qt\\5.10.0\\msvc2015\\bin;C:\\Users\\Andri\\Documents\\apitrace\\build\\RelWithDebInfo;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;C:\\Program Files (x86)\\Google\\Cloud SDK\\google-cloud-sdk\\bin;C:\\Go\\bin;C:\\GoWorkspace\\bin;C:\\Program Files\\MATLAB\\R2018a\\bin;C:\\Program Files\\HDF_Group\\HDF5\\1.10.2\\bin;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0;C:\\WINDOWS\\System32\\OpenSSH;C:\\Program Files\\PuTTY;C:\\Program Files\\nodejs;C:\\ProgramData\\chocolatey\\bin;C:\\Program Files\\Microsoft VS Code\\bin;C:\\Users\\Andri\\AppData\\Local\\Programs\\Python\\Python36\\Scripts;C:\\Users\\Andri\\AppData\\Local\\Programs\\Python\\Python36;C:\\Users\\Andri\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\Andri\\AppData\\Local\\Programs\\Fiddler;C:\\Users\\Andri\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Program Files\\Microsoft VS Code\\bin;C:\\Users\\Andri\\AppData\\Local\\GitHubDesktop\\bin;C:\\Users\\Andri\\AppData\\Roaming\\npm;C:\\Users\\Andri\\AppData\\Local\\Programs\\Microsoft VS Code\\bin", + "PATHEXT": ".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JSE;.WSF;.WSH;.MSC", + "PLINK_PROTOCOL": "ssh", + "PROCESSOR_ARCHITECTURE": "AMD64", + "PROCESSOR_IDENTIFIER": "Intel64 Family 6 Model 94 Stepping 3, GenuineIntel", + "PROCESSOR_LEVEL": "6", + "PROCESSOR_REVISION": "5e03", + "ProgramData": "C:\\ProgramData", + "PROGRAMFILES": "C:\\Program Files", + "ProgramFiles(x86)": "C:\\Program Files (x86)", + "ProgramW6432": "C:\\Program Files", + "PROMPT": "$P$G", + "PSModulePath": "C:\\Program Files\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules;C:\\Program Files\\Microsoft Message Analyzer\\PowerShell\\;C:\\Program Files (x86)\\Google\\Cloud SDK\\google-cloud-sdk\\platform\\PowerShell", + "PUBLIC": "C:\\Users\\Public", + "PWD": "C:/Users/Andri/Desktop/AndrewKim/Dash-Web", + "QtMsBuild": "C:\\Users\\Andri\\AppData\\Local\\QtMsBuild", + "SESSIONNAME": "Console", + "SHLVL": "2", + "SYSTEMDRIVE": "C:", + "SYSTEMROOT": "C:\\WINDOWS", + "TEMP": "C:\\Users\\Andri\\AppData\\Local\\Temp", + "TERM": "cygwin", + "TERM_PROGRAM": "vscode", + "TERM_PROGRAM_VERSION": "1.31.1", + "TMP": "C:\\Users\\Andri\\AppData\\Local\\Temp", + "USERDOMAIN": "DESKTOP-G9G1TRP", + "USERDOMAIN_ROAMINGPROFILE": "DESKTOP-G9G1TRP", + "USERNAME": "Graphics Lab", + "USERPROFILE": "C:\\Users\\Andri", + "VIPSHOME": "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release", + "WINDIR": "C:\\WINDOWS", + "_": "C:/Program Files/nodejs/node.exe" + }, + "sharedObjects": [ + "C:\\Program Files\\nodejs\\node.exe", + "C:\\WINDOWS\\SYSTEM32\\ntdll.dll", + "C:\\WINDOWS\\System32\\KERNEL32.DLL", + "C:\\WINDOWS\\System32\\KERNELBASE.dll", + "C:\\WINDOWS\\System32\\PSAPI.DLL", + "C:\\WINDOWS\\System32\\WS2_32.dll", + "C:\\WINDOWS\\System32\\RPCRT4.dll", + "C:\\WINDOWS\\System32\\ADVAPI32.dll", + "C:\\WINDOWS\\SYSTEM32\\NETAPI32.dll", + "C:\\WINDOWS\\System32\\msvcrt.dll", + "C:\\WINDOWS\\System32\\sechost.dll", + "C:\\WINDOWS\\SYSTEM32\\dbghelp.dll", + "C:\\WINDOWS\\System32\\ucrtbase.dll", + "C:\\WINDOWS\\System32\\USER32.dll", + "C:\\WINDOWS\\System32\\win32u.dll", + "C:\\WINDOWS\\System32\\GDI32.dll", + "C:\\WINDOWS\\System32\\gdi32full.dll", + "C:\\WINDOWS\\System32\\msvcp_win.dll", + "C:\\WINDOWS\\System32\\CRYPT32.dll", + "C:\\WINDOWS\\System32\\MSASN1.dll", + "C:\\WINDOWS\\SYSTEM32\\IPHLPAPI.DLL", + "C:\\WINDOWS\\SYSTEM32\\USERENV.dll", + "C:\\WINDOWS\\SYSTEM32\\WINMM.dll", + "C:\\WINDOWS\\System32\\profapi.dll", + "C:\\WINDOWS\\SYSTEM32\\WINMMBASE.dll", + "C:\\WINDOWS\\SYSTEM32\\NETUTILS.DLL", + "C:\\WINDOWS\\System32\\cfgmgr32.dll", + "C:\\WINDOWS\\SYSTEM32\\SRVCLI.DLL", + "C:\\WINDOWS\\System32\\IMM32.DLL", + "C:\\WINDOWS\\System32\\powrprof.dll", + "C:\\WINDOWS\\system32\\mswsock.dll", + "C:\\WINDOWS\\System32\\kernel.appcore.dll", + "C:\\WINDOWS\\SYSTEM32\\CRYPTSP.dll", + "C:\\WINDOWS\\system32\\rsaenh.dll", + "C:\\WINDOWS\\SYSTEM32\\bcrypt.dll", + "C:\\WINDOWS\\SYSTEM32\\CRYPTBASE.dll", + "C:\\WINDOWS\\System32\\bcryptPrimitives.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\sharp.node", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libvips-42.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libvips-cpp.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libglib-2.0-0.dll", + "C:\\WINDOWS\\System32\\ole32.dll", + "C:\\WINDOWS\\System32\\combase.dll", + "C:\\WINDOWS\\System32\\SHELL32.dll", + "C:\\WINDOWS\\System32\\shcore.dll", + "C:\\WINDOWS\\System32\\windows.storage.dll", + "C:\\WINDOWS\\System32\\shlwapi.dll", + "C:\\WINDOWS\\System32\\FLTLIB.DLL", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libexif-12.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libexpat-1.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libcairo-2.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libfontconfig-1.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libgif-7.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libgmodule-2.0-0.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libgobject-2.0-0.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libgsf-1-114.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libjpeg-62.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libintl-8.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\liblcms2-2.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libpangoft2-1.0-0.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libpango-1.0-0.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\liborc-0.4-0.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libpng16-16.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libtiff-5.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libwebp-7.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\librsvg-2-2.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libwebpmux-3.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libz.dll", + "C:\\WINDOWS\\SYSTEM32\\MSIMG32.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libfreetype-6.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libpixman-1-0.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libffi-6.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libgcc_s_seh-1.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libiconv-2.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libgio-2.0-0.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libharfbuzz-0.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libxml2-2.dll", + "C:\\WINDOWS\\SYSTEM32\\DNSAPI.dll", + "C:\\WINDOWS\\System32\\NSI.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libcroco-0.6-3.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libpangocairo-1.0-0.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libgdk_pixbuf-2.0-0.dll", + "C:\\WINDOWS\\WinSxS\\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.17134.829_none_2c31982c8af433a3\\gdiplus.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\sharp\\build\\Release\\libpangowin32-1.0-0.dll", + "C:\\WINDOWS\\SYSTEM32\\USP10.dll", + "C:\\WINDOWS\\SYSTEM32\\dhcpcsvc6.DLL", + "C:\\WINDOWS\\SYSTEM32\\dhcpcsvc.DLL", + "C:\\WINDOWS\\System32\\fwpuclnt.dll", + "C:\\Windows\\System32\\rasadhlp.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\canvas\\build\\Release\\canvas.node", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\canvas\\build\\Release\\libjpeg-8.dll", + "\\\\?\\C:\\Users\\Andri\\Desktop\\AndrewKim\\Dash-Web\\node_modules\\node-sass\\vendor\\win32-x64-67\\binding.node" + ] +} \ No newline at end of file diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index 1a99ac383..5ee16970b 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -365,8 +365,8 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { + - ); } diff --git a/src/client/views/nodes/Keyframe.tsx b/src/client/views/nodes/Keyframe.tsx index 2f75a4b03..4de311057 100644 --- a/src/client/views/nodes/Keyframe.tsx +++ b/src/client/views/nodes/Keyframe.tsx @@ -14,6 +14,11 @@ import { number } from "prop-types"; import { CollectionSchemaView, CollectionSchemaPreview } from "../collections/CollectionSchemaView"; export namespace KeyframeFunc{ + export enum KeyframeType{ + fade = "fade", + default = "default", + new = "new" + } export enum Direction{ left = "left", right = "right" @@ -80,32 +85,22 @@ export class Keyframe extends React.Component { @action componentDidMount() { - let fadeIn = this.makeKeyData(this.regiondata.position + this.regiondata.fadeIn)!; - let fadeOut = this.makeKeyData(this.regiondata.position + this.regiondata.duration - this.regiondata.fadeOut)!; - let fadeInIndex = this.regiondata.keyframes!.indexOf(fadeIn); - let fadeOutIndex = this.regiondata.keyframes!.indexOf(fadeOut); - + let fadeIn = this.makeKeyData(this.regiondata.position + this.regiondata.fadeIn, KeyframeFunc.KeyframeType.fade)!; + let fadeOut = this.makeKeyData(this.regiondata.position + this.regiondata.duration - this.regiondata.fadeOut, KeyframeFunc.KeyframeType.fade)!; + let start = this.makeKeyData(this.regiondata.position, KeyframeFunc.KeyframeType.fade)!; + let finish = this.makeKeyData(this.regiondata.position + this.regiondata.duration, KeyframeFunc.KeyframeType.fade)!; (fadeIn.key! as Doc).opacity = 1; (fadeOut.key! as Doc).opacity = 1; - - this.regiondata.keyframes![fadeInIndex] =fadeIn; - this.regiondata.keyframes![fadeOutIndex] =fadeOut; - - - let start = this.makeKeyData(this.regiondata.position)!; - let finish = this.makeKeyData(this.regiondata.position + this.regiondata.duration)!; - - - let startIndex = this.regiondata.keyframes!.indexOf(start); - let finishIndex = this.regiondata.keyframes!.indexOf(finish); - (start.key! as Doc).opacity = 0.1; (finish.key! as Doc).opacity = 0.1; - + let fadeInIndex = this.regiondata.keyframes!.indexOf(fadeIn); + let fadeOutIndex = this.regiondata.keyframes!.indexOf(fadeOut); + let startIndex = this.regiondata.keyframes!.indexOf(start); + let finishIndex = this.regiondata.keyframes!.indexOf(finish); + this.regiondata.keyframes![fadeInIndex] =fadeIn; + this.regiondata.keyframes![fadeOutIndex] =fadeOut; this.regiondata.keyframes![startIndex] = start; this.regiondata.keyframes![finishIndex] = finish; - - } componentWillUnmount() { @@ -126,7 +121,7 @@ export class Keyframe extends React.Component { @action - makeKeyData = (kfpos: number) => { //Kfpos is mouse offsetX, representing time + makeKeyData = (kfpos: number, type:KeyframeFunc.KeyframeType = KeyframeFunc.KeyframeType.new) => { //Kfpos is mouse offsetX, representing time let hasData = false; this.regiondata.keyframes!.forEach(TK => { //TK is TimeAndKey TK = TK as Doc; @@ -136,8 +131,14 @@ export class Keyframe extends React.Component { }); if (!hasData) { let TK: Doc = new Doc(); - TK.time = kfpos; - TK.key = Doc.MakeCopy(this.props.node); + TK.time = kfpos; + if (type === KeyframeFunc.KeyframeType.fade){ + TK.key = new Doc(); + } else { + TK.key = Doc.MakeCopy(this.props.node, true); + console.log(toJS(TK.key)); + } + TK.type = type; this.regiondata.keyframes!.push(TK); return TK; } @@ -175,7 +176,6 @@ export class Keyframe extends React.Component { } } - @action onResizeLeft = (e: React.PointerEvent) => { e.preventDefault(); @@ -242,9 +242,9 @@ export class Keyframe extends React.Component { e.stopPropagation(); let bar = this._bar.current!; let offset = e.clientX - bar.getBoundingClientRect().left; - let position = NumCast(this.regiondata.position); - this.makeKeyData(Math.round(position + offset)); - this.props.changeCurrentBarX(NumCast(Math.round(position + offset))); + let position = NumCast(this.regiondata.position); + this.makeKeyData(Math.round(position + offset)); + this.props.changeCurrentBarX(NumCast(Math.round(position + offset))); //first move the keyframe to the correct location and make a copy so the correct file gets coppied } @action @@ -255,7 +255,25 @@ export class Keyframe extends React.Component { } - + @action + private createKeyframeJSX = (kf:Doc, type = KeyframeFunc.KeyframeType.default) => { + if (type === KeyframeFunc.KeyframeType.default){ + return ( +
+ {this.createDivider()} +
{this.moveKeyframe(e, kf as Doc);} } onContextMenu={(e:React.MouseEvent)=>{ + e.preventDefault(); + e.stopPropagation(); + console.log(toJS(kf.key)); + }}>
+
); + } + return ( +
+ {this.createDivider()} +
+ ); + } render() { return ( @@ -274,19 +292,8 @@ export class Keyframe extends React.Component { })}>
- {/*
{this.createDivider(KeyframeFunc.Direction.left)}
-
{this.createDivider(KeyframeFunc.Direction.right)}
*/} - {this.regiondata.keyframes!.map(kf => { - kf = kf as Doc; - return
- {this.createDivider()} -
{this.moveKeyframe(e, kf as Doc);} } onContextMenu={(e:React.MouseEvent)=>{ - e.preventDefault(); - e.stopPropagation(); - - }}>
-
; + return this.createKeyframeJSX(kf as Doc, (kf! as Doc).type as KeyframeFunc.KeyframeType); })} {this.createDivider(KeyframeFunc.Direction.left)} {this.createDivider(KeyframeFunc.Direction.right)} diff --git a/src/client/views/nodes/Timeline.tsx b/src/client/views/nodes/Timeline.tsx index 1c51dbcad..d25aa7953 100644 --- a/src/client/views/nodes/Timeline.tsx +++ b/src/client/views/nodes/Timeline.tsx @@ -4,7 +4,7 @@ import { CollectionSubView } from "../collections/CollectionSubView"; import { Document, listSpec, createSchema, makeInterface, defaultSpec } from "../../../new_fields/Schema"; import { observer } from "mobx-react"; import { Track } from "./Track"; -import { observable, reaction, action, IReactionDisposer, observe, IObservableArray, computed, toJS, Reaction, IObservableObject } from "mobx"; +import { observable, reaction, action, IReactionDisposer, observe, IObservableArray, computed, toJS, Reaction, IObservableObject, trace, autorun, runInAction } from "mobx"; import { Cast, NumCast } from "../../../new_fields/Types"; import { SelectionManager } from "../../util/SelectionManager"; import { List } from "../../../new_fields/List"; @@ -22,30 +22,30 @@ export interface FlyoutProps { x?: number; y?: number; display?: string; - regiondata?:Doc; - regions?:List; + regiondata?: Doc; + regions?: List; } @observer export class Timeline extends CollectionSubView(Document) { private readonly DEFAULT_CONTAINER_HEIGHT: number = 300; - private readonly DEFAULT_TICK_SPACING:number = 50; + private readonly DEFAULT_TICK_SPACING: number = 50; private readonly MIN_CONTAINER_HEIGHT: number = 205; private readonly MAX_CONTAINER_HEIGHT: number = 800; - + @observable private _isMinimized = false; @observable private _tickSpacing = this.DEFAULT_TICK_SPACING; @observable private _scrubberbox = React.createRef(); - @observable private _scrubber = React.createRef(); + @observable private _scrubber = React.createRef(); @observable private _trackbox = React.createRef(); @observable private _titleContainer = React.createRef(); @observable private _timelineContainer = React.createRef(); - @observable private _timeInput = React.createRef(); - @observable private _durationInput = React.createRef(); - @observable private _fadeInInput = React.createRef(); - @observable private _fadeOutInput = React.createRef(); + @observable private _timeInput = React.createRef(); + @observable private _durationInput = React.createRef(); + @observable private _fadeInInput = React.createRef(); + @observable private _fadeOutInput = React.createRef(); @observable private _currentBarX: number = 0; @@ -59,12 +59,25 @@ export class Timeline extends CollectionSubView(Document) { @observable private _infoContainer = React.createRef(); @observable private _ticks: number[] = []; - @observable private flyoutInfo: FlyoutProps = { x: 0, y: 0, display: "none", regiondata: new Doc(), regions: new List()}; + @observable private flyoutInfo: FlyoutProps = { x: 0, y: 0, display: "none", regiondata: new Doc(), regions: new List() }; private block = false; - @action componentDidMount() { + this.initialize(); + } + + componentWillMount() { + runInAction(() => { + //check if this is a video frame + for (let i = 0; i < this._time;) { + this._ticks.push(i); + i += 1000; + } + }); + } + + initialize = action(() => { let scrubber = this._scrubberbox.current!; this._boxLength = scrubber.getBoundingClientRect().width; let children = Cast(this.props.Document[this.props.fieldKey], listSpec(Doc)); @@ -81,17 +94,12 @@ export class Timeline extends CollectionSubView(Document) { trackbox.style.width = `${this._boxLength}`; }); - //check if this is a video frame - for (let i = 0; i < this._time;) { - this._ticks.push(i); - i += 1000; - } document.addEventListener("pointerdown", this.closeFlyout); - } + }); - @action + @action changeCurrentBarX = (x: number) => { - this._currentBarX = x; + this._currentBarX = x; } @action onFlyoutDown = (e: React.PointerEvent) => { @@ -108,10 +116,10 @@ export class Timeline extends CollectionSubView(Document) { this.flyoutInfo.display = "none"; } - @action componentDidUpdate() { - this._time = 100001; + runInAction(() => this._time = 100001); } + componentWillUnmount() { document.removeEventListener("pointerdown", this.closeFlyout); } @@ -182,7 +190,7 @@ export class Timeline extends CollectionSubView(Document) { this._currentBarX = offset; } - + @action onPanDown = (e: React.PointerEvent) => { @@ -230,22 +238,22 @@ export class Timeline extends CollectionSubView(Document) { } } - @action - onTimelineDown = (e:React.PointerEvent) => { - e.preventDefault(); - e.stopPropagation(); - document.addEventListener("pointermove", this.onTimelineMove); - document.addEventListener("pointerup", () => {document.removeEventListener("pointermove", this.onTimelineMove);}); + @action + onTimelineDown = (e: React.PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + document.addEventListener("pointermove", this.onTimelineMove); + document.addEventListener("pointerup", () => { document.removeEventListener("pointermove", this.onTimelineMove); }); } - @action - onTimelineMove = (e:PointerEvent) => { - e.preventDefault(); - e.stopPropagation(); - let timelineContainer = this._timelineContainer.current!; - timelineContainer.style.transform = `translate(${timelineContainer.getBoundingClientRect().left + 1}px, ${timelineContainer.getBoundingClientRect().top + 1}px)`; - console.log("mouse move!"); - timelineContainer.style.width = "500px"; + @action + onTimelineMove = (e: PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + let timelineContainer = this._timelineContainer.current!; + timelineContainer.style.transform = `translate(${timelineContainer.getBoundingClientRect().left + 1}px, ${timelineContainer.getBoundingClientRect().top + 1}px)`; + console.log("mouse move!"); + timelineContainer.style.width = "500px"; } @action @@ -292,54 +300,54 @@ export class Timeline extends CollectionSubView(Document) { }), icon: "pinterest" }); ContextMenu.Instance.addItem({ description: "Timeline Funcs...", subitems: subitems }); - + } @action changeTime = (e: React.KeyboardEvent) => { - let time = this._timeInput.current!; - if (e.keyCode === 13){ - if (!Number.isNaN(Number(time.value))){ - this.flyoutInfo.regiondata!.position = Number(time.value) / 1000 * this._tickSpacing; - time.placeholder = time.value +"ms"; + let time = this._timeInput.current!; + if (e.keyCode === 13) { + if (!Number.isNaN(Number(time.value))) { + this.flyoutInfo.regiondata!.position = Number(time.value) / 1000 * this._tickSpacing; + time.placeholder = time.value + "ms"; time.value = ""; } } } - @action - changeDuration = (e:React.KeyboardEvent) => { - let duration = this._durationInput.current!; - if (e.keyCode === 13){ - if (!Number.isNaN(Number(duration.value))){ - this.flyoutInfo.regiondata!.duration = Number(duration.value) / 1000 * this._tickSpacing; - duration.placeholder = duration.value +"ms"; + @action + changeDuration = (e: React.KeyboardEvent) => { + let duration = this._durationInput.current!; + if (e.keyCode === 13) { + if (!Number.isNaN(Number(duration.value))) { + this.flyoutInfo.regiondata!.duration = Number(duration.value) / 1000 * this._tickSpacing; + duration.placeholder = duration.value + "ms"; duration.value = ""; } } } - @action - changeFadeIn = (e:React.KeyboardEvent) => { - let fadeIn = this._fadeInInput.current!; - if (e.keyCode === 13){ - if (!Number.isNaN(Number(fadeIn.value))){ + @action + changeFadeIn = (e: React.KeyboardEvent) => { + let fadeIn = this._fadeInInput.current!; + if (e.keyCode === 13) { + if (!Number.isNaN(Number(fadeIn.value))) { this.flyoutInfo.regiondata!.fadeIn = Number(fadeIn.value); - fadeIn.placeholder = fadeIn.value +"ms"; + fadeIn.placeholder = fadeIn.value + "ms"; fadeIn.value = ""; } } } - @action - changeFadeOut = (e:React.KeyboardEvent) => { - let fadeOut = this._fadeOutInput.current!; - if (e.keyCode === 13){ - if (!Number.isNaN(Number(fadeOut.value))){ - this.flyoutInfo.regiondata!.fadeOut = Number(fadeOut.value); - fadeOut.placeholder = fadeOut.value +"ms"; - fadeOut.value = ""; + @action + changeFadeOut = (e: React.KeyboardEvent) => { + let fadeOut = this._fadeOutInput.current!; + if (e.keyCode === 13) { + if (!Number.isNaN(Number(fadeOut.value))) { + this.flyoutInfo.regiondata!.fadeOut = Number(fadeOut.value); + fadeOut.placeholder = fadeOut.value + "ms"; + fadeOut.value = ""; } } } @@ -348,23 +356,23 @@ export class Timeline extends CollectionSubView(Document) { return (
-
- -
-

Time:

-

Duration:

-

Fade-in

-

Fade-out

-
-
- - - - - -
- +
+ +
+

Time:

+

Duration:

+

Fade-in

+

Fade-out

+
+ + + + + +
+ +
@@ -387,7 +395,7 @@ export class Timeline extends CollectionSubView(Document) {
{this._nodes.map(doc => { - return ; + return ; })}
diff --git a/src/client/views/nodes/Track.tsx b/src/client/views/nodes/Track.tsx index e6d5189af..5f7d7619c 100644 --- a/src/client/views/nodes/Track.tsx +++ b/src/client/views/nodes/Track.tsx @@ -25,6 +25,7 @@ interface IProps { export class Track extends React.Component { @observable private _inner = React.createRef(); @observable private _keys = ["x", "y", "width", "height", "panX", "panY", "scale", "opacity"]; + @observable private _onInterpolate:boolean = false; private _reactionDisposers: IReactionDisposer[] = []; private _selectionManagerChanged?: IReactionDisposer; @@ -43,35 +44,43 @@ export class Track extends React.Component { componentDidMount() { this.props.node.hidden = true; this.props.node.opacity = 1; - reaction(() => this.props.currentBarX, () => { - let region: (Doc | undefined) = this.findRegion(this.props.currentBarX); - if (region !== undefined) { - this.props.node.hidden = false; - this.timeChange(this.props.currentBarX); + + this._reactionDisposers.push(reaction(() => this.props.currentBarX, () => { + let regiondata: (Doc | undefined) = this.findRegion(this.props.currentBarX); + if (regiondata) { + this.timeChange(this.props.currentBarX); //first interpolates over to that position; + (Cast(regiondata.keyframes!, listSpec(Doc)) as List).forEach((kf) => { + kf = kf as Doc; + if(NumCast(kf.time!) === this.props.currentBarX && kf.type !== KeyframeFunc.KeyframeType.fade){ + kf.key = Doc.MakeCopy(this.props.node, true); + if (kf.type === KeyframeFunc.KeyframeType.new){ + kf.type = KeyframeFunc.KeyframeType.default; + } + } + }); + this.props.node.hidden = false; } else { this.props.node.hidden = true; } - }); - - reaction(() => { + })); + this._reactionDisposers.push(reaction(() => { if (!this._onInterpolate){ let keys = Doc.allKeys(this.props.node); return keys.map(key => FieldValue(this.props.node[key])); } }, data => { - let regiondata = this.findRegion(this.props.currentBarX); + let regiondata = this.findRegion(this.props.currentBarX); if (regiondata){ (Cast(regiondata.keyframes!, listSpec(Doc)) as List).forEach((kf) => { kf = kf as Doc; - if(NumCast(kf.time!) === this.props.currentBarX){ - kf.key = Doc.MakeCopy(this.props.node); - console.log("key updated"); - } + if(NumCast(kf.time!) === this.props.currentBarX && kf.type !== KeyframeFunc.KeyframeType.fade){ + kf.key = Doc.MakeCopy(this.props.node, true); + } }); } - - }); + })); } + /** * removes reaction when the component is removed from the timeline */ @@ -81,24 +90,22 @@ export class Track extends React.Component { } - @observable private _onInterpolate:boolean = false; @action timeChange = async (time: number) => { let region = this.findRegion(time); let leftkf: (Doc | undefined) = this.calcMinLeft(region!); let rightkf: (Doc | undefined) = this.calcMinRight(region!); let currentkf: (Doc | undefined) = this.calcCurrent(region!); - if (currentkf){ + if (currentkf && (currentkf.type !== KeyframeFunc.KeyframeType.new)){ this._onInterpolate = true; - console.log(this.filterKeys(Doc.allKeys(currentkf.key as Doc))); this.filterKeys(Doc.allKeys(currentkf.key as Doc)).forEach(k => { - console.log(k); this.props.node[k] = (currentkf!.key as Doc)[k]; }); this._onInterpolate = false; } else if (leftkf && rightkf) { this.interpolate(leftkf, rightkf); - } else if (leftkf) { + } else if (leftkf) { + console.log(Doc.GetProto(leftkf!.key as Doc)); this.filterKeys(Doc.allKeys(leftkf.key as Doc)).forEach(k => { this.props.node[k] = (leftkf!.key as Doc)[k]; }); @@ -164,17 +171,32 @@ export class Track extends React.Component { @action interpolate = async (kf1: Doc, kf2: Doc) => { - console.log("interpolation"); let node1 = kf1.key as Doc; let node2 = kf2.key as Doc; - + let mainNode = new Doc(); const dif_time = NumCast(kf2.time) - NumCast(kf1.time); const ratio = (this.props.currentBarX - NumCast(kf1.time)) / dif_time; //linear - this._keys.forEach(key => { - const diff = NumCast(node2[key]) - NumCast(node1[key]); - const adjusted = diff * ratio; - this.props.node[key] = NumCast(node1[key]) + adjusted; + let keys = []; + if (this.filterKeys(Doc.allKeys(node1)).length === Math.max(this.filterKeys(Doc.allKeys(node1)).length, this.filterKeys(Doc.allKeys(node2)).length )){ + keys = this.filterKeys(Doc.allKeys(node1)); + mainNode = node1; + } else { + keys = this.filterKeys(Doc.allKeys(node2)); + mainNode = node2; + } + + + keys.forEach(key => { + if (node1[key] && node2[key] && typeof(node1[key]) === "number" && typeof(node2[key]) === "number"){ + const diff = NumCast(node2[key]) - NumCast(node1[key]); + const adjusted = diff * ratio; + this.props.node[key] = NumCast(node1[key]) + adjusted; + } else if (key === "title") { + Doc.SetOnPrototype(this.props.node, "title", mainNode[key] as string); + } else if (key === "documentText"){ + Doc.SetOnPrototype(this.props.node, "documentText", mainNode[key] as string); + } }); } -- cgit v1.2.3-70-g09d2 From efb4f101c093467fe18e3bfa00d06d9d3cd6bce8 Mon Sep 17 00:00:00 2001 From: andrewdkim Date: Mon, 29 Jul 2019 13:42:37 -0400 Subject: icon, datasave changes --- src/client/views/collections/CollectionViewChromes.scss | 12 ++++++++++++ src/client/views/collections/CollectionViewChromes.tsx | 4 ++++ src/client/views/nodes/Keyframe.scss | 1 - src/client/views/nodes/Keyframe.tsx | 2 +- src/client/views/nodes/Track.tsx | 10 ++++------ 5 files changed, 21 insertions(+), 8 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/collections/CollectionViewChromes.scss b/src/client/views/collections/CollectionViewChromes.scss index 6525f3b07..2578b47fc 100644 --- a/src/client/views/collections/CollectionViewChromes.scss +++ b/src/client/views/collections/CollectionViewChromes.scss @@ -33,6 +33,18 @@ outline-color: black; } + .collectionViewBaseChrome-button{ + font-size: 75%; + text-transform: uppercase; + letter-spacing: 2px; + background: rgb(238, 238, 238); + color: grey; + outline-color: black; + border: none; + padding: 12px 10px 11px 10px; + margin-left: 50px; + } + .collectionViewBaseChrome-collapse { transition: all .5s; position: absolute; diff --git a/src/client/views/collections/CollectionViewChromes.tsx b/src/client/views/collections/CollectionViewChromes.tsx index 9c751c4df..e91d31486 100644 --- a/src/client/views/collections/CollectionViewChromes.tsx +++ b/src/client/views/collections/CollectionViewChromes.tsx @@ -247,9 +247,13 @@ export class CollectionViewBaseChrome extends React.Component APPLY FILTER +
+ {this.subChrome()} diff --git a/src/client/views/nodes/Keyframe.scss b/src/client/views/nodes/Keyframe.scss index 19a61bde1..11672388f 100644 --- a/src/client/views/nodes/Keyframe.scss +++ b/src/client/views/nodes/Keyframe.scss @@ -3,7 +3,6 @@ .bar { height: 100%; width: 5px; - background-color: #4d9900; position: absolute; // pointer-events: none; diff --git a/src/client/views/nodes/Keyframe.tsx b/src/client/views/nodes/Keyframe.tsx index 82f5b18cc..6ff925cb5 100644 --- a/src/client/views/nodes/Keyframe.tsx +++ b/src/client/views/nodes/Keyframe.tsx @@ -322,7 +322,7 @@ export class Keyframe extends React.Component { render() { return (
-
{ diff --git a/src/client/views/nodes/Track.tsx b/src/client/views/nodes/Track.tsx index e4302e721..39f83639c 100644 --- a/src/client/views/nodes/Track.tsx +++ b/src/client/views/nodes/Track.tsx @@ -113,7 +113,7 @@ export class Track extends React.Component { let rightkf: (Doc | undefined) = await this.calcMinRight(regiondata!); //right keyframe, if it exists let currentkf: (Doc | undefined) = await this.calcCurrent(regiondata!); //if the scrubber is on top of the keyframe if (currentkf) { - this.applyKeys(currentkf); + await this.applyKeys(currentkf); this._keyReaction = this.keyReaction(); //reactivates reaction. } else if (leftkf && rightkf) { this.interpolate(leftkf, rightkf); @@ -122,12 +122,11 @@ export class Track extends React.Component { } @action - private applyKeys = (kf: Doc) => { - let kfNode = Cast(kf.key, Doc) as Doc; + private applyKeys = async (kf: Doc) => { + let kfNode = await Cast(kf.key, Doc) as Doc; let docFromApply = kfNode; if (this.filterKeys(Doc.allKeys(this.props.node)).length > this.filterKeys(Doc.allKeys(kfNode)).length) docFromApply = this.props.node; this.filterKeys(Doc.allKeys(docFromApply)).forEach(key => { - // if (key === "title" || key === "documentText") Doc.SetOnPrototype(this.props.node, key, StrCast(kf[key])); if (!kfNode[key]) { this.props.node[key] = undefined; } else { @@ -205,8 +204,7 @@ export class Track extends React.Component { const diff = NumCast(rightNode[key]) - NumCast(leftNode[key]); const adjusted = diff * ratio; this.props.node[key] = NumCast(leftNode[key]) + adjusted; - } else if (key === "title" || key === "documentText") { - Doc.SetOnPrototype(this.props.node, key, StrCast(leftNode[key])); + } else { this.props.node[key] = leftNode[key]; } }); -- cgit v1.2.3-70-g09d2 From d2e9f14340181ef3ab9698a868df72c5170ffb64 Mon Sep 17 00:00:00 2001 From: andrewdkim Date: Mon, 29 Jul 2019 17:34:44 -0400 Subject: testing interpolation types --- .../views/collections/CollectionViewChromes.scss | 4 +- .../views/collections/CollectionViewChromes.tsx | 4 +- src/client/views/nodes/Keyframe.scss | 7 +++ src/client/views/nodes/Keyframe.tsx | 66 ++++++++++++++++++++++ src/client/views/nodes/Timeline.tsx | 17 +++++- src/client/views/nodes/Track.tsx | 22 ++++++-- 6 files changed, 110 insertions(+), 10 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/collections/CollectionViewChromes.scss b/src/client/views/collections/CollectionViewChromes.scss index 2578b47fc..a838d1deb 100644 --- a/src/client/views/collections/CollectionViewChromes.scss +++ b/src/client/views/collections/CollectionViewChromes.scss @@ -38,11 +38,11 @@ text-transform: uppercase; letter-spacing: 2px; background: rgb(238, 238, 238); - color: grey; + color: purple; outline-color: black; border: none; padding: 12px 10px 11px 10px; - margin-left: 50px; + margin-left: 10px; } .collectionViewBaseChrome-collapse { diff --git a/src/client/views/collections/CollectionViewChromes.tsx b/src/client/views/collections/CollectionViewChromes.tsx index e91d31486..79b6b35ac 100644 --- a/src/client/views/collections/CollectionViewChromes.tsx +++ b/src/client/views/collections/CollectionViewChromes.tsx @@ -251,9 +251,9 @@ export class CollectionViewBaseChrome extends React.Component
- + */} {this.subChrome()} diff --git a/src/client/views/nodes/Keyframe.scss b/src/client/views/nodes/Keyframe.scss index 11672388f..b1e8b0b65 100644 --- a/src/client/views/nodes/Keyframe.scss +++ b/src/client/views/nodes/Keyframe.scss @@ -80,6 +80,13 @@ position:absolute; } + .fadeIn-container, .fadeOut-container, .body-container{ + position:absolute; + height:100%; + background-color: rgba(0, 0, 0, 0.5); + opacity: 0; + } + } diff --git a/src/client/views/nodes/Keyframe.tsx b/src/client/views/nodes/Keyframe.tsx index 6ff925cb5..880c5aee5 100644 --- a/src/client/views/nodes/Keyframe.tsx +++ b/src/client/views/nodes/Keyframe.tsx @@ -10,6 +10,9 @@ import { List } from "../../../new_fields/List"; import { createSchema, defaultSpec, makeInterface, listSpec } from "../../../new_fields/Schema"; import { FlyoutProps } from "./Timeline"; import { Transform } from "../../util/Transform"; +import { DocumentManager } from "../../util/DocumentManager"; +import { CollectionView } from "../collections/CollectionView"; +import { InkField } from "../../../new_fields/InkField"; export namespace KeyframeFunc { export enum KeyframeType { @@ -48,6 +51,7 @@ export namespace KeyframeFunc { regiondata.position = 0; regiondata.fadeIn = 20; regiondata.fadeOut = 20; + regiondata.fadeInX = new List([1, 100]); return regiondata; }; } @@ -65,6 +69,7 @@ export const RegionData = makeInterface(RegionDataSchema); interface IProps { node: Doc; RegionData: Doc; + collection:Doc; changeCurrentBarX: (x: number) => void; setFlyout: (props: FlyoutProps) => any; transform: Transform; @@ -74,6 +79,9 @@ interface IProps { export class Keyframe extends React.Component { @observable private _bar = React.createRef(); + @observable private _fadeInContainer = React.createRef(); + @observable private _fadeOutContainer = React.createRef(); + @observable private _bodyContainer = React.createRef(); @computed private get regiondata() { @@ -112,6 +120,17 @@ export class Keyframe extends React.Component { return last; } + @computed + private get inks(){ + if (this.props.collection.data_ext){ + let data_ext = Cast(this.props.collection.data_ext, Doc) as Doc; + let ink = Cast(data_ext.ink, InkField) as InkField; + if (ink){ + return ink.inkData; + } + } + } + async componentWillMount() { if (!this.regiondata.keyframes) { @@ -300,6 +319,13 @@ export class Keyframe extends React.Component { } + @action + onKeyframeOver = (e: React.PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + this.props.node.backgroundColor = "#000000"; + + } @action private createKeyframeJSX = (kf: Doc, type = KeyframeFunc.KeyframeType.default) => { if (type === KeyframeFunc.KeyframeType.default) { @@ -319,6 +345,34 @@ export class Keyframe extends React.Component { ); } + onContainerOver = (e: React.PointerEvent, ref:React.RefObject) => { + e.preventDefault(); + e.stopPropagation(); + let div = ref.current!; + div.style.opacity = "1"; + } + + onContainerOut = (e: React.PointerEvent, ref: React.RefObject) => { + e.preventDefault(); + e.stopPropagation(); + let div = ref.current!; + div.style.opacity ="0"; + } + + onContainerDown = (e: React.PointerEvent, ref: React.RefObject) => { + e.preventDefault(); + let mouse = e.nativeEvent; + if (mouse.which === 3){ + let reac = reaction(() => { + return this.inks;}, () => { + document.addEventListener("pointerup", () => { + reac(); + console.log("disposed"); + }); + console.log("drawing"); }); + } + + } render() { return (
@@ -337,6 +391,18 @@ export class Keyframe extends React.Component { {this.regiondata.keyframes!.map(kf => { return this.createKeyframeJSX(kf as Doc, (kf! as Doc).type as KeyframeFunc.KeyframeType); })} +
{this.onContainerOver(e, this._fadeOutContainer); }} + onPointerOut ={(e) => {this.onContainerOut(e, this._fadeOutContainer);}} + onPointerDown={(e) => {this.onContainerDown(e, this._fadeOutContainer); }}>
+
{this.onContainerOver(e, this._fadeInContainer); }} + onPointerOut ={(e) => {this.onContainerOut(e, this._fadeInContainer);}} + onPointerDown={(e) => {this.onContainerDown(e, this._fadeInContainer); }}>
+
{this.onContainerOver(e, this._bodyContainer); }} + onPointerOut ={(e) => {this.onContainerOut(e, this._bodyContainer);}} + onPointerDown={(e) => {this.onContainerDown(e, this._bodyContainer); }}>
); diff --git a/src/client/views/nodes/Timeline.tsx b/src/client/views/nodes/Timeline.tsx index 99db2a643..923e99e63 100644 --- a/src/client/views/nodes/Timeline.tsx +++ b/src/client/views/nodes/Timeline.tsx @@ -18,6 +18,9 @@ import { VideoField } from "../../../new_fields/URLField"; import { CollectionVideoView } from "../collections/CollectionVideoView"; import { Transform } from "../../util/Transform"; import { faGrinTongueSquint } from "@fortawesome/free-regular-svg-icons"; +import { InkField } from "../../../new_fields/InkField"; +import { AddComparisonParameters } from "../../northstar/model/idea/idea"; +import { keepAlive } from "mobx-utils"; export interface FlyoutProps { @@ -65,6 +68,7 @@ export class Timeline extends CollectionSubView(Document) { @computed private get children(): List { let extendedDocument = ["image", "video", "pdf"].includes(StrCast(this.props.Document.type)); + if (extendedDocument) { if (this.props.Document.data_ext) { return Cast((Cast(this.props.Document.data_ext, Doc) as Doc).annotations, listSpec(Doc)) as List; @@ -75,6 +79,17 @@ export class Timeline extends CollectionSubView(Document) { return Cast(this.props.Document[this.props.fieldKey], listSpec(Doc)) as List; } + @computed + private get inks(){ + if (this.props.Document.data_ext){ + let data_ext = Cast(this.props.Document.data_ext, Doc) as Doc; + let ink = Cast(data_ext.ink, InkField) as InkField; + if (ink){ + return ink.inkData; + } + } + } + componentDidMount() { if (StrCast(this.props.Document.type) === "video") { @@ -348,7 +363,7 @@ export class Timeline extends CollectionSubView(Document) {
- {DocListCast(this.children).map(doc => )} + {DocListCast(this.children).map(doc => )}
diff --git a/src/client/views/nodes/Track.tsx b/src/client/views/nodes/Track.tsx index 39f83639c..431eb5d37 100644 --- a/src/client/views/nodes/Track.tsx +++ b/src/client/views/nodes/Track.tsx @@ -15,6 +15,7 @@ interface IProps { node: Doc; currentBarX: number; transform: Transform; + collection: Doc; changeCurrentBarX: (x: number) => void; setFlyout: (props: FlyoutProps) => any; } @@ -116,7 +117,7 @@ export class Track extends React.Component { await this.applyKeys(currentkf); this._keyReaction = this.keyReaction(); //reactivates reaction. } else if (leftkf && rightkf) { - this.interpolate(leftkf, rightkf); + this.interpolate(leftkf, rightkf, regiondata); } } } @@ -193,16 +194,27 @@ export class Track extends React.Component { } @action - interpolate = (left: Doc, right: Doc) => { + interpolate = (left: Doc, right: Doc, regiondata:Doc) => { console.log("interpolating"); let leftNode = left.key as Doc; let rightNode = right.key as Doc; const dif_time = NumCast(right.time) - NumCast(left.time); - const ratio = (this.props.currentBarX - NumCast(left.time)) / dif_time; //linear + const timeratio = (this.props.currentBarX - NumCast(left.time)) / dif_time; //linear + let fadeInX:List = regiondata.fadeInX as List; + let fadeInY:List = regiondata.fadeInY as List; + let index = fadeInX[Math.round(fadeInX.length - 1 * timeratio)]; + let correspondingY = fadeInY[index]; + let correspondingYRatio = correspondingY / fadeInY[fadeInY.length - 1] - fadeInY[0]; + this.filterKeys(Doc.allKeys(leftNode)).forEach(key => { if (leftNode[key] && rightNode[key] && typeof (leftNode[key]) === "number" && typeof (rightNode[key]) === "number") { //if it is number, interpolate + if(index + 1 <= fadeInX.length) { + + } else if (index - 1 >= fadeInX.length) { + + } const diff = NumCast(rightNode[key]) - NumCast(leftNode[key]); - const adjusted = diff * ratio; + const adjusted = diff * timeratio; this.props.node[key] = NumCast(leftNode[key]) + adjusted; } else { this.props.node[key] = leftNode[key]; @@ -250,7 +262,7 @@ export class Track extends React.Component {
{DocListCast(this.regions).map((region) => { - return ; + return ; })}
-- cgit v1.2.3-70-g09d2 From bf3d45f8a16d23384a308f65adfa9a2baee495af Mon Sep 17 00:00:00 2001 From: andrewdkim Date: Thu, 1 Aug 2019 17:00:10 -0400 Subject: prosemirror --- src/client/views/animationtimeline/Keyframe.scss | 94 ++++ src/client/views/animationtimeline/Keyframe.tsx | 551 +++++++++++++++++++++ src/client/views/animationtimeline/Timeline.scss | 170 +++++++ src/client/views/animationtimeline/Timeline.tsx | 530 ++++++++++++++++++++ .../views/animationtimeline/TimelineMenu.scss | 0 .../views/animationtimeline/TimelineMenu.tsx | 47 ++ src/client/views/animationtimeline/Track.scss | 15 + src/client/views/animationtimeline/Track.tsx | 276 +++++++++++ .../collectionFreeForm/CollectionFreeFormView.tsx | 2 +- src/client/views/graph/Graph.tsx | 17 + src/client/views/graph/GraphManager.ts | 45 ++ src/client/views/graph/GraphMenu.tsx | 0 src/client/views/nodes/FormattedTextBox.tsx | 10 +- src/client/views/nodes/Keyframe.scss | 94 ---- src/client/views/nodes/Keyframe.tsx | 550 -------------------- src/client/views/nodes/Timeline.scss | 170 ------- src/client/views/nodes/Timeline.tsx | 530 -------------------- src/client/views/nodes/Track.scss | 15 - src/client/views/nodes/Track.tsx | 266 ---------- 19 files changed, 1753 insertions(+), 1629 deletions(-) create mode 100644 src/client/views/animationtimeline/Keyframe.scss create mode 100644 src/client/views/animationtimeline/Keyframe.tsx create mode 100644 src/client/views/animationtimeline/Timeline.scss create mode 100644 src/client/views/animationtimeline/Timeline.tsx create mode 100644 src/client/views/animationtimeline/TimelineMenu.scss create mode 100644 src/client/views/animationtimeline/TimelineMenu.tsx create mode 100644 src/client/views/animationtimeline/Track.scss create mode 100644 src/client/views/animationtimeline/Track.tsx create mode 100644 src/client/views/graph/Graph.tsx create mode 100644 src/client/views/graph/GraphManager.ts create mode 100644 src/client/views/graph/GraphMenu.tsx delete mode 100644 src/client/views/nodes/Keyframe.scss delete mode 100644 src/client/views/nodes/Keyframe.tsx delete mode 100644 src/client/views/nodes/Timeline.scss delete mode 100644 src/client/views/nodes/Timeline.tsx delete mode 100644 src/client/views/nodes/Track.scss delete mode 100644 src/client/views/nodes/Track.tsx (limited to 'src/client/views/collections') diff --git a/src/client/views/animationtimeline/Keyframe.scss b/src/client/views/animationtimeline/Keyframe.scss new file mode 100644 index 000000000..b1e8b0b65 --- /dev/null +++ b/src/client/views/animationtimeline/Keyframe.scss @@ -0,0 +1,94 @@ +@import "./../globalCssVariables.scss"; + +.bar { + height: 100%; + width: 5px; + position: absolute; + + // pointer-events: none; + .menubox { + width: 200px; + height:200px; + top: 50%; + position: relative; + background-color: $light-color; + .menutable{ + tr:nth-child(odd){ + background-color:$light-color-secondary; + } + } + } + + .leftResize{ + left:-12.5px; + height:25px; + width:25px; + border-radius: 50%; + background-color: white; + border:3px solid black; + top: calc(50% - 12.5px); + z-index: 1000; + position:absolute; + } + .rightResize{ + right:-12.5px; + height:25px; + width:25px; + border-radius: 50%; + top:calc(50% - 12.5px); + background-color:white; + border:3px solid black; + z-index: 1000; + position:absolute; + } + .fadeLeft{ + left:0px; + height:100%; + position:absolute; + pointer-events: none; + background: linear-gradient(to left, #4d9900 10%, $light-color); + } + + .fadeRight{ + right:0px; + height:100%; + position:absolute; + pointer-events: none; + background: linear-gradient(to right, #4d9900 10%, $light-color); + } + .divider{ + height:100%; + width: 1px; + position: absolute; + background-color:black; + cursor: col-resize; + pointer-events:none; + } + .keyframe{ + height:100%; + position:absolute; + } + .keyframeCircle{ + left:-15px; + height:30px; + width:30px; + border-radius: 50%; + top:calc(50% - 15px); + background-color:white; + border:3px solid green; + z-index: 1000; + position:absolute; + } + + .fadeIn-container, .fadeOut-container, .body-container{ + position:absolute; + height:100%; + background-color: rgba(0, 0, 0, 0.5); + opacity: 0; + } + + +} + + + diff --git a/src/client/views/animationtimeline/Keyframe.tsx b/src/client/views/animationtimeline/Keyframe.tsx new file mode 100644 index 000000000..995a5b402 --- /dev/null +++ b/src/client/views/animationtimeline/Keyframe.tsx @@ -0,0 +1,551 @@ +import * as React from "react"; +import "./Keyframe.scss"; +import "./Timeline.scss"; +import "../globalCssVariables.scss"; +import { observer, Observer } from "mobx-react"; +import { observable, reaction, action, IReactionDisposer, observe, IObservableArray, computed, toJS, isComputedProp, runInAction } from "mobx"; +import { Doc, DocListCast, DocListCastAsync } from "../../../new_fields/Doc"; +import { Cast, FieldValue, StrCast, NumCast } from "../../../new_fields/Types"; +import { List } from "../../../new_fields/List"; +import { createSchema, defaultSpec, makeInterface, listSpec } from "../../../new_fields/Schema"; +import { FlyoutProps } from "./Timeline"; +import { Transform } from "../../util/Transform"; +import { InkField, StrokeData } from "../../../new_fields/InkField"; +import { number } from "prop-types"; + +export namespace KeyframeFunc { + export enum KeyframeType { + fade = "fade", + default = "default", + } + export enum Direction { + left = "left", + right = "right" + } + export const findAdjacentRegion = (dir: KeyframeFunc.Direction, currentRegion: Doc, regions: List): (RegionData | undefined) => { + let leftMost: (RegionData | undefined) = undefined; + let rightMost: (RegionData | undefined) = undefined; + DocListCast(regions).forEach(region => { + let neighbor = RegionData(region as Doc); + if (currentRegion.position! > neighbor.position) { + if (!leftMost || neighbor.position > leftMost.position) { + leftMost = neighbor; + } + } else if (currentRegion.position! < neighbor.position) { + if (!rightMost || neighbor.position < rightMost.position) { + rightMost = neighbor; + } + } + }); + if (dir === Direction.left) { + return leftMost; + } else if (dir === Direction.right) { + return rightMost; + } + }; + + export const calcMinLeft = async (region: Doc, currentBarX: number, ref?: Doc) => { //returns the time of the closet keyframe to the left + let leftKf: (Doc | undefined) = undefined; + let time: number = 0; + let keyframes = await DocListCastAsync(region.keyframes!); + keyframes!.forEach((kf) => { + let compTime = currentBarX; + if (ref) { + compTime = NumCast(ref.time); + } + if (NumCast(kf.time) < compTime && NumCast(kf.time) >= time) { + leftKf = kf; + time = NumCast(kf.time); + } + }); + return leftKf; + }; + + + export const calcMinRight = async (region: Doc, currentBarX: number, ref?: Doc) => { //returns the time of the closest keyframe to the right + let rightKf: (Doc | undefined) = undefined; + let time: number = Infinity; + let keyframes = await DocListCastAsync(region.keyframes!); + keyframes!.forEach((kf) => { + let compTime = currentBarX; + if (ref) { + compTime = NumCast(ref.time); + } + if (NumCast(kf.time) > compTime && NumCast(kf.time) <= NumCast(time)) { + rightKf = kf; + time = NumCast(kf.time); + } + }); + return rightKf; + }; + + export const defaultKeyframe = () => { + let regiondata = new Doc(); //creating regiondata + regiondata.duration = 200; + regiondata.position = 0; + regiondata.fadeIn = 20; + regiondata.fadeOut = 20; + regiondata.functions = new List(); + return regiondata; + }; +} + +export const RegionDataSchema = createSchema({ + position: defaultSpec("number", 0), + duration: defaultSpec("number", 0), + keyframes: listSpec(Doc), + fadeIn: defaultSpec("number", 0), + fadeOut: defaultSpec("number", 0), + functions: listSpec(Doc) +}); +export type RegionData = makeInterface<[typeof RegionDataSchema]>; +export const RegionData = makeInterface(RegionDataSchema); + +interface IProps { + node: Doc; + RegionData: Doc; + collection: Doc; + changeCurrentBarX: (x: number) => void; + setFlyout: (props: FlyoutProps) => any; + transform: Transform; +} + +@observer +export class Keyframe extends React.Component { + + @observable private _bar = React.createRef(); + @observable private _gain = 20; //default + + @computed + private get regiondata() { + let index = this.regions.indexOf(this.props.RegionData); + return RegionData(this.regions[index] as Doc); + } + + @computed + private get regions() { + return Cast(this.props.node.regions, listSpec(Doc)) as List; + } + + @computed + private get firstKeyframe() { + let first: (Doc | undefined) = undefined; + DocListCast(this.regiondata.keyframes!).forEach(kf => { + if (kf.type !== KeyframeFunc.KeyframeType.fade) { + if (!first || first && NumCast(kf.time) < NumCast(first.time)) { + first = kf; + } + } + }); + return first; + } + + @computed + private get lastKeyframe() { + let last: (Doc | undefined) = undefined; + DocListCast(this.regiondata.keyframes!).forEach(kf => { + if (kf.type !== KeyframeFunc.KeyframeType.fade) { + if (!last || last && NumCast(kf.time) > NumCast(last.time)) { + last = kf; + } + } + }); + return last; + } + @computed + private get keyframes(){ + return DocListCast(this.regiondata.keyframes); + } + + @computed + private get inks() { + if (this.props.collection.data_ext) { + let data_ext = Cast(this.props.collection.data_ext, Doc) as Doc; + let ink = Cast(data_ext.ink, InkField) as InkField; + if (ink) { + return ink.inkData; + } + } + } + + async componentWillMount() { + if (!this.regiondata.keyframes) { + this.regiondata.keyframes = new List(); + } + let fadeIn = await this.makeKeyData(this.regiondata.position + this.regiondata.fadeIn, KeyframeFunc.KeyframeType.fade)!; + let fadeOut = await this.makeKeyData(this.regiondata.position + this.regiondata.duration - this.regiondata.fadeOut, KeyframeFunc.KeyframeType.fade)!; + let start = await this.makeKeyData(this.regiondata.position, KeyframeFunc.KeyframeType.fade)!; + let finish = await this.makeKeyData(this.regiondata.position + this.regiondata.duration, KeyframeFunc.KeyframeType.fade)!; + (fadeIn.key! as Doc).opacity = 1; + (fadeOut.key! as Doc).opacity = 1; + (start.key! as Doc).opacity = 0.1; + (finish.key! as Doc).opacity = 0.1; + + observe(this.regiondata, change => { + if (change.type === "update") { + fadeIn.time = this.regiondata.position + this.regiondata.fadeIn; + fadeOut.time = this.regiondata.position + this.regiondata.duration - this.regiondata.fadeOut; + start.time = this.regiondata.position; + finish.time = this.regiondata.position + this.regiondata.duration; + this.regiondata.keyframes![this.regiondata.keyframes!.indexOf(fadeIn)] = fadeIn; + this.regiondata.keyframes![this.regiondata.keyframes!.indexOf(fadeOut)] = fadeOut; + this.regiondata.keyframes![this.regiondata.keyframes!.indexOf(start)] = start; + this.regiondata.keyframes![this.regiondata.keyframes!.indexOf(finish)] = finish; + this.forceUpdate(); + } + }); + } + + @action + makeKeyData = async (kfpos: number, type: KeyframeFunc.KeyframeType = KeyframeFunc.KeyframeType.default) => { //Kfpos is mouse offsetX, representing time + let doclist = (await DocListCastAsync(this.regiondata.keyframes))!; + let existingkf: (Doc | undefined) = undefined; + doclist.forEach(TK => { + TK = TK as Doc; + if (TK.time === kfpos) existingkf = TK; + }); + if (existingkf) return existingkf; + let TK: Doc = new Doc(); + TK.time = kfpos; + TK.key = Doc.MakeCopy(this.props.node, true); + TK.type = type; + this.regiondata.keyframes!.push(TK); + + let interpolationFunctions = new Doc(); + interpolationFunctions.interpolationX = new List([0, 1]); + interpolationFunctions.interpolationY = new List([0,100]); + interpolationFunctions.pathX = new List(); + interpolationFunctions.pathY = new List(); + + this.regiondata.functions!.push(interpolationFunctions); + let found:boolean = false; + this.regiondata.keyframes!.forEach(compkf => { + compkf = compkf as Doc; + if (kfpos < NumCast(compkf.time) && !found) { + runInAction(() => { + this.regiondata.keyframes!.splice(doclist.indexOf(compkf as Doc), 0, TK); + this.regiondata.keyframes!.pop(); + found = true; + }); + return; + } + }); + + let index = this.regiondata.keyframes!.indexOf(TK); + console.log(toJS(this.regiondata.keyframes!)); + + return TK; + } + + @action + onBarPointerDown = (e: React.PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + document.addEventListener("pointermove", this.onBarPointerMove); + document.addEventListener("pointerup", (e: PointerEvent) => { + document.removeEventListener("pointermove", this.onBarPointerMove); + }); + } + + + @action + onBarPointerMove = (e: PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + let left = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.left, this.regiondata, this.regions)!; + let right = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.right, this.regiondata, this.regions!); + let prevX = this.regiondata.position; + let futureX = this.regiondata.position + e.movementX; + if (futureX <= 0) { + this.regiondata.position = 0; + } else if ((left && left.position + left.duration >= futureX)) { + this.regiondata.position = left.position + left.duration; + } else if ((right && right.position <= futureX + this.regiondata.duration)) { + this.regiondata.position = right.position - this.regiondata.duration; + } else { + this.regiondata.position = futureX; + } + for (let i = 0; i < this.regiondata.keyframes!.length; i++) { + if ((this.regiondata.keyframes![i] as Doc).type !== KeyframeFunc.KeyframeType.fade) { + let movement = this.regiondata.position - prevX; + (this.regiondata.keyframes![i] as Doc).time = NumCast((this.regiondata.keyframes![i] as Doc).time) + movement; + } + } + this.forceUpdate(); + } + + @action + onResizeLeft = (e: React.PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + document.addEventListener("pointermove", this.onDragResizeLeft); + document.addEventListener("pointerup", () => { + document.removeEventListener("pointermove", this.onDragResizeLeft); + }); + } + + @action + onResizeRight = (e: React.PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + document.addEventListener("pointermove", this.onDragResizeRight); + document.addEventListener("pointerup", () => { + document.removeEventListener("pointermove", this.onDragResizeRight); + }); + } + + @action + onDragResizeLeft = (e: PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + let bar = this._bar.current!; + let offset = Math.round((e.clientX - bar.getBoundingClientRect().left) * this.props.transform.Scale); + let leftRegion = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.left, this.regiondata, this.regions); + let firstkf: (Doc | undefined) = this.firstKeyframe; + if (firstkf && this.regiondata.position + this.regiondata.fadeIn + offset >= NumCast(firstkf!.time)) { + let dif = NumCast(firstkf!.time) - (this.regiondata.position + this.regiondata.fadeIn); + this.regiondata.position = NumCast(firstkf!.time) - this.regiondata.fadeIn; + this.regiondata.duration -= dif; + } else if (this.regiondata.duration - offset < this.regiondata.fadeIn + this.regiondata.fadeOut) { // no keyframes, just fades + this.regiondata.position -= (this.regiondata.fadeIn + this.regiondata.fadeOut - this.regiondata.duration); + this.regiondata.duration = this.regiondata.fadeIn + this.regiondata.fadeOut; + } else if (leftRegion && this.regiondata.position + offset <= leftRegion.position + leftRegion.duration) { + let dif = this.regiondata.position - (leftRegion.position + leftRegion.duration); + this.regiondata.position = leftRegion.position + leftRegion.duration; + this.regiondata.duration += dif; + + } else { + this.regiondata.duration -= offset; + this.regiondata.position += offset; + } + } + + + @action + onDragResizeRight = (e: PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + let bar = this._bar.current!; + let offset = Math.round((e.clientX - bar.getBoundingClientRect().right) * this.props.transform.Scale); + let rightRegion = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.right, this.regiondata, this.regions); + if (this.lastKeyframe! && this.regiondata.position + this.regiondata.duration - this.regiondata.fadeOut + offset <= NumCast((this.lastKeyframe! as Doc).time)) { + let dif = this.regiondata.position + this.regiondata.duration - this.regiondata.fadeOut - NumCast((this.lastKeyframe! as Doc).time); + this.regiondata.duration -= dif; + } else if (this.regiondata.duration + offset < this.regiondata.fadeIn + this.regiondata.fadeOut) { // nokeyframes, just fades + this.regiondata.duration = this.regiondata.fadeIn + this.regiondata.fadeOut; + } else if (rightRegion && this.regiondata.position + this.regiondata.duration + offset >= rightRegion.position) { + let dif = rightRegion.position - (this.regiondata.position + this.regiondata.duration); + this.regiondata.duration += dif; + } else { + this.regiondata.duration += offset; + } + } + + createDivider = (type?: KeyframeFunc.Direction): JSX.Element => { + if (type === "left") { + return
; + } else if (type === "right") { + return
; + } + return
; + } + + @action + createKeyframe = async (e: React.MouseEvent) => { + e.preventDefault(); + e.stopPropagation(); + let bar = this._bar.current!; + let offset = Math.round((e.clientX - bar.getBoundingClientRect().left) * this.props.transform.Scale); + if (offset > this.regiondata.fadeIn && offset < this.regiondata.duration - this.regiondata.fadeOut) { //make sure keyframe is not created inbetween fades and ends + let position = NumCast(this.regiondata.position); + await this.makeKeyData(Math.round(position + offset)); + console.log(this.regiondata.keyframes!.length); + this.props.changeCurrentBarX(NumCast(Math.round(position + offset))); //first move the keyframe to the correct location and make a copy so the correct file gets coppied + } + } + + + @action + moveKeyframe = async (e: React.MouseEvent, kf: Doc) => { + e.preventDefault(); + e.stopPropagation(); + this.props.changeCurrentBarX(NumCast(kf.time!)); + } + + + @action + onKeyframeOver = (e: React.PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + this.props.node.backgroundColor = "#000000"; + + } + @action + private createKeyframeJSX = (kf: Doc, type = KeyframeFunc.KeyframeType.default) => { + if (type === KeyframeFunc.KeyframeType.default) { + return ( +
+ {this.createDivider()} +
{ this.moveKeyframe(e, kf as Doc); }} onContextMenu={(e: React.MouseEvent) => { + e.preventDefault(); + e.stopPropagation(); + }}>
+
); + } + return ( +
+ {this.createDivider()} +
+ ); + } + + onContainerOver = (e: React.PointerEvent, ref: React.RefObject) => { + e.preventDefault(); + e.stopPropagation(); + let div = ref.current!; + div.style.opacity = "1"; + } + + onContainerOut = (e: React.PointerEvent, ref: React.RefObject) => { + e.preventDefault(); + e.stopPropagation(); + let div = ref.current!; + div.style.opacity = "0"; + } + + + private _reac: (undefined | IReactionDisposer) = undefined; + private _plotList: ([string, StrokeData] | undefined) = undefined; + private _interpolationKeyframe: (Doc | undefined) = undefined; + private _type: string = ""; + + @action + onContainerDown = (e: React.MouseEvent, kf: Doc) => { + e.preventDefault(); + e.stopPropagation(); + let listenerCreated = false; + let type = prompt("Type? (interpolate or path)"); + if (type) { + if (type !== "interpolate" && type !=="path") { + alert("Wrong type. Try again."); + return; + } + this._type = type; + this.props.collection.backgroundColor = "rgb(0,0,0)"; + this._reac = reaction(() => { + return this.inks; + }, data => { + if (!listenerCreated) { + this._plotList = Array.from(data!)[data!.size - 1]!; + this._interpolationKeyframe = kf; + document.addEventListener("pointerup", this.onReactionListen); + listenerCreated = true; + } + }); + } + + } + + + + + @action + onReactionListen = (e: PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + let message = prompt("GRAPHING MODE: Enter gain"); + if (message) { + let messageContent = parseInt(message, 10); + if (messageContent === NaN) { + this._gain = Infinity; + } else { + this._gain = messageContent; + } + + } + if (this._reac && this._plotList && this._interpolationKeyframe) { + this.props.collection.backgroundColor = "#FFF"; + this._reac(); + let xPlots = new List(); + let yPlots = new List(); + let maxY = 0; + let minY = Infinity; + let pathData = this._plotList![1].pathData; + for (let i = 0; i < pathData.length - 1;) { + let val = pathData[i]; + if (val.y > maxY) { + maxY = val.y; + } + if (val.y < minY) { + minY = val.y; + } + xPlots.push(val.x); + yPlots.push(val.y); + let increment = Math.floor(pathData.length / this._gain); + if (pathData.length > this._gain) { + if (i + increment < pathData.length) { + i = i + increment; + } else { + i = pathData.length - 1; + } + } else { + i++; + } + } + let index = this.keyframes.indexOf(this._interpolationKeyframe!); + if (this._type === "interpolate"){ + (Cast(this.regiondata.functions![index], Doc) as Doc).interpolationX = xPlots; + (Cast(this.regiondata.functions![index], Doc) as Doc).interpolationY = yPlots; + } else if (this._type === "path") { + (Cast(this.regiondata.functions![index], Doc) as Doc).pathX = xPlots; + (Cast(this.regiondata.functions![index], Doc) as Doc).pathY = yPlots; + } + + this._reac = undefined; + this._interpolationKeyframe = undefined; + this._plotList = undefined; + this._type = ""; + document.removeEventListener("pointerup", this.onReactionListen); + } + } + + + render() { + return ( +
+
{ + e.preventDefault(); + e.stopPropagation(); + console.log("has been clicked!"); + let offsetLeft = this._bar.current!.getBoundingClientRect().left - this._bar.current!.parentElement!.getBoundingClientRect().left; + let offsetTop = this._bar.current!.getBoundingClientRect().top; //+ this._bar.current!.parentElement!.getBoundingClientRect().top; + this.props.setFlyout({ x: offsetLeft * this.props.transform.Scale, y: offsetTop * this.props.transform.Scale, display: "block", regiondata: this.regiondata, regions: this.regions }); + })}> +
+
+ {this.regiondata.keyframes!.map(kf => { + return this.createKeyframeJSX(kf as Doc, (kf! as Doc).type as KeyframeFunc.KeyframeType); + })} + {this.keyframes.map( kf => { + if(this.keyframes.indexOf(kf) !== this.keyframes.length - 1) { + + let left = this.keyframes[this.keyframes.indexOf(kf) + 1]; + let bodyRef = React.createRef(); + return ( +
{ this.onContainerOver(e, bodyRef); }} + onPointerOut={(e) => { this.onContainerOut(e, bodyRef); }} + onContextMenu={(e) => { this.onContainerDown(e, kf); }}> +
+ ); + } + })} + +
+
+ ); + } +} \ No newline at end of file diff --git a/src/client/views/animationtimeline/Timeline.scss b/src/client/views/animationtimeline/Timeline.scss new file mode 100644 index 000000000..47f448adb --- /dev/null +++ b/src/client/views/animationtimeline/Timeline.scss @@ -0,0 +1,170 @@ +@import "./../globalCssVariables.scss"; + +.minimize{ + position:relative; + z-index: 1000; + height: 30px; + width: 100px; +} +.flyout-container{ + background-color: transparent; + position:absolute; + + z-index:9999; + height: 150px; + width: 150px; + + .flyout{ + background-color: transparent; + transform: rotate(180deg); + left:0px; + top:0px; + width: 100%; + height: 100%; + } + .input-container{ + position: absolute; + right:0px; + top: 30px; + width: 70px; + input{ + width: 100%; + } + } + .text-container{ + position:absolute; + top:30px; + left:0px; + color:white + } +} + +.placement-highlight{ + background-color:blue; + transform: translate(0px, 0px); + transition: width 1000ms ease-in-out; + transition: height 1000ms ease-in-out; + position: absolute; +} + +.timeline-container{ + width:100%; + height:300px; + position:absolute; + background-color: $light-color-secondary; + box-shadow: 0px 10px 20px; + //transition: transform 1000ms ease-in-out; + + .toolbox{ + position:absolute; + width: 100%; + top: 10px; + left: 20px; + div{ + float:left; + margin-left: 10px; + position:relative; + .overview{ + width: 200px; + height: 100%; + background-color: black; + position:absolute; + } + } + } + .info-container{ + margin-top: 50px; + right:20px; + position:absolute; + height: calc(100% - 100px); + width: calc(100% - 140px); + overflow: hidden; + + .scrubberbox{ + position:absolute; + background-color: transparent; + height: 30px; + width:100%; + + .tick{ + height:100%; + width: 1px; + background-color:black; + + } + } + .scrubber{ + top:30px; + height: 100%; + width: 2px; + position:absolute; + z-index: 1001; + background-color:black; + .scrubberhead{ + top: -30px; + height: 30px; + width: 30px; + background-color:transparent; + border-radius: 50%; + border: 5px solid black; + left: -15px; + position:absolute; + } + } + + .trackbox{ + top: 30px; + height:calc(100% - 30px); + width:100%; + border:1px; + overflow:hidden; + background-color:white; + position:absolute; + box-shadow: -10px 0px 10px 10px grey; + } + + } + .title-container{ + margin-top: 80px; + margin-left: 20px; + height: calc(100% - 100px - 30px); + width: 100px; + background-color:white; + overflow: hidden; + .datapane{ + top:0px; + width: 100px; + height: 75px; + border: 1px solid $dark-color; + background-color: $intermediate-color; + color: white; + position:relative; + float:left; + border-style:solid; + } + } + .resize{ + bottom: 5px; + position:absolute; + height: 30px; + width: 50px; + left: calc(50% - 25px); + } +} + + + +.overview{ + position: absolute; + height: 50px; + width: 200px; + background-color: black; + .container{ + position: absolute; + float: left 0px; + top: 25%; + height: 75%; + width: 100%; + background-color: grey; + } +} \ No newline at end of file diff --git a/src/client/views/animationtimeline/Timeline.tsx b/src/client/views/animationtimeline/Timeline.tsx new file mode 100644 index 000000000..d2714592e --- /dev/null +++ b/src/client/views/animationtimeline/Timeline.tsx @@ -0,0 +1,530 @@ +import * as React from "react"; +import "./Timeline.scss"; +import { CollectionSubView } from "../collections/CollectionSubView"; +import { Document, listSpec } from "../../../new_fields/Schema"; +import { observer } from "mobx-react"; +import { Track } from "./Track"; +import { observable, reaction, action, IReactionDisposer, observe, IObservableArray, computed, toJS, Reaction, IObservableObject, trace, autorun, runInAction } from "mobx"; +import { Cast, NumCast, FieldValue, StrCast } from "../../../new_fields/Types"; +import { List } from "../../../new_fields/List"; +import { Doc, DocListCast } from "../../../new_fields/Doc"; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { faPlayCircle, faBackward, faForward, faGripLines, faArrowUp, faArrowDown, faClock, faPauseCircle } from "@fortawesome/free-solid-svg-icons"; +import { ContextMenuProps } from "../ContextMenuItem"; +import { ContextMenu } from "../ContextMenu"; +import { DocumentManager } from "../../util/DocumentManager"; +import { VideoBox } from "../nodes/VideoBox"; +import { VideoField } from "../../../new_fields/URLField"; +import { CollectionVideoView } from "../collections/CollectionVideoView"; +import { Transform } from "../../util/Transform"; +import { faGrinTongueSquint } from "@fortawesome/free-regular-svg-icons"; +import { InkField } from "../../../new_fields/InkField"; +import { AddComparisonParameters } from "../../northstar/model/idea/idea"; +import { keepAlive } from "mobx-utils"; + + +export interface FlyoutProps { + x?: number; + y?: number; + display?: string; + regiondata?: Doc; + regions?: List; +} + + +@observer +export class Timeline extends CollectionSubView(Document) { + private readonly DEFAULT_CONTAINER_HEIGHT: number = 300; + private readonly DEFAULT_TICK_SPACING: number = 50; + private readonly MIN_CONTAINER_HEIGHT: number = 205; + private readonly MAX_CONTAINER_HEIGHT: number = 800; + private readonly DEFAULT_TICK_INCREMENT: number = 1000; + + @observable private _isMinimized = false; + @observable private _tickSpacing = this.DEFAULT_TICK_SPACING; + @observable private _tickIncrement = this.DEFAULT_TICK_INCREMENT; + + @observable private _scrubberbox = React.createRef(); + @observable private _scrubber = React.createRef(); + @observable private _trackbox = React.createRef(); + @observable private _titleContainer = React.createRef(); + @observable private _timelineContainer = React.createRef(); + + @observable private _timelineWrapper = React.createRef(); + @observable private _infoContainer = React.createRef(); + + + @observable private _currentBarX: number = 0; + @observable private _windSpeed: number = 1; + @observable private _isPlaying: boolean = false; //scrubber playing + @observable private _isFrozen: boolean = false; //timeline freeze + @observable private _boxLength: number = 0; + @observable private _containerHeight: number = this.DEFAULT_CONTAINER_HEIGHT; + @observable private _time = 100000; //DEFAULT + @observable private _ticks: number[] = []; + @observable private _playButton = faPlayCircle; + @observable private flyoutInfo: FlyoutProps = { x: 0, y: 0, display: "none", regiondata: new Doc(), regions: new List() }; + + @computed + private get children(): List { + let extendedDocument = ["image", "video", "pdf"].includes(StrCast(this.props.Document.type)); + + if (extendedDocument) { + if (this.props.Document.data_ext) { + return Cast((Cast(this.props.Document.data_ext, Doc) as Doc).annotations, listSpec(Doc)) as List; + } else { + return new List(); + } + } + return Cast(this.props.Document[this.props.fieldKey], listSpec(Doc)) as List; + } + + @computed + private get inks(){ + if (this.props.Document.data_ext){ + let data_ext = Cast(this.props.Document.data_ext, Doc) as Doc; + let ink = Cast(data_ext.ink, InkField) as InkField; + if (ink){ + return ink.inkData; + } + } + } + + + componentDidMount() { + if (StrCast(this.props.Document.type) === "video") { + console.log("ran"); + console.log(this.props.Document.duration); + if (this.props.Document.duration) { + this._time = Math.round(NumCast(this.props.Document.duration)) * 1000; + + reaction(() => { + return NumCast(this.props.Document.curPage); + }, curPage => { + this.changeCurrentBarX(curPage * this._tickIncrement / this._tickSpacing); + }); + + } + + } + runInAction(() => { + + reaction(() => { + return this._time; + }, () => { + this._ticks = []; + for (let i = 0; i < this._time;) { + this._ticks.push(i); + i += this._tickIncrement; + } + let trackbox = this._trackbox.current!; + this._boxLength = this._tickIncrement / 1000 * this._tickSpacing * this._ticks.length; + trackbox.style.width = `${this._boxLength}`; + this._scrubberbox.current!.style.width = `${this._boxLength}`; + }, { fireImmediately: true }); + }); + } + + @action + changeCurrentBarX = (x: number) => { + this._currentBarX = x; + } + + //for playing + @action + onPlay = async (e: React.MouseEvent) => { + if (this._isPlaying) { + this._isPlaying = false; + this._playButton = faPlayCircle; + } else { + this._isPlaying = true; + this._playButton = faPauseCircle; + this.changeCurrentX(); + } + } + + @action + changeCurrentX = () => { + if (this._currentBarX === this._boxLength && this._isPlaying) { + this._currentBarX = 0; + } + if (this._currentBarX <= this._boxLength && this._isPlaying) { + this._currentBarX = this._currentBarX + this._windSpeed; + setTimeout(this.changeCurrentX, 15); + } + } + + @action + windForward = (e: React.MouseEvent) => { + if (this._windSpeed < 64) { //max speed is 32 + this._windSpeed = this._windSpeed * 2; + } + } + + @action + windBackward = (e: React.MouseEvent) => { + if (this._windSpeed > 1 / 16) { // min speed is 1/8 + this._windSpeed = this._windSpeed / 2; + } + } + + //for scrubber action + @action + onScrubberDown = (e: React.PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + document.addEventListener("pointermove", this.onScrubberMove); + document.addEventListener("pointerup", () => { + document.removeEventListener("pointermove", this.onScrubberMove); + }); + } + + @action + onScrubberMove = (e: PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + let scrubberbox = this._scrubberbox.current!; + let left = scrubberbox.getBoundingClientRect().left; + let offsetX = Math.round(e.clientX - left) * this.props.ScreenToLocalTransform().Scale; + this._currentBarX = offsetX; + } + + @action + onScrubberClick = (e: React.MouseEvent) => { + e.preventDefault(); + e.stopPropagation(); + let scrubberbox = this._scrubberbox.current!; + let offset = (e.clientX - scrubberbox.getBoundingClientRect().left) * this.props.ScreenToLocalTransform().Scale; + this._currentBarX = offset; + } + + + + @action + onPanDown = (e: React.PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + document.addEventListener("pointermove", this.onPanMove); + document.addEventListener("pointerup", () => { + document.removeEventListener("pointermove", this.onPanMove); + }); + } + + @action + onPanMove = (e: PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + let infoContainer = this._infoContainer.current!; + let trackbox = this._trackbox.current!; + let titleContainer = this._titleContainer.current!; + infoContainer.scrollLeft = infoContainer.scrollLeft - e.movementX; + trackbox.scrollTop = trackbox.scrollTop - e.movementY; + titleContainer.scrollTop = titleContainer.scrollTop - e.movementY; + } + + + @action + onResizeDown = (e: React.PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + document.addEventListener("pointermove", this.onResizeMove); + document.addEventListener("pointerup", () => { + document.removeEventListener("pointermove", this.onResizeMove); + }); + } + + @action + onResizeMove = (e: PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + let offset = e.clientY - this._timelineContainer.current!.getBoundingClientRect().bottom; + if (this._containerHeight + offset <= this.MIN_CONTAINER_HEIGHT) { + this._containerHeight = this.MIN_CONTAINER_HEIGHT; + } else if (this._containerHeight + offset >= this.MAX_CONTAINER_HEIGHT) { + this._containerHeight = this.MAX_CONTAINER_HEIGHT; + } else { + this._containerHeight += offset; + } + } + + @action + onTimelineDown = (e: React.PointerEvent) => { + e.preventDefault(); + if (e.nativeEvent.which === 1 && !this._isFrozen) { + document.addEventListener("pointermove", this.onTimelineMove); + document.addEventListener("pointerup", () => { document.removeEventListener("pointermove", this.onTimelineMove); }); + } + } + + @action + onTimelineMove = (e: PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + let timelineContainer = this._timelineWrapper.current!; + let left = parseFloat(timelineContainer.style.left!); + let top = parseFloat(timelineContainer.style.top!); + timelineContainer.style.left = `${left + e.movementX}px`; + timelineContainer.style.top = `${top + e.movementY}px`; + } + + @action + minimize = (e: React.MouseEvent) => { + e.preventDefault(); + e.stopPropagation(); + let timelineContainer = this._timelineContainer.current!; + if (this._isMinimized) { + this._isMinimized = false; + timelineContainer.style.visibility = "visible"; + } else { + this._isMinimized = true; + timelineContainer.style.visibility = "hidden"; + } + } + + @action + toTime = (time: number): string => { + const inSeconds = time / 1000; + let min: (string | number) = Math.floor(inSeconds / 60); + let sec: (string | number) = inSeconds % 60; + + if (Math.floor(sec / 10) === 0) { + sec = "0" + sec; + } + return `${min}:${sec}`; + } + + + private _freezeText = "Freeze Timeline"; + + timelineContextMenu = (e: React.MouseEvent): void => { + let subitems: ContextMenuProps[] = []; + let timelineContainer = this._timelineWrapper.current!; + subitems.push({ + description: "Pin to Top", event: action(() => { + if (!this._isFrozen) { + timelineContainer.style.transition = "top 1000ms ease-in, left 1000ms ease-in"; //????? + timelineContainer.style.left = "0px"; + timelineContainer.style.top = "0px"; + timelineContainer.style.transition = "none"; + } + }), icon: faArrowUp + }); + subitems.push({ + description: "Pin to Bottom", event: action(() => { + console.log(this.props.Document.y); + + if (!this._isFrozen) { + timelineContainer.style.transform = `translate(0px, ${e.pageY - this._containerHeight}px)`; + } + }), icon: faArrowDown + }); + subitems.push({ + description: this._freezeText, event: action(() => { + if (this._isFrozen) { + this._isFrozen = false; + this._freezeText = "Freeze Timeline"; + } else { + this._isFrozen = true; + this._freezeText = "Unfreeze Timeline"; + } + }), icon: "thumbtack" + }); + ContextMenu.Instance.addItem({ description: "Timeline Funcs...", subitems: subitems, icon: faClock }); + } + + + + @action + getFlyout = (props: FlyoutProps) => { + for (const [k, v] of Object.entries(props)) { + (this.flyoutInfo as any)[k] = v; + } + console.log(this.flyoutInfo); + } + + render() { + return ( +
+ +
+ +
+
+
+
+
+
+
+ {this._ticks.map(element => { + return

{this.toTime(element)}

; + })} +
+
+
+
+
+ {DocListCast(this.children).map(doc => )} +
+
+
+ {DocListCast(this.children).map(doc =>

{doc.title}

)} +
+
+ +
+
+
+ ); + } + +} + + +interface TimelineFlyoutProps { + flyoutInfo: FlyoutProps; + tickSpacing: number; + +} + +interface TimelineOverviewProps { + currentBarX: number; +} + +class TimelineOverview extends React.Component{ + + componentWillMount() { + + } + + render() { + return ( +
+
+
+
+
+
+
+ ); + } +} + +class TimelineFlyout extends React.Component{ + + @observable private _timeInput = React.createRef(); + @observable private _durationInput = React.createRef(); + @observable private _fadeInInput = React.createRef(); + @observable private _fadeOutInput = React.createRef(); + @observable private _data: FlyoutProps = { x: 0, y: 0, display: "none", regiondata: new Doc(), regions: new List() }; + + private block = false; + + componentDidMount() { + + document.addEventListener("pointerdown", this.closeFlyout); + } + + + componentWillUnmount() { + document.removeEventListener("pointerdown", this.closeFlyout); + } + + + @action + changeTime = (e: React.KeyboardEvent) => { + let time = this._timeInput.current!; + if (e.keyCode === 13) { + if (!Number.isNaN(Number(time.value))) { + this.props.flyoutInfo.regiondata!.position = Number(time.value) / 1000 * this.props.tickSpacing; + time.placeholder = time.value + "ms"; + time.value = ""; + } + } + } + @action + onFlyoutDown = (e: React.PointerEvent) => { + this._data.display = "block"; + this.block = true; + } + + @action + closeFlyout = (e: PointerEvent) => { + if (this.block) { + this.block = false; + return; + } + this._data.display = "none"; + } + + @action + changeDuration = (e: React.KeyboardEvent) => { + let duration = this._durationInput.current!; + if (e.keyCode === 13) { + if (!Number.isNaN(Number(duration.value))) { + this.props.flyoutInfo.regiondata!.duration = Number(duration.value) / 1000 * this.props.tickSpacing; + duration.placeholder = duration.value + "ms"; + duration.value = ""; + } + } + } + + @action + changeFadeIn = (e: React.KeyboardEvent) => { + let fadeIn = this._fadeInInput.current!; + if (e.keyCode === 13) { + if (!Number.isNaN(Number(fadeIn.value))) { + this.props.flyoutInfo.regiondata!.fadeIn = Number(fadeIn.value); + fadeIn.placeholder = fadeIn.value + "ms"; + fadeIn.value = ""; + } + } + } + + @action + changeFadeOut = (e: React.KeyboardEvent) => { + let fadeOut = this._fadeOutInput.current!; + if (e.keyCode === 13) { + if (!Number.isNaN(Number(fadeOut.value))) { + this.props.flyoutInfo.regiondata!.fadeOut = Number(fadeOut.value); + fadeOut.placeholder = fadeOut.value + "ms"; + fadeOut.value = ""; + } + } + } + + render() { + return ( +
+
+ +
+

Time:

+

Duration:

+

Fade-in

+

Fade-out

+
+
+ + + + +
+ +
+
+ ); + } +} + +class TimelineZoom extends React.Component { + componentDidMount() { + + } + render() { + return ( +
+ +
+ ); + } +} \ No newline at end of file diff --git a/src/client/views/animationtimeline/TimelineMenu.scss b/src/client/views/animationtimeline/TimelineMenu.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/client/views/animationtimeline/TimelineMenu.tsx b/src/client/views/animationtimeline/TimelineMenu.tsx new file mode 100644 index 000000000..e82075f6a --- /dev/null +++ b/src/client/views/animationtimeline/TimelineMenu.tsx @@ -0,0 +1,47 @@ + +import * as React from "react"; + + +/** + * TimelineMenu: + * + * + * Timeline: + * - + * + * + * Keyframe: + * - Delete keyframe + * - Move keyframe + * - Edit keyframe (shows schema) + * + * + * Region: + * - Add Keyframe + * - Copy Interpolation + * - Copy path + * - Add Interpolation + * - Add Path + * - Change fades + * - position region + * - duration region + * - + */ +export class TimelineMenu extends React.Component { + public static Instance:TimelineMenu; + + constructor (props:Readonly<{}>){ + super(props); + TimelineMenu.Instance = this; + } + + + + + render() { + return ( +
+ ); + } + +} \ No newline at end of file diff --git a/src/client/views/animationtimeline/Track.scss b/src/client/views/animationtimeline/Track.scss new file mode 100644 index 000000000..c8d56edf6 --- /dev/null +++ b/src/client/views/animationtimeline/Track.scss @@ -0,0 +1,15 @@ +@import "./../globalCssVariables.scss"; + +.track-container{ + + .track { + .inner { + top:0px; + height: 75px; + width: calc(100%); + background-color: $light-color; + border: 1px solid $dark-color; + position:relative; + } + } +} \ No newline at end of file diff --git a/src/client/views/animationtimeline/Track.tsx b/src/client/views/animationtimeline/Track.tsx new file mode 100644 index 000000000..4f78f86b8 --- /dev/null +++ b/src/client/views/animationtimeline/Track.tsx @@ -0,0 +1,276 @@ +import * as React from "react"; +import { observer } from "mobx-react"; +import { observable, reaction, action, IReactionDisposer, observe, IObservableArray, computed, toJS, IObservableObject, runInAction, autorun } from "mobx"; +import "./Track.scss"; +import { Doc, DocListCastAsync, DocListCast, Field } from "../../../new_fields/Doc"; +import { listSpec } from "../../../new_fields/Schema"; +import { FieldValue, Cast, NumCast, BoolCast, StrCast } from "../../../new_fields/Types"; +import { List } from "../../../new_fields/List"; +import { Keyframe, KeyframeFunc, RegionData } from "./Keyframe"; +import { FlyoutProps } from "./Timeline"; +import { Transform } from "../../util/Transform"; +import { AddComparisonParameters } from "../../northstar/model/idea/idea"; +import { CollectionSchemaBooleanCell } from "../collections/CollectionSchemaCells"; +import { DocumentManager } from "../../util/DocumentManager"; +import { DocumentView } from "../nodes/DocumentView"; +import { RichTextField } from "../../../new_fields/RichTextField"; + +interface IProps { + node: Doc; + currentBarX: number; + transform: Transform; + collection: Doc; + changeCurrentBarX: (x: number) => void; + setFlyout: (props: FlyoutProps) => any; +} + +@observer +export class Track extends React.Component { + @observable private _inner = React.createRef(); + @observable private _reactionDisposers: IReactionDisposer[] = []; + @observable private _keyReaction: any; //reaction that is used to dispose when necessary + @observable private _currentBarXReaction: any; + + @computed + private get regions() { + return Cast(this.props.node.regions, listSpec(Doc)) as List; + } + + componentWillMount() { + if (!this.props.node.regions) { + this.props.node.regions = new List(); + } + this.props.node.opacity = 1; + } + + componentDidMount() { + runInAction(() => { + this._currentBarXReaction = this.currentBarXReaction(); + if (this.regions.length === 0) this.createRegion(this.props.currentBarX); + this.props.node.hidden = false; + }); + } + + componentWillUnmount() { + runInAction(() => { + if (this._keyReaction) this._keyReaction(); + if (this._currentBarXReaction) this._currentBarXReaction(); + }); + } + + @action + keyReaction = () => { + return reaction( () => { + return Doc.allKeys(this.props.node).map(key => FieldValue(this.props.node[key])); + }, async () => { + console.log("rAN"); + let regiondata: (Doc | undefined) = await this.findRegion(this.props.currentBarX) ; + if (regiondata) { + let keyframes = await DocListCastAsync((regiondata as Doc).keyframes!); + keyframes!.forEach( async (kf) => { + if (kf.type === KeyframeFunc.KeyframeType.default && kf.time === this.props.currentBarX) { + console.log("full keychange triggered"); + //for this specific keyframe + kf.key = Doc.MakeCopy(this.props.node, true); + + //for fades + let leftkf: (Doc | undefined) = await KeyframeFunc.calcMinLeft(regiondata!, this.props.currentBarX, kf); // lef keyframe, if it exists + let rightkf: (Doc | undefined) = await KeyframeFunc.calcMinRight(regiondata!, this.props.currentBarX, kf); //right keyframe, if it exists + if (leftkf!.type === KeyframeFunc.KeyframeType.fade) { //replicating this keyframe to fades + let edge:(Doc | undefined) = await KeyframeFunc.calcMinLeft(regiondata!, this.props.currentBarX, leftkf!); + edge!.key = Doc.MakeCopy(kf.key as Doc, true); + leftkf!.key = Doc.MakeCopy(kf.key as Doc, true); + (Cast(edge!.key, Doc)! as Doc).opacity = 0.1; + (Cast(leftkf!.key, Doc)! as Doc).opacity = 1; + } + if (rightkf!.type === KeyframeFunc.KeyframeType.fade) { + let edge:(Doc | undefined) = await KeyframeFunc.calcMinRight(regiondata!,this.props.currentBarX, rightkf!); + edge!.key = Doc.MakeCopy(kf.key as Doc, true); + rightkf!.key = Doc.MakeCopy(kf.key as Doc, true); + (Cast(edge!.key, Doc)! as Doc).opacity = 0.1; + (Cast(rightkf!.key, Doc)! as Doc).opacity = 1; + } + } + }); + } + }, {fireImmediately: true}); + } + + @action + currentBarXReaction = () => { + return reaction(() => this.props.currentBarX, async () => { + if (this._keyReaction) this._keyReaction(); //dispose previous reaction first + let regiondata: (Doc | undefined) = await this.findRegion(this.props.currentBarX); + if (regiondata) { + this.props.node.hidden = false; + await this.timeChange(this.props.currentBarX); + } else { + this.props.node.hidden = true; + } + }, { fireImmediately: true }); + } + + + @action + timeChange = async (time: number) => { + let regiondata = await this.findRegion(Math.round(time)); //finds a region that the scrubber is on + if (regiondata) { + let leftkf: (Doc | undefined) = await KeyframeFunc.calcMinLeft(regiondata, this.props.currentBarX); // lef keyframe, if it exists + let rightkf: (Doc | undefined) = await KeyframeFunc.calcMinRight(regiondata, this.props.currentBarX); //right keyframe, if it exists + let currentkf: (Doc | undefined) = await this.calcCurrent(regiondata); //if the scrubber is on top of the keyframe + if (currentkf) { + await this.applyKeys(currentkf); + this._keyReaction = this.keyReaction(); //reactivates reaction. + } else if (leftkf && rightkf) { + await this.interpolate(leftkf, rightkf, regiondata); + } + } + } + + @action + private applyKeys = async (kf: Doc) => { + let kfNode = await Cast(kf.key, Doc) as Doc; + let docFromApply = kfNode; + if (this.filterKeys(Doc.allKeys(this.props.node)).length > this.filterKeys(Doc.allKeys(kfNode)).length) docFromApply = this.props.node; + this.filterKeys(Doc.allKeys(docFromApply)).forEach(key => { + if (key === "type") { + if (this.props.node[key] === "text") { + this.props.node.dataDocTest = new RichTextField(StrCast(kfNode.stateData)); + console.log("updated"); + } + } + if (!kfNode[key]) { + this.props.node[key] = undefined; + } else { + this.props.node[key] = kfNode[key]; + } + }); + } + + + @action + private filterKeys = (keys: string[]): string[] => { + return keys.reduce((acc: string[], key: string) => { + if (key !== "regions" && key !== "data" && key !== "creationDate" && key !== "cursors" && key !== "hidden" && key !== "nativeHeight" && key !== "nativeWidth" && key !== "schemaColumns") acc.push(key); + return acc; + }, []) as string[]; + } + + @action + calcCurrent = async (region: Doc) => { + let currentkf: (Doc | undefined) = undefined; + let keyframes = await DocListCastAsync(region.keyframes!); + keyframes!.forEach((kf) => { + if (NumCast(kf.time) === Math.round(this.props.currentBarX)) currentkf = kf; + }); + return currentkf; + } + + @action + interpolate = async (left: Doc, right: Doc, regiondata:Doc) => { + console.log("interpolating"); + let leftNode = left.key as Doc; + let rightNode = right.key as Doc; + const dif_time = NumCast(right.time) - NumCast(left.time); + const timeratio = (this.props.currentBarX - NumCast(left.time)) / dif_time; //linear + let keyframes = (await DocListCastAsync(regiondata.keyframes!))!; + let indexLeft = keyframes.indexOf(left); + let interY:List = await ((regiondata.functions as List)[indexLeft] as Doc).interpolationY as List; + let realIndex = (interY.length - 1) * timeratio; + let xIndex = Math.floor(realIndex); + let yValue = interY[xIndex]; + let secondYOffset:number = yValue; + let minY = interY[0]; // for now + let maxY = interY[interY.length - 1]; //for now + if (interY.length !== 1) { + secondYOffset = interY[xIndex] + ((realIndex - xIndex) / 1) * (interY[xIndex + 1] - interY[xIndex]) - minY; + } + let finalRatio = secondYOffset / (maxY - minY); + let pathX:List = await ((regiondata.functions as List)[indexLeft] as Doc).pathX as List; + let pathY:List = await ((regiondata.functions as List)[indexLeft] as Doc).pathY as List; + let proposedX = 0; + let proposedY = 0; + if (pathX.length !== 0) { + let realPathCorrespondingIndex = finalRatio * (pathX.length - 1); + let pathCorrespondingIndex = Math.floor(realPathCorrespondingIndex); + if (pathCorrespondingIndex >= pathX.length - 1) { + proposedX = pathX[pathX.length - 1]; + proposedY = pathY[pathY.length - 1]; + } else if (pathCorrespondingIndex < 0){ + proposedX = pathX[0]; + proposedY = pathY[0]; + } else { + proposedX = pathX[pathCorrespondingIndex] + ((realPathCorrespondingIndex - pathCorrespondingIndex) / 1) * (pathX[pathCorrespondingIndex + 1] - pathX[pathCorrespondingIndex]); + proposedY = pathY[pathCorrespondingIndex] + ((realPathCorrespondingIndex - pathCorrespondingIndex) / 1) * (pathY[pathCorrespondingIndex + 1] - pathY[pathCorrespondingIndex]); + } + + } + + + this.filterKeys(Doc.allKeys(leftNode)).forEach(key => { + if (leftNode[key] && rightNode[key] && typeof (leftNode[key]) === "number" && typeof (rightNode[key]) === "number") { //if it is number, interpolate + if ((key === "x" || key === "y") && pathX.length !== 0){ + if (key === "x") this.props.node[key] = proposedX; + if (key === "y") this.props.node[key] = proposedY; + console.log(pathX.length); + + } else { + const diff = NumCast(rightNode[key]) - NumCast(leftNode[key]); + const adjusted = diff * finalRatio; + this.props.node[key] = NumCast(leftNode[key]) + adjusted; + } + } else { + this.props.node[key] = leftNode[key]; + } + }); + } + + @action + findRegion = async (time: number) => { + let foundRegion:(Doc | undefined) = undefined; + let regions = await DocListCastAsync(this.regions); + regions!.forEach(region => { + region = region as RegionData; + if (time >= NumCast(region.position) && time <= (NumCast(region.position) + NumCast(region.duration))) { + foundRegion = region; + } + }); + return foundRegion; + } + + @action + onInnerDoubleClick = (e: React.MouseEvent) => { + let inner = this._inner.current!; + let offsetX = Math.round((e.clientX - inner.getBoundingClientRect().left) * this.props.transform.Scale); + this.createRegion(offsetX); + } + + createRegion = (position: number) => { + let regiondata = KeyframeFunc.defaultKeyframe(); + regiondata.position = position; + let leftRegion = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.left, regiondata, this.regions); + let rightRegion = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.right, regiondata, this.regions); + if ((rightRegion && leftRegion && rightRegion.position - (leftRegion.position + leftRegion.duration) < NumCast(regiondata.fadeIn) + NumCast(regiondata.fadeOut)) || (rightRegion && rightRegion.position - regiondata.position < NumCast(regiondata.fadeIn) + NumCast(regiondata.fadeOut))) { + return; + } else if (rightRegion && rightRegion.position - regiondata.position >= NumCast(regiondata.fadeIn) + NumCast(regiondata.fadeOut)) { + regiondata.duration = rightRegion.position - regiondata.position; + } + this.regions.push(regiondata); + return regiondata; + } + + + render() { + return ( +
+
+
+ {DocListCast(this.regions).map((region) => { + return ; + })} +
+
+
+ ); + } +} \ No newline at end of file diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index a63994e6e..676a49288 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -27,7 +27,7 @@ import "./CollectionFreeFormView.scss"; import { MarqueeView } from "./MarqueeView"; import React = require("react"); import v5 = require("uuid/v5"); -import { Timeline } from "../../nodes/Timeline"; +import { Timeline } from "../../animationtimeline/Timeline"; import { ScriptField } from "../../../../new_fields/ScriptField"; import { OverlayView, OverlayElementOptions } from "../../OverlayView"; import { ScriptBox } from "../../ScriptBox"; diff --git a/src/client/views/graph/Graph.tsx b/src/client/views/graph/Graph.tsx new file mode 100644 index 000000000..864bb8f46 --- /dev/null +++ b/src/client/views/graph/Graph.tsx @@ -0,0 +1,17 @@ +import * as React from "react"; +import { CollectionFreeFormView } from "../collections/collectionFreeForm/CollectionFreeFormView"; + +export class Graph extends React.Component { + + + + + + + + render() { + return ( + ) + } + +} \ No newline at end of file diff --git a/src/client/views/graph/GraphManager.ts b/src/client/views/graph/GraphManager.ts new file mode 100644 index 000000000..9d62b1ef8 --- /dev/null +++ b/src/client/views/graph/GraphManager.ts @@ -0,0 +1,45 @@ + + +import {Graph} from "./Graph"; +import {observable, computed} from 'mobx'; +import { Dictionary } from "typescript-collections"; +import { string } from "prop-types"; +import { Doc } from "../../../new_fields/Doc"; + + +export class GraphManager { + @observable public Graphs: Graph[] = []; + + @observable public GraphData: Doc = new Doc(); + + private static _instance: GraphManager; + + @computed + public static get Instance():GraphManager { + return this._instance || (this._instance = new this()); + } + + private constructor(){ + + } + + + + + public set addGraph(graph:Graph){ + this.Graphs.push(graph); + } + + + defaultGraphs = () => { + this.GraphData.linear = ; + } + + + + + + + + +} \ No newline at end of file diff --git a/src/client/views/graph/GraphMenu.tsx b/src/client/views/graph/GraphMenu.tsx new file mode 100644 index 000000000..e69de29bb diff --git a/src/client/views/nodes/FormattedTextBox.tsx b/src/client/views/nodes/FormattedTextBox.tsx index f019868aa..9b37a6491 100644 --- a/src/client/views/nodes/FormattedTextBox.tsx +++ b/src/client/views/nodes/FormattedTextBox.tsx @@ -1,6 +1,6 @@ import { library } from '@fortawesome/fontawesome-svg-core'; import { faEdit, faSmile, faTextHeight } from '@fortawesome/free-solid-svg-icons'; -import { action, IReactionDisposer, observable, reaction, runInAction, computed, trace } from "mobx"; +import { action, IReactionDisposer, observable, reaction, runInAction, computed, trace, toJS } from "mobx"; import { observer } from "mobx-react"; import { baseKeymap } from "prosemirror-commands"; import { history } from "prosemirror-history"; @@ -35,6 +35,7 @@ import "./FormattedTextBox.scss"; import React = require("react"); import { DateField } from '../../../new_fields/DateField'; import { Utils } from '../../../Utils'; +import { toSvgDataURL } from 'html-to-image'; library.add(faEdit); library.add(faSmile, faTextHeight); @@ -122,13 +123,14 @@ export class FormattedTextBox extends DocComponent<(FieldViewProps & FormattedTe if (this.props.isOverlay) { DragManager.StartDragFunctions.push(() => FormattedTextBox.InputBoxOverlay = undefined); } + toJS(console.log(this.props.Document)); document.addEventListener("paste", this.paste); } @computed get extensionDoc() { return Doc.resolvedFieldDataDoc(this.dataDoc, this.props.fieldKey, "dummy"); } - @computed get dataDoc() { return BoolCast(this.props.Document.isTemplate) && this.props.DataDoc ? this.props.DataDoc : Doc.GetProto(this.props.Document); } + @computed get dataDoc() {return BoolCast(this.props.Document.isTemplate) && this.props.DataDoc ? this.props.DataDoc : Doc.GetProto(this.props.Document); } paste = (e: ClipboardEvent) => { if (e.clipboardData && this._editorView) { @@ -163,7 +165,9 @@ export class FormattedTextBox extends DocComponent<(FieldViewProps & FormattedTe this._applyingChange = true; if (this.extensionDoc) this.extensionDoc.text = state.doc.textBetween(0, state.doc.content.size, "\n\n"); if (this.extensionDoc) this.extensionDoc.lastModified = new DateField(new Date(Date.now())); - this.dataDoc[this.props.fieldKey] = new RichTextField(JSON.stringify(state.toJSON())); + this.dataDoc[this.props.fieldKey] = new RichTextField(JSON.stringify(state.toJSON())); + this.props.Document.stateData = JSON.stringify(state.toJSON()); + this.props.Document.dataDocTest = this.dataDoc[this.props.fieldKey]; this._applyingChange = false; let title = StrCast(this.dataDoc.title); if (title && title.startsWith("-") && this._editorView && !this.Document.customTitle) { diff --git a/src/client/views/nodes/Keyframe.scss b/src/client/views/nodes/Keyframe.scss deleted file mode 100644 index b1e8b0b65..000000000 --- a/src/client/views/nodes/Keyframe.scss +++ /dev/null @@ -1,94 +0,0 @@ -@import "./../globalCssVariables.scss"; - -.bar { - height: 100%; - width: 5px; - position: absolute; - - // pointer-events: none; - .menubox { - width: 200px; - height:200px; - top: 50%; - position: relative; - background-color: $light-color; - .menutable{ - tr:nth-child(odd){ - background-color:$light-color-secondary; - } - } - } - - .leftResize{ - left:-12.5px; - height:25px; - width:25px; - border-radius: 50%; - background-color: white; - border:3px solid black; - top: calc(50% - 12.5px); - z-index: 1000; - position:absolute; - } - .rightResize{ - right:-12.5px; - height:25px; - width:25px; - border-radius: 50%; - top:calc(50% - 12.5px); - background-color:white; - border:3px solid black; - z-index: 1000; - position:absolute; - } - .fadeLeft{ - left:0px; - height:100%; - position:absolute; - pointer-events: none; - background: linear-gradient(to left, #4d9900 10%, $light-color); - } - - .fadeRight{ - right:0px; - height:100%; - position:absolute; - pointer-events: none; - background: linear-gradient(to right, #4d9900 10%, $light-color); - } - .divider{ - height:100%; - width: 1px; - position: absolute; - background-color:black; - cursor: col-resize; - pointer-events:none; - } - .keyframe{ - height:100%; - position:absolute; - } - .keyframeCircle{ - left:-15px; - height:30px; - width:30px; - border-radius: 50%; - top:calc(50% - 15px); - background-color:white; - border:3px solid green; - z-index: 1000; - position:absolute; - } - - .fadeIn-container, .fadeOut-container, .body-container{ - position:absolute; - height:100%; - background-color: rgba(0, 0, 0, 0.5); - opacity: 0; - } - - -} - - - diff --git a/src/client/views/nodes/Keyframe.tsx b/src/client/views/nodes/Keyframe.tsx deleted file mode 100644 index 780928e77..000000000 --- a/src/client/views/nodes/Keyframe.tsx +++ /dev/null @@ -1,550 +0,0 @@ -import * as React from "react"; -import "./Keyframe.scss"; -import "./Timeline.scss"; -import "./../globalCssVariables.scss"; -import { observer, Observer } from "mobx-react"; -import { observable, reaction, action, IReactionDisposer, observe, IObservableArray, computed, toJS, isComputedProp, runInAction } from "mobx"; -import { Doc, DocListCast, DocListCastAsync } from "../../../new_fields/Doc"; -import { Cast, FieldValue, StrCast, NumCast } from "../../../new_fields/Types"; -import { List } from "../../../new_fields/List"; -import { createSchema, defaultSpec, makeInterface, listSpec } from "../../../new_fields/Schema"; -import { FlyoutProps } from "./Timeline"; -import { Transform } from "../../util/Transform"; -import { InkField, StrokeData } from "../../../new_fields/InkField"; -import { number } from "prop-types"; - -export namespace KeyframeFunc { - export enum KeyframeType { - fade = "fade", - default = "default", - } - export enum Direction { - left = "left", - right = "right" - } - export const findAdjacentRegion = (dir: KeyframeFunc.Direction, currentRegion: Doc, regions: List): (RegionData | undefined) => { - let leftMost: (RegionData | undefined) = undefined; - let rightMost: (RegionData | undefined) = undefined; - DocListCast(regions).forEach(region => { - let neighbor = RegionData(region as Doc); - if (currentRegion.position! > neighbor.position) { - if (!leftMost || neighbor.position > leftMost.position) { - leftMost = neighbor; - } - } else if (currentRegion.position! < neighbor.position) { - if (!rightMost || neighbor.position < rightMost.position) { - rightMost = neighbor; - } - } - }); - if (dir === Direction.left) { - return leftMost; - } else if (dir === Direction.right) { - return rightMost; - } - }; - - export const calcMinLeft = async (region: Doc, currentBarX: number, ref?: Doc) => { //returns the time of the closet keyframe to the left - let leftKf: (Doc | undefined) = undefined; - let time: number = 0; - let keyframes = await DocListCastAsync(region.keyframes!); - keyframes!.forEach((kf) => { - let compTime = currentBarX; - if (ref) { - compTime = NumCast(ref.time); - } - if (NumCast(kf.time) < compTime && NumCast(kf.time) >= time) { - leftKf = kf; - time = NumCast(kf.time); - } - }); - return leftKf; - }; - - - export const calcMinRight = async (region: Doc, currentBarX: number, ref?: Doc) => { //returns the time of the closest keyframe to the right - let rightKf: (Doc | undefined) = undefined; - let time: number = Infinity; - let keyframes = await DocListCastAsync(region.keyframes!); - keyframes!.forEach((kf) => { - let compTime = currentBarX; - if (ref) { - compTime = NumCast(ref.time); - } - if (NumCast(kf.time) > compTime && NumCast(kf.time) <= NumCast(time)) { - rightKf = kf; - time = NumCast(kf.time); - } - }); - return rightKf; - }; - - export const defaultKeyframe = () => { - let regiondata = new Doc(); //creating regiondata - regiondata.duration = 200; - regiondata.position = 0; - regiondata.fadeIn = 20; - regiondata.fadeOut = 20; - regiondata.functions = new List(); - return regiondata; - }; -} - -export const RegionDataSchema = createSchema({ - position: defaultSpec("number", 0), - duration: defaultSpec("number", 0), - keyframes: listSpec(Doc), - fadeIn: defaultSpec("number", 0), - fadeOut: defaultSpec("number", 0), - functions: listSpec(Doc) -}); -export type RegionData = makeInterface<[typeof RegionDataSchema]>; -export const RegionData = makeInterface(RegionDataSchema); - -interface IProps { - node: Doc; - RegionData: Doc; - collection: Doc; - changeCurrentBarX: (x: number) => void; - setFlyout: (props: FlyoutProps) => any; - transform: Transform; -} - -@observer -export class Keyframe extends React.Component { - - @observable private _bar = React.createRef(); - @observable private _gain = 20; //default - - @computed - private get regiondata() { - let index = this.regions.indexOf(this.props.RegionData); - return RegionData(this.regions[index] as Doc); - } - - @computed - private get regions() { - return Cast(this.props.node.regions, listSpec(Doc)) as List; - } - - @computed - private get firstKeyframe() { - let first: (Doc | undefined) = undefined; - DocListCast(this.regiondata.keyframes!).forEach(kf => { - if (kf.type !== KeyframeFunc.KeyframeType.fade) { - if (!first || first && NumCast(kf.time) < NumCast(first.time)) { - first = kf; - } - } - }); - return first; - } - - @computed - private get lastKeyframe() { - let last: (Doc | undefined) = undefined; - DocListCast(this.regiondata.keyframes!).forEach(kf => { - if (kf.type !== KeyframeFunc.KeyframeType.fade) { - if (!last || last && NumCast(kf.time) > NumCast(last.time)) { - last = kf; - } - } - }); - return last; - } - @computed - private get keyframes(){ - return DocListCast(this.regiondata.keyframes); - } - - @computed - private get inks() { - if (this.props.collection.data_ext) { - let data_ext = Cast(this.props.collection.data_ext, Doc) as Doc; - let ink = Cast(data_ext.ink, InkField) as InkField; - if (ink) { - return ink.inkData; - } - } - } - - async componentWillMount() { - if (!this.regiondata.keyframes) { - this.regiondata.keyframes = new List(); - } - let fadeIn = await this.makeKeyData(this.regiondata.position + this.regiondata.fadeIn, KeyframeFunc.KeyframeType.fade)!; - let fadeOut = await this.makeKeyData(this.regiondata.position + this.regiondata.duration - this.regiondata.fadeOut, KeyframeFunc.KeyframeType.fade)!; - let start = await this.makeKeyData(this.regiondata.position, KeyframeFunc.KeyframeType.fade)!; - let finish = await this.makeKeyData(this.regiondata.position + this.regiondata.duration, KeyframeFunc.KeyframeType.fade)!; - (fadeIn.key! as Doc).opacity = 1; - (fadeOut.key! as Doc).opacity = 1; - (start.key! as Doc).opacity = 0.1; - (finish.key! as Doc).opacity = 0.1; - - observe(this.regiondata, change => { - if (change.type === "update") { - fadeIn.time = this.regiondata.position + this.regiondata.fadeIn; - fadeOut.time = this.regiondata.position + this.regiondata.duration - this.regiondata.fadeOut; - start.time = this.regiondata.position; - finish.time = this.regiondata.position + this.regiondata.duration; - this.regiondata.keyframes![this.regiondata.keyframes!.indexOf(fadeIn)] = fadeIn; - this.regiondata.keyframes![this.regiondata.keyframes!.indexOf(fadeOut)] = fadeOut; - this.regiondata.keyframes![this.regiondata.keyframes!.indexOf(start)] = start; - this.regiondata.keyframes![this.regiondata.keyframes!.indexOf(finish)] = finish; - this.forceUpdate(); - } - }); - } - - @action - makeKeyData = async (kfpos: number, type: KeyframeFunc.KeyframeType = KeyframeFunc.KeyframeType.default) => { //Kfpos is mouse offsetX, representing time - let doclist = (await DocListCastAsync(this.regiondata.keyframes))!; - let existingkf: (Doc | undefined) = undefined; - doclist.forEach(TK => { - TK = TK as Doc; - if (TK.time === kfpos) existingkf = TK; - }); - if (existingkf) return existingkf; - let TK: Doc = new Doc(); - TK.time = kfpos; - TK.key = Doc.MakeCopy(this.props.node, true); - TK.type = type; - this.regiondata.keyframes!.push(TK); - - let interpolationFunctions = new Doc(); - interpolationFunctions.interpolationX = new List([0, 1]); - interpolationFunctions.interpolationY = new List([0,100]); - interpolationFunctions.pathX = new List(); - interpolationFunctions.pathY = new List(); - - this.regiondata.functions!.push(interpolationFunctions); - let found:boolean = false; - this.regiondata.keyframes!.forEach(compkf => { - compkf = compkf as Doc; - if (kfpos < NumCast(compkf.time) && !found) { - runInAction(() => { - this.regiondata.keyframes!.splice(doclist.indexOf(compkf as Doc), 0, TK); - this.regiondata.keyframes!.pop(); - found = true; - }); - return; - } - }); - - let index = this.regiondata.keyframes!.indexOf(TK); - console.log(toJS(this.regiondata.keyframes!)); - - return TK; - } - - @action - onBarPointerDown = (e: React.PointerEvent) => { - e.preventDefault(); - e.stopPropagation(); - document.addEventListener("pointermove", this.onBarPointerMove); - document.addEventListener("pointerup", (e: PointerEvent) => { - document.removeEventListener("pointermove", this.onBarPointerMove); - }); - } - - - @action - onBarPointerMove = (e: PointerEvent) => { - e.preventDefault(); - e.stopPropagation(); - let left = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.left, this.regiondata, this.regions)!; - let right = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.right, this.regiondata, this.regions!); - let prevX = this.regiondata.position; - let futureX = this.regiondata.position + e.movementX; - if (futureX <= 0) { - this.regiondata.position = 0; - } else if ((left && left.position + left.duration >= futureX)) { - this.regiondata.position = left.position + left.duration; - } else if ((right && right.position <= futureX + this.regiondata.duration)) { - this.regiondata.position = right.position - this.regiondata.duration; - } else { - this.regiondata.position = futureX; - } - for (let i = 0; i < this.regiondata.keyframes!.length; i++) { - if ((this.regiondata.keyframes![i] as Doc).type !== KeyframeFunc.KeyframeType.fade) { - let movement = this.regiondata.position - prevX; - (this.regiondata.keyframes![i] as Doc).time = NumCast((this.regiondata.keyframes![i] as Doc).time) + movement; - } - } - this.forceUpdate(); - } - - @action - onResizeLeft = (e: React.PointerEvent) => { - e.preventDefault(); - e.stopPropagation(); - document.addEventListener("pointermove", this.onDragResizeLeft); - document.addEventListener("pointerup", () => { - document.removeEventListener("pointermove", this.onDragResizeLeft); - }); - } - - @action - onResizeRight = (e: React.PointerEvent) => { - e.preventDefault(); - e.stopPropagation(); - document.addEventListener("pointermove", this.onDragResizeRight); - document.addEventListener("pointerup", () => { - document.removeEventListener("pointermove", this.onDragResizeRight); - }); - } - - @action - onDragResizeLeft = (e: PointerEvent) => { - e.preventDefault(); - e.stopPropagation(); - let bar = this._bar.current!; - let offset = Math.round((e.clientX - bar.getBoundingClientRect().left) * this.props.transform.Scale); - let leftRegion = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.left, this.regiondata, this.regions); - let firstkf: (Doc | undefined) = this.firstKeyframe; - if (firstkf && this.regiondata.position + this.regiondata.fadeIn + offset >= NumCast(firstkf!.time)) { - let dif = NumCast(firstkf!.time) - (this.regiondata.position + this.regiondata.fadeIn); - this.regiondata.position = NumCast(firstkf!.time) - this.regiondata.fadeIn; - this.regiondata.duration -= dif; - } else if (this.regiondata.duration - offset < this.regiondata.fadeIn + this.regiondata.fadeOut) { // no keyframes, just fades - this.regiondata.position -= (this.regiondata.fadeIn + this.regiondata.fadeOut - this.regiondata.duration); - this.regiondata.duration = this.regiondata.fadeIn + this.regiondata.fadeOut; - } else if (leftRegion && this.regiondata.position + offset <= leftRegion.position + leftRegion.duration) { - let dif = this.regiondata.position - (leftRegion.position + leftRegion.duration); - this.regiondata.position = leftRegion.position + leftRegion.duration; - this.regiondata.duration += dif; - - } else { - this.regiondata.duration -= offset; - this.regiondata.position += offset; - } - } - - - @action - onDragResizeRight = (e: PointerEvent) => { - e.preventDefault(); - e.stopPropagation(); - let bar = this._bar.current!; - let offset = Math.round((e.clientX - bar.getBoundingClientRect().right) * this.props.transform.Scale); - let rightRegion = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.right, this.regiondata, this.regions); - if (this.lastKeyframe! && this.regiondata.position + this.regiondata.duration - this.regiondata.fadeOut + offset <= NumCast((this.lastKeyframe! as Doc).time)) { - let dif = this.regiondata.position + this.regiondata.duration - this.regiondata.fadeOut - NumCast((this.lastKeyframe! as Doc).time); - this.regiondata.duration -= dif; - } else if (this.regiondata.duration + offset < this.regiondata.fadeIn + this.regiondata.fadeOut) { // nokeyframes, just fades - this.regiondata.duration = this.regiondata.fadeIn + this.regiondata.fadeOut; - } else if (rightRegion && this.regiondata.position + this.regiondata.duration + offset >= rightRegion.position) { - let dif = rightRegion.position - (this.regiondata.position + this.regiondata.duration); - this.regiondata.duration += dif; - } else { - this.regiondata.duration += offset; - } - } - - createDivider = (type?: KeyframeFunc.Direction): JSX.Element => { - if (type === "left") { - return
; - } else if (type === "right") { - return
; - } - return
; - } - - @action - createKeyframe = async (e: React.MouseEvent) => { - e.preventDefault(); - e.stopPropagation(); - let bar = this._bar.current!; - let offset = Math.round((e.clientX - bar.getBoundingClientRect().left) * this.props.transform.Scale); - if (offset > this.regiondata.fadeIn && offset < this.regiondata.duration - this.regiondata.fadeOut) { //make sure keyframe is not created inbetween fades and ends - let position = NumCast(this.regiondata.position); - await this.makeKeyData(Math.round(position + offset)); - console.log(this.regiondata.keyframes!.length); - this.props.changeCurrentBarX(NumCast(Math.round(position + offset))); //first move the keyframe to the correct location and make a copy so the correct file gets coppied - } - } - - - @action - moveKeyframe = async (e: React.MouseEvent, kf: Doc) => { - e.preventDefault(); - e.stopPropagation(); - this.props.changeCurrentBarX(NumCast(kf.time!)); - } - - - @action - onKeyframeOver = (e: React.PointerEvent) => { - e.preventDefault(); - e.stopPropagation(); - this.props.node.backgroundColor = "#000000"; - - } - @action - private createKeyframeJSX = (kf: Doc, type = KeyframeFunc.KeyframeType.default) => { - if (type === KeyframeFunc.KeyframeType.default) { - return ( -
- {this.createDivider()} -
{ this.moveKeyframe(e, kf as Doc); }} onContextMenu={(e: React.MouseEvent) => { - e.preventDefault(); - e.stopPropagation(); - }}>
-
); - } - return ( -
- {this.createDivider()} -
- ); - } - - onContainerOver = (e: React.PointerEvent, ref: React.RefObject) => { - e.preventDefault(); - e.stopPropagation(); - let div = ref.current!; - div.style.opacity = "1"; - } - - onContainerOut = (e: React.PointerEvent, ref: React.RefObject) => { - e.preventDefault(); - e.stopPropagation(); - let div = ref.current!; - div.style.opacity = "0"; - } - - - private _reac: (undefined | IReactionDisposer) = undefined; - private _plotList: ([string, StrokeData] | undefined) = undefined; - private _interpolationKeyframe: (Doc | undefined) = undefined; - private _type: string = ""; - - @action - onContainerDown = (e: React.MouseEvent, kf: Doc) => { - e.preventDefault(); - e.stopPropagation(); - let listenerCreated = false; - let type = prompt("Type? (interpolate or path)"); - if (type) { - if (type !== "interpolate" && type !=="path") { - alert("Wrong type. Try again."); - return; - } - this._type = type; - this.props.collection.backgroundColor = "rgb(0,0,0)"; - this._reac = reaction(() => { - return this.inks; - }, data => { - if (!listenerCreated) { - this._plotList = Array.from(data!)[data!.size - 1]!; - this._interpolationKeyframe = kf; - document.addEventListener("pointerup", this.onReactionListen); - listenerCreated = true; - } - }); - } - - } - - - - - @action - onReactionListen = (e: PointerEvent) => { - e.preventDefault(); - e.stopPropagation(); - let message = prompt("GRAPHING MODE: Enter gain"); - if (message) { - let messageContent = parseInt(message, 10); - if (messageContent === NaN) { - this._gain = Infinity; - } else { - this._gain = messageContent; - } - - } - if (this._reac && this._plotList && this._interpolationKeyframe) { - this.props.collection.backgroundColor = "#FFF"; - this._reac(); - let xPlots = new List(); - let yPlots = new List(); - let maxY = 0; - let minY = Infinity; - let pathData = this._plotList![1].pathData; - for (let i = 0; i < pathData.length - 1;) { - let val = pathData[i]; - if (val.y > maxY) { - maxY = val.y; - } - if (val.y < minY) { - minY = val.y; - } - xPlots.push(val.x); - yPlots.push(val.y); - let increment = Math.floor(pathData.length / this._gain); - if (pathData.length > this._gain) { - if (i + increment < pathData.length) { - i = i + increment; - } else { - i = pathData.length - 1; - } - } else { - i++; - } - } - let index = this.keyframes.indexOf(this._interpolationKeyframe!); - if (this._type === "interpolate"){ - (Cast(this.regiondata.functions![index], Doc) as Doc).interpolationX = xPlots; - (Cast(this.regiondata.functions![index], Doc) as Doc).interpolationY = yPlots; - } else if (this._type === "path") { - (Cast(this.regiondata.functions![index], Doc) as Doc).pathX = xPlots; - (Cast(this.regiondata.functions![index], Doc) as Doc).pathY = yPlots; - } - - this._reac = undefined; - this._interpolationKeyframe = undefined; - this._plotList = undefined; - this._type = ""; - document.removeEventListener("pointerup", this.onReactionListen); - } - } - - - render() { - return ( -
-
{ - e.preventDefault(); - e.stopPropagation(); - let offsetLeft = this._bar.current!.getBoundingClientRect().left - this._bar.current!.parentElement!.getBoundingClientRect().left; - let offsetTop = this._bar.current!.getBoundingClientRect().top; //+ this._bar.current!.parentElement!.getBoundingClientRect().top; - this.props.setFlyout({ x: offsetLeft * this.props.transform.Scale, y: offsetTop * this.props.transform.Scale, display: "block", regiondata: this.regiondata, regions: this.regions }); - })}> -
-
- {this.regiondata.keyframes!.map(kf => { - return this.createKeyframeJSX(kf as Doc, (kf! as Doc).type as KeyframeFunc.KeyframeType); - })} - {this.keyframes.map( kf => { - if(this.keyframes.indexOf(kf) !== this.keyframes.length - 1) { - - let left = this.keyframes[this.keyframes.indexOf(kf) + 1]; - let bodyRef = React.createRef(); - return ( -
{ this.onContainerOver(e, bodyRef); }} - onPointerOut={(e) => { this.onContainerOut(e, bodyRef); }} - onContextMenu={(e) => { this.onContainerDown(e, kf); }}> -
- ); - } - })} - -
-
- ); - } -} \ No newline at end of file diff --git a/src/client/views/nodes/Timeline.scss b/src/client/views/nodes/Timeline.scss deleted file mode 100644 index 47f448adb..000000000 --- a/src/client/views/nodes/Timeline.scss +++ /dev/null @@ -1,170 +0,0 @@ -@import "./../globalCssVariables.scss"; - -.minimize{ - position:relative; - z-index: 1000; - height: 30px; - width: 100px; -} -.flyout-container{ - background-color: transparent; - position:absolute; - - z-index:9999; - height: 150px; - width: 150px; - - .flyout{ - background-color: transparent; - transform: rotate(180deg); - left:0px; - top:0px; - width: 100%; - height: 100%; - } - .input-container{ - position: absolute; - right:0px; - top: 30px; - width: 70px; - input{ - width: 100%; - } - } - .text-container{ - position:absolute; - top:30px; - left:0px; - color:white - } -} - -.placement-highlight{ - background-color:blue; - transform: translate(0px, 0px); - transition: width 1000ms ease-in-out; - transition: height 1000ms ease-in-out; - position: absolute; -} - -.timeline-container{ - width:100%; - height:300px; - position:absolute; - background-color: $light-color-secondary; - box-shadow: 0px 10px 20px; - //transition: transform 1000ms ease-in-out; - - .toolbox{ - position:absolute; - width: 100%; - top: 10px; - left: 20px; - div{ - float:left; - margin-left: 10px; - position:relative; - .overview{ - width: 200px; - height: 100%; - background-color: black; - position:absolute; - } - } - } - .info-container{ - margin-top: 50px; - right:20px; - position:absolute; - height: calc(100% - 100px); - width: calc(100% - 140px); - overflow: hidden; - - .scrubberbox{ - position:absolute; - background-color: transparent; - height: 30px; - width:100%; - - .tick{ - height:100%; - width: 1px; - background-color:black; - - } - } - .scrubber{ - top:30px; - height: 100%; - width: 2px; - position:absolute; - z-index: 1001; - background-color:black; - .scrubberhead{ - top: -30px; - height: 30px; - width: 30px; - background-color:transparent; - border-radius: 50%; - border: 5px solid black; - left: -15px; - position:absolute; - } - } - - .trackbox{ - top: 30px; - height:calc(100% - 30px); - width:100%; - border:1px; - overflow:hidden; - background-color:white; - position:absolute; - box-shadow: -10px 0px 10px 10px grey; - } - - } - .title-container{ - margin-top: 80px; - margin-left: 20px; - height: calc(100% - 100px - 30px); - width: 100px; - background-color:white; - overflow: hidden; - .datapane{ - top:0px; - width: 100px; - height: 75px; - border: 1px solid $dark-color; - background-color: $intermediate-color; - color: white; - position:relative; - float:left; - border-style:solid; - } - } - .resize{ - bottom: 5px; - position:absolute; - height: 30px; - width: 50px; - left: calc(50% - 25px); - } -} - - - -.overview{ - position: absolute; - height: 50px; - width: 200px; - background-color: black; - .container{ - position: absolute; - float: left 0px; - top: 25%; - height: 75%; - width: 100%; - background-color: grey; - } -} \ No newline at end of file diff --git a/src/client/views/nodes/Timeline.tsx b/src/client/views/nodes/Timeline.tsx deleted file mode 100644 index 923e99e63..000000000 --- a/src/client/views/nodes/Timeline.tsx +++ /dev/null @@ -1,530 +0,0 @@ -import * as React from "react"; -import "./Timeline.scss"; -import { CollectionSubView } from "../collections/CollectionSubView"; -import { Document, listSpec } from "../../../new_fields/Schema"; -import { observer } from "mobx-react"; -import { Track } from "./Track"; -import { observable, reaction, action, IReactionDisposer, observe, IObservableArray, computed, toJS, Reaction, IObservableObject, trace, autorun, runInAction } from "mobx"; -import { Cast, NumCast, FieldValue, StrCast } from "../../../new_fields/Types"; -import { List } from "../../../new_fields/List"; -import { Doc, DocListCast } from "../../../new_fields/Doc"; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { faPlayCircle, faBackward, faForward, faGripLines, faArrowUp, faArrowDown, faClock, faPauseCircle } from "@fortawesome/free-solid-svg-icons"; -import { ContextMenuProps } from "../ContextMenuItem"; -import { ContextMenu } from "../ContextMenu"; -import { DocumentManager } from "../../util/DocumentManager"; -import { VideoBox } from "./VideoBox"; -import { VideoField } from "../../../new_fields/URLField"; -import { CollectionVideoView } from "../collections/CollectionVideoView"; -import { Transform } from "../../util/Transform"; -import { faGrinTongueSquint } from "@fortawesome/free-regular-svg-icons"; -import { InkField } from "../../../new_fields/InkField"; -import { AddComparisonParameters } from "../../northstar/model/idea/idea"; -import { keepAlive } from "mobx-utils"; - - -export interface FlyoutProps { - x?: number; - y?: number; - display?: string; - regiondata?: Doc; - regions?: List; -} - - -@observer -export class Timeline extends CollectionSubView(Document) { - private readonly DEFAULT_CONTAINER_HEIGHT: number = 300; - private readonly DEFAULT_TICK_SPACING: number = 50; - private readonly MIN_CONTAINER_HEIGHT: number = 205; - private readonly MAX_CONTAINER_HEIGHT: number = 800; - private readonly DEFAULT_TICK_INCREMENT: number = 1000; - - @observable private _isMinimized = false; - @observable private _tickSpacing = this.DEFAULT_TICK_SPACING; - @observable private _tickIncrement = this.DEFAULT_TICK_INCREMENT; - - @observable private _scrubberbox = React.createRef(); - @observable private _scrubber = React.createRef(); - @observable private _trackbox = React.createRef(); - @observable private _titleContainer = React.createRef(); - @observable private _timelineContainer = React.createRef(); - - @observable private _timelineWrapper = React.createRef(); - @observable private _infoContainer = React.createRef(); - - - @observable private _currentBarX: number = 0; - @observable private _windSpeed: number = 1; - @observable private _isPlaying: boolean = false; //scrubber playing - @observable private _isFrozen: boolean = false; //timeline freeze - @observable private _boxLength: number = 0; - @observable private _containerHeight: number = this.DEFAULT_CONTAINER_HEIGHT; - @observable private _time = 100000; //DEFAULT - @observable private _ticks: number[] = []; - @observable private _playButton = faPlayCircle; - @observable private flyoutInfo: FlyoutProps = { x: 0, y: 0, display: "none", regiondata: new Doc(), regions: new List() }; - - @computed - private get children(): List { - let extendedDocument = ["image", "video", "pdf"].includes(StrCast(this.props.Document.type)); - - if (extendedDocument) { - if (this.props.Document.data_ext) { - return Cast((Cast(this.props.Document.data_ext, Doc) as Doc).annotations, listSpec(Doc)) as List; - } else { - return new List(); - } - } - return Cast(this.props.Document[this.props.fieldKey], listSpec(Doc)) as List; - } - - @computed - private get inks(){ - if (this.props.Document.data_ext){ - let data_ext = Cast(this.props.Document.data_ext, Doc) as Doc; - let ink = Cast(data_ext.ink, InkField) as InkField; - if (ink){ - return ink.inkData; - } - } - } - - - componentDidMount() { - if (StrCast(this.props.Document.type) === "video") { - console.log("ran"); - console.log(this.props.Document.duration); - if (this.props.Document.duration) { - this._time = Math.round(NumCast(this.props.Document.duration)) * 1000; - - reaction(() => { - return NumCast(this.props.Document.curPage); - }, curPage => { - this.changeCurrentBarX(curPage * this._tickIncrement / this._tickSpacing); - }); - - } - - } - runInAction(() => { - - reaction(() => { - return this._time; - }, () => { - this._ticks = []; - for (let i = 0; i < this._time;) { - this._ticks.push(i); - i += this._tickIncrement; - } - let trackbox = this._trackbox.current!; - this._boxLength = this._tickIncrement / 1000 * this._tickSpacing * this._ticks.length; - trackbox.style.width = `${this._boxLength}`; - this._scrubberbox.current!.style.width = `${this._boxLength}`; - }, { fireImmediately: true }); - }); - } - - @action - changeCurrentBarX = (x: number) => { - this._currentBarX = x; - } - - //for playing - @action - onPlay = async (e: React.MouseEvent) => { - if (this._isPlaying) { - this._isPlaying = false; - this._playButton = faPlayCircle; - } else { - this._isPlaying = true; - this._playButton = faPauseCircle; - this.changeCurrentX(); - } - } - - @action - changeCurrentX = () => { - if (this._currentBarX === this._boxLength && this._isPlaying) { - this._currentBarX = 0; - } - if (this._currentBarX <= this._boxLength && this._isPlaying) { - this._currentBarX = this._currentBarX + this._windSpeed; - setTimeout(this.changeCurrentX, 15); - } - } - - @action - windForward = (e: React.MouseEvent) => { - if (this._windSpeed < 64) { //max speed is 32 - this._windSpeed = this._windSpeed * 2; - } - } - - @action - windBackward = (e: React.MouseEvent) => { - if (this._windSpeed > 1 / 16) { // min speed is 1/8 - this._windSpeed = this._windSpeed / 2; - } - } - - //for scrubber action - @action - onScrubberDown = (e: React.PointerEvent) => { - e.preventDefault(); - e.stopPropagation(); - document.addEventListener("pointermove", this.onScrubberMove); - document.addEventListener("pointerup", () => { - document.removeEventListener("pointermove", this.onScrubberMove); - }); - } - - @action - onScrubberMove = (e: PointerEvent) => { - e.preventDefault(); - e.stopPropagation(); - let scrubberbox = this._scrubberbox.current!; - let left = scrubberbox.getBoundingClientRect().left; - let offsetX = Math.round(e.clientX - left) * this.props.ScreenToLocalTransform().Scale; - this._currentBarX = offsetX; - } - - @action - onScrubberClick = (e: React.MouseEvent) => { - e.preventDefault(); - e.stopPropagation(); - let scrubberbox = this._scrubberbox.current!; - let offset = (e.clientX - scrubberbox.getBoundingClientRect().left) * this.props.ScreenToLocalTransform().Scale; - this._currentBarX = offset; - } - - - - @action - onPanDown = (e: React.PointerEvent) => { - e.preventDefault(); - e.stopPropagation(); - document.addEventListener("pointermove", this.onPanMove); - document.addEventListener("pointerup", () => { - document.removeEventListener("pointermove", this.onPanMove); - }); - } - - @action - onPanMove = (e: PointerEvent) => { - e.preventDefault(); - e.stopPropagation(); - let infoContainer = this._infoContainer.current!; - let trackbox = this._trackbox.current!; - let titleContainer = this._titleContainer.current!; - infoContainer.scrollLeft = infoContainer.scrollLeft - e.movementX; - trackbox.scrollTop = trackbox.scrollTop - e.movementY; - titleContainer.scrollTop = titleContainer.scrollTop - e.movementY; - } - - - @action - onResizeDown = (e: React.PointerEvent) => { - e.preventDefault(); - e.stopPropagation(); - document.addEventListener("pointermove", this.onResizeMove); - document.addEventListener("pointerup", () => { - document.removeEventListener("pointermove", this.onResizeMove); - }); - } - - @action - onResizeMove = (e: PointerEvent) => { - e.preventDefault(); - e.stopPropagation(); - let offset = e.clientY - this._timelineContainer.current!.getBoundingClientRect().bottom; - if (this._containerHeight + offset <= this.MIN_CONTAINER_HEIGHT) { - this._containerHeight = this.MIN_CONTAINER_HEIGHT; - } else if (this._containerHeight + offset >= this.MAX_CONTAINER_HEIGHT) { - this._containerHeight = this.MAX_CONTAINER_HEIGHT; - } else { - this._containerHeight += offset; - } - } - - @action - onTimelineDown = (e: React.PointerEvent) => { - e.preventDefault(); - if (e.nativeEvent.which === 1 && !this._isFrozen) { - document.addEventListener("pointermove", this.onTimelineMove); - document.addEventListener("pointerup", () => { document.removeEventListener("pointermove", this.onTimelineMove); }); - } - } - - @action - onTimelineMove = (e: PointerEvent) => { - e.preventDefault(); - e.stopPropagation(); - let timelineContainer = this._timelineWrapper.current!; - let left = parseFloat(timelineContainer.style.left!); - let top = parseFloat(timelineContainer.style.top!); - timelineContainer.style.left = `${left + e.movementX}px`; - timelineContainer.style.top = `${top + e.movementY}px`; - } - - @action - minimize = (e: React.MouseEvent) => { - e.preventDefault(); - e.stopPropagation(); - let timelineContainer = this._timelineContainer.current!; - if (this._isMinimized) { - this._isMinimized = false; - timelineContainer.style.visibility = "visible"; - } else { - this._isMinimized = true; - timelineContainer.style.visibility = "hidden"; - } - } - - @action - toTime = (time: number): string => { - const inSeconds = time / 1000; - let min: (string | number) = Math.floor(inSeconds / 60); - let sec: (string | number) = inSeconds % 60; - - if (Math.floor(sec / 10) === 0) { - sec = "0" + sec; - } - return `${min}:${sec}`; - } - - - private _freezeText = "Freeze Timeline"; - - timelineContextMenu = (e: React.MouseEvent): void => { - let subitems: ContextMenuProps[] = []; - let timelineContainer = this._timelineWrapper.current!; - subitems.push({ - description: "Pin to Top", event: action(() => { - if (!this._isFrozen) { - timelineContainer.style.transition = "top 1000ms ease-in, left 1000ms ease-in"; //????? - timelineContainer.style.left = "0px"; - timelineContainer.style.top = "0px"; - timelineContainer.style.transition = "none"; - } - }), icon: faArrowUp - }); - subitems.push({ - description: "Pin to Bottom", event: action(() => { - console.log(this.props.Document.y); - - if (!this._isFrozen) { - timelineContainer.style.transform = `translate(0px, ${e.pageY - this._containerHeight}px)`; - } - }), icon: faArrowDown - }); - subitems.push({ - description: this._freezeText, event: action(() => { - if (this._isFrozen) { - this._isFrozen = false; - this._freezeText = "Freeze Timeline"; - } else { - this._isFrozen = true; - this._freezeText = "Unfreeze Timeline"; - } - }), icon: "thumbtack" - }); - ContextMenu.Instance.addItem({ description: "Timeline Funcs...", subitems: subitems, icon: faClock }); - } - - - - @action - getFlyout = (props: FlyoutProps) => { - for (const [k, v] of Object.entries(props)) { - (this.flyoutInfo as any)[k] = v; - } - console.log(this.flyoutInfo); - } - - render() { - return ( -
- -
- -
-
-
-
-
-
-
- {this._ticks.map(element => { - return

{this.toTime(element)}

; - })} -
-
-
-
-
- {DocListCast(this.children).map(doc => )} -
-
-
- {DocListCast(this.children).map(doc =>

{doc.title}

)} -
-
- -
-
-
- ); - } - -} - - -interface TimelineFlyoutProps { - flyoutInfo: FlyoutProps; - tickSpacing: number; - -} - -interface TimelineOverviewProps { - currentBarX: number; -} - -class TimelineOverview extends React.Component{ - - componentWillMount() { - - } - - render() { - return ( -
-
-
-
-
-
-
- ); - } -} - -class TimelineFlyout extends React.Component{ - - @observable private _timeInput = React.createRef(); - @observable private _durationInput = React.createRef(); - @observable private _fadeInInput = React.createRef(); - @observable private _fadeOutInput = React.createRef(); - @observable private _data: FlyoutProps = { x: 0, y: 0, display: "none", regiondata: new Doc(), regions: new List() }; - - private block = false; - - componentDidMount() { - - document.addEventListener("pointerdown", this.closeFlyout); - } - - - componentWillUnmount() { - document.removeEventListener("pointerdown", this.closeFlyout); - } - - - @action - changeTime = (e: React.KeyboardEvent) => { - let time = this._timeInput.current!; - if (e.keyCode === 13) { - if (!Number.isNaN(Number(time.value))) { - this.props.flyoutInfo.regiondata!.position = Number(time.value) / 1000 * this.props.tickSpacing; - time.placeholder = time.value + "ms"; - time.value = ""; - } - } - } - @action - onFlyoutDown = (e: React.PointerEvent) => { - this._data.display = "block"; - this.block = true; - } - - @action - closeFlyout = (e: PointerEvent) => { - if (this.block) { - this.block = false; - return; - } - this._data.display = "none"; - } - - @action - changeDuration = (e: React.KeyboardEvent) => { - let duration = this._durationInput.current!; - if (e.keyCode === 13) { - if (!Number.isNaN(Number(duration.value))) { - this.props.flyoutInfo.regiondata!.duration = Number(duration.value) / 1000 * this.props.tickSpacing; - duration.placeholder = duration.value + "ms"; - duration.value = ""; - } - } - } - - @action - changeFadeIn = (e: React.KeyboardEvent) => { - let fadeIn = this._fadeInInput.current!; - if (e.keyCode === 13) { - if (!Number.isNaN(Number(fadeIn.value))) { - this.props.flyoutInfo.regiondata!.fadeIn = Number(fadeIn.value); - fadeIn.placeholder = fadeIn.value + "ms"; - fadeIn.value = ""; - } - } - } - - @action - changeFadeOut = (e: React.KeyboardEvent) => { - let fadeOut = this._fadeOutInput.current!; - if (e.keyCode === 13) { - if (!Number.isNaN(Number(fadeOut.value))) { - this.props.flyoutInfo.regiondata!.fadeOut = Number(fadeOut.value); - fadeOut.placeholder = fadeOut.value + "ms"; - fadeOut.value = ""; - } - } - } - - render() { - return ( -
-
- -
-

Time:

-

Duration:

-

Fade-in

-

Fade-out

-
-
- - - - -
- -
-
- ); - } -} - -class TimelineZoom extends React.Component { - componentDidMount() { - - } - render() { - return ( -
- -
- ); - } -} \ No newline at end of file diff --git a/src/client/views/nodes/Track.scss b/src/client/views/nodes/Track.scss deleted file mode 100644 index c8d56edf6..000000000 --- a/src/client/views/nodes/Track.scss +++ /dev/null @@ -1,15 +0,0 @@ -@import "./../globalCssVariables.scss"; - -.track-container{ - - .track { - .inner { - top:0px; - height: 75px; - width: calc(100%); - background-color: $light-color; - border: 1px solid $dark-color; - position:relative; - } - } -} \ No newline at end of file diff --git a/src/client/views/nodes/Track.tsx b/src/client/views/nodes/Track.tsx deleted file mode 100644 index b12dabadf..000000000 --- a/src/client/views/nodes/Track.tsx +++ /dev/null @@ -1,266 +0,0 @@ -import * as React from "react"; -import { observer } from "mobx-react"; -import { observable, reaction, action, IReactionDisposer, observe, IObservableArray, computed, toJS, IObservableObject, runInAction, autorun } from "mobx"; -import "./Track.scss"; -import { Doc, DocListCastAsync, DocListCast, Field } from "../../../new_fields/Doc"; -import { listSpec } from "../../../new_fields/Schema"; -import { FieldValue, Cast, NumCast, BoolCast, StrCast } from "../../../new_fields/Types"; -import { List } from "../../../new_fields/List"; -import { Keyframe, KeyframeFunc, RegionData } from "./Keyframe"; -import { FlyoutProps } from "./Timeline"; -import { Transform } from "../../util/Transform"; -import { AddComparisonParameters } from "../../northstar/model/idea/idea"; -import { CollectionSchemaBooleanCell } from "../collections/CollectionSchemaCells"; - -interface IProps { - node: Doc; - currentBarX: number; - transform: Transform; - collection: Doc; - changeCurrentBarX: (x: number) => void; - setFlyout: (props: FlyoutProps) => any; -} - -@observer -export class Track extends React.Component { - @observable private _inner = React.createRef(); - @observable private _reactionDisposers: IReactionDisposer[] = []; - @observable private _keyReaction: any; //reaction that is used to dispose when necessary - @observable private _currentBarXReaction: any; - - @computed - private get regions() { - return Cast(this.props.node.regions, listSpec(Doc)) as List; - } - - componentWillMount() { - if (!this.props.node.regions) { - this.props.node.regions = new List(); - } - this.props.node.opacity = 1; - } - - componentDidMount() { - runInAction(() => { - this._currentBarXReaction = this.currentBarXReaction(); - if (this.regions.length === 0) this.createRegion(this.props.currentBarX); - this.props.node.hidden = false; - }); - } - - componentWillUnmount() { - runInAction(() => { - if (this._keyReaction) this._keyReaction(); - if (this._currentBarXReaction) this._currentBarXReaction(); - }); - } - - @action - keyReaction = () => { - return reaction( () => { - return Doc.allKeys(this.props.node).map(key => FieldValue(this.props.node[key])); - }, async () => { - let regiondata: (Doc | undefined) = await this.findRegion(this.props.currentBarX) ; - if (regiondata) { - let keyframes = await DocListCastAsync((regiondata as Doc).keyframes!); - keyframes!.forEach( async (kf) => { - if (kf.type === KeyframeFunc.KeyframeType.default && kf.time === this.props.currentBarX) { - console.log("full keychange triggered"); - //for this specific keyframe - kf.key = Doc.MakeCopy(this.props.node, true); - - //for fades - let leftkf: (Doc | undefined) = await KeyframeFunc.calcMinLeft(regiondata!, this.props.currentBarX, kf); // lef keyframe, if it exists - let rightkf: (Doc | undefined) = await KeyframeFunc.calcMinRight(regiondata!, this.props.currentBarX, kf); //right keyframe, if it exists - if (leftkf!.type === KeyframeFunc.KeyframeType.fade) { //replicating this keyframe to fades - let edge:(Doc | undefined) = await KeyframeFunc.calcMinLeft(regiondata!, this.props.currentBarX, leftkf!); - edge!.key = Doc.MakeCopy(kf.key as Doc, true); - leftkf!.key = Doc.MakeCopy(kf.key as Doc, true); - (Cast(edge!.key, Doc)! as Doc).opacity = 0.1; - (Cast(leftkf!.key, Doc)! as Doc).opacity = 1; - } - if (rightkf!.type === KeyframeFunc.KeyframeType.fade) { - let edge:(Doc | undefined) = await KeyframeFunc.calcMinRight(regiondata!,this.props.currentBarX, rightkf!); - edge!.key = Doc.MakeCopy(kf.key as Doc, true); - rightkf!.key = Doc.MakeCopy(kf.key as Doc, true); - (Cast(edge!.key, Doc)! as Doc).opacity = 0.1; - (Cast(rightkf!.key, Doc)! as Doc).opacity = 1; - } - } - }); - } - }, {fireImmediately: true}); - } - - @action - currentBarXReaction = () => { - return reaction(() => this.props.currentBarX, async () => { - if (this._keyReaction) this._keyReaction(); //dispose previous reaction first - let regiondata: (Doc | undefined) = await this.findRegion(this.props.currentBarX); - if (regiondata) { - this.props.node.hidden = false; - await this.timeChange(this.props.currentBarX); - } else { - this.props.node.hidden = true; - } - }, { fireImmediately: true }); - } - - - @action - timeChange = async (time: number) => { - let regiondata = await this.findRegion(Math.round(time)); //finds a region that the scrubber is on - if (regiondata) { - let leftkf: (Doc | undefined) = await KeyframeFunc.calcMinLeft(regiondata, this.props.currentBarX); // lef keyframe, if it exists - let rightkf: (Doc | undefined) = await KeyframeFunc.calcMinRight(regiondata, this.props.currentBarX); //right keyframe, if it exists - let currentkf: (Doc | undefined) = await this.calcCurrent(regiondata); //if the scrubber is on top of the keyframe - if (currentkf) { - await this.applyKeys(currentkf); - this._keyReaction = this.keyReaction(); //reactivates reaction. - } else if (leftkf && rightkf) { - await this.interpolate(leftkf, rightkf, regiondata); - } - } - } - - @action - private applyKeys = async (kf: Doc) => { - let kfNode = await Cast(kf.key, Doc) as Doc; - let docFromApply = kfNode; - if (this.filterKeys(Doc.allKeys(this.props.node)).length > this.filterKeys(Doc.allKeys(kfNode)).length) docFromApply = this.props.node; - this.filterKeys(Doc.allKeys(docFromApply)).forEach(key => { - if (!kfNode[key]) { - this.props.node[key] = undefined; - } else { - this.props.node[key] = kfNode[key]; - } - }); - } - - - @action - private filterKeys = (keys: string[]): string[] => { - return keys.reduce((acc: string[], key: string) => { - if (key !== "regions" && key !== "data" && key !== "creationDate" && key !== "cursors" && key !== "hidden" && key !== "nativeHeight" && key !== "nativeWidth" && key !== "schemaColumns") acc.push(key); - return acc; - }, []) as string[]; - } - - @action - calcCurrent = async (region: Doc) => { - let currentkf: (Doc | undefined) = undefined; - let keyframes = await DocListCastAsync(region.keyframes!); - keyframes!.forEach((kf) => { - if (NumCast(kf.time) === Math.round(this.props.currentBarX)) currentkf = kf; - }); - return currentkf; - } - - @action - interpolate = async (left: Doc, right: Doc, regiondata:Doc) => { - console.log("interpolating"); - let leftNode = left.key as Doc; - let rightNode = right.key as Doc; - const dif_time = NumCast(right.time) - NumCast(left.time); - const timeratio = (this.props.currentBarX - NumCast(left.time)) / dif_time; //linear - let keyframes = (await DocListCastAsync(regiondata.keyframes!))!; - let indexLeft = keyframes.indexOf(left); - let interY:List = await ((regiondata.functions as List)[indexLeft] as Doc).interpolationY as List; - let realIndex = (interY.length - 1) * timeratio; - let xIndex = Math.floor(realIndex); - let yValue = interY[xIndex]; - let secondYOffset:number = yValue; - let minY = interY[0]; // for now - let maxY = interY[interY.length - 1]; //for now - if (interY.length !== 1) { - secondYOffset = interY[xIndex] + ((realIndex - xIndex) / 1) * (interY[xIndex + 1] - interY[xIndex]) - minY; - } - let finalRatio = secondYOffset / (maxY - minY); - let pathX:List = await ((regiondata.functions as List)[indexLeft] as Doc).pathX as List; - let pathY:List = await ((regiondata.functions as List)[indexLeft] as Doc).pathY as List; - let proposedX = 0; - let proposedY = 0; - if (pathX.length !== 0) { - let realPathCorrespondingIndex = finalRatio * (pathX.length - 1); - let pathCorrespondingIndex = Math.floor(realPathCorrespondingIndex); - if (pathCorrespondingIndex >= pathX.length - 1) { - proposedX = pathX[pathX.length - 1]; - proposedY = pathY[pathY.length - 1]; - } else if (pathCorrespondingIndex < 0){ - proposedX = pathX[0]; - proposedY = pathY[0]; - } else { - proposedX = pathX[pathCorrespondingIndex] + ((realPathCorrespondingIndex - pathCorrespondingIndex) / 1) * (pathX[pathCorrespondingIndex + 1] - pathX[pathCorrespondingIndex]); - proposedY = pathY[pathCorrespondingIndex] + ((realPathCorrespondingIndex - pathCorrespondingIndex) / 1) * (pathY[pathCorrespondingIndex + 1] - pathY[pathCorrespondingIndex]); - } - - } - - - this.filterKeys(Doc.allKeys(leftNode)).forEach(key => { - if (leftNode[key] && rightNode[key] && typeof (leftNode[key]) === "number" && typeof (rightNode[key]) === "number") { //if it is number, interpolate - if ((key === "x" || key === "y") && pathX.length !== 0){ - if (key === "x") this.props.node[key] = proposedX; - if (key === "y") this.props.node[key] = proposedY; - console.log(pathX.length); - - } else { - const diff = NumCast(rightNode[key]) - NumCast(leftNode[key]); - const adjusted = diff * finalRatio; - this.props.node[key] = NumCast(leftNode[key]) + adjusted; - } - } else { - this.props.node[key] = leftNode[key]; - } - }); - } - - @action - findRegion = async (time: number) => { - let foundRegion:(Doc | undefined) = undefined; - let regions = await DocListCastAsync(this.regions); - regions!.forEach(region => { - region = region as RegionData; - if (time >= NumCast(region.position) && time <= (NumCast(region.position) + NumCast(region.duration))) { - foundRegion = region; - } - }); - return foundRegion; - } - - @action - onInnerDoubleClick = (e: React.MouseEvent) => { - let inner = this._inner.current!; - let offsetX = Math.round((e.clientX - inner.getBoundingClientRect().left) * this.props.transform.Scale); - this.createRegion(offsetX); - } - - createRegion = (position: number) => { - let regiondata = KeyframeFunc.defaultKeyframe(); - regiondata.position = position; - let leftRegion = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.left, regiondata, this.regions); - let rightRegion = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.right, regiondata, this.regions); - if ((rightRegion && leftRegion && rightRegion.position - (leftRegion.position + leftRegion.duration) < NumCast(regiondata.fadeIn) + NumCast(regiondata.fadeOut)) || (rightRegion && rightRegion.position - regiondata.position < NumCast(regiondata.fadeIn) + NumCast(regiondata.fadeOut))) { - return; - } else if (rightRegion && rightRegion.position - regiondata.position >= NumCast(regiondata.fadeIn) + NumCast(regiondata.fadeOut)) { - regiondata.duration = rightRegion.position - regiondata.position; - } - this.regions.push(regiondata); - return regiondata; - } - - - render() { - return ( -
-
-
- {DocListCast(this.regions).map((region) => { - return ; - })} -
-
-
- ); - } -} \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 62a34043949f051533ca549be48b774696331d43 Mon Sep 17 00:00:00 2001 From: andrewdkim Date: Mon, 5 Aug 2019 17:37:43 -0400 Subject: richtext + buttons --- src/client/views/MainView.tsx | 1 + src/client/views/animationtimeline/Timeline.tsx | 3 + .../views/animationtimeline/TimelineMenu.tsx | 12 +- src/client/views/animationtimeline/Track.tsx | 124 +++++++++++---------- .../collectionFreeForm/CollectionFreeFormView.tsx | 4 +- src/client/views/nodes/FormattedTextBox.tsx | 2 - src/new_fields/RichTextField.ts | 1 + 7 files changed, 85 insertions(+), 62 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx index f5a6715e5..669b8f018 100644 --- a/src/client/views/MainView.tsx +++ b/src/client/views/MainView.tsx @@ -400,6 +400,7 @@ export class MainView extends React.Component {
  • +
  • {btns.map(btn => diff --git a/src/client/views/animationtimeline/Timeline.tsx b/src/client/views/animationtimeline/Timeline.tsx index d2714592e..7a6d9fa52 100644 --- a/src/client/views/animationtimeline/Timeline.tsx +++ b/src/client/views/animationtimeline/Timeline.tsx @@ -34,6 +34,9 @@ export interface FlyoutProps { @observer export class Timeline extends CollectionSubView(Document) { + static Instance:Timeline; + + private readonly DEFAULT_CONTAINER_HEIGHT: number = 300; private readonly DEFAULT_TICK_SPACING: number = 50; private readonly MIN_CONTAINER_HEIGHT: number = 205; diff --git a/src/client/views/animationtimeline/TimelineMenu.tsx b/src/client/views/animationtimeline/TimelineMenu.tsx index e82075f6a..7768f51df 100644 --- a/src/client/views/animationtimeline/TimelineMenu.tsx +++ b/src/client/views/animationtimeline/TimelineMenu.tsx @@ -1,6 +1,6 @@ - import * as React from "react"; - +import {observable, action, runInAction} from "mobx"; +import {observer} from "mobx-react"; /** * TimelineMenu: @@ -27,9 +27,17 @@ import * as React from "react"; * - duration region * - */ + +@observer export class TimelineMenu extends React.Component { public static Instance:TimelineMenu; + @observable private _opacity = 1; + @observable private _x = 0; + @observable private _y = 0; + @observable private _type: "timeline" | "keyframe" | "region" | "" = ""; + + constructor (props:Readonly<{}>){ super(props); TimelineMenu.Instance = this; diff --git a/src/client/views/animationtimeline/Track.tsx b/src/client/views/animationtimeline/Track.tsx index 4f78f86b8..fc2cacba8 100644 --- a/src/client/views/animationtimeline/Track.tsx +++ b/src/client/views/animationtimeline/Track.tsx @@ -9,10 +9,6 @@ import { List } from "../../../new_fields/List"; import { Keyframe, KeyframeFunc, RegionData } from "./Keyframe"; import { FlyoutProps } from "./Timeline"; import { Transform } from "../../util/Transform"; -import { AddComparisonParameters } from "../../northstar/model/idea/idea"; -import { CollectionSchemaBooleanCell } from "../collections/CollectionSchemaCells"; -import { DocumentManager } from "../../util/DocumentManager"; -import { DocumentView } from "../nodes/DocumentView"; import { RichTextField } from "../../../new_fields/RichTextField"; interface IProps { @@ -28,8 +24,11 @@ interface IProps { export class Track extends React.Component { @observable private _inner = React.createRef(); @observable private _reactionDisposers: IReactionDisposer[] = []; - @observable private _keyReaction: any; //reaction that is used to dispose when necessary - @observable private _currentBarXReaction: any; + @observable private _currentBarXReaction: any; + @observable private _isOnKeyframe: boolean = false; + @observable private _onKeyframe: (Doc | undefined) = undefined; + @observable private _onRegionData : ( Doc | undefined) = undefined; + @observable private _leftCurrKeyframe: (Doc | undefined) = undefined; @computed private get regions() { @@ -53,53 +52,44 @@ export class Track extends React.Component { componentWillUnmount() { runInAction(() => { - if (this._keyReaction) this._keyReaction(); if (this._currentBarXReaction) this._currentBarXReaction(); }); } @action - keyReaction = () => { - return reaction( () => { - return Doc.allKeys(this.props.node).map(key => FieldValue(this.props.node[key])); - }, async () => { - console.log("rAN"); - let regiondata: (Doc | undefined) = await this.findRegion(this.props.currentBarX) ; - if (regiondata) { - let keyframes = await DocListCastAsync((regiondata as Doc).keyframes!); - keyframes!.forEach( async (kf) => { - if (kf.type === KeyframeFunc.KeyframeType.default && kf.time === this.props.currentBarX) { - console.log("full keychange triggered"); - //for this specific keyframe - kf.key = Doc.MakeCopy(this.props.node, true); - - //for fades - let leftkf: (Doc | undefined) = await KeyframeFunc.calcMinLeft(regiondata!, this.props.currentBarX, kf); // lef keyframe, if it exists - let rightkf: (Doc | undefined) = await KeyframeFunc.calcMinRight(regiondata!, this.props.currentBarX, kf); //right keyframe, if it exists - if (leftkf!.type === KeyframeFunc.KeyframeType.fade) { //replicating this keyframe to fades - let edge:(Doc | undefined) = await KeyframeFunc.calcMinLeft(regiondata!, this.props.currentBarX, leftkf!); - edge!.key = Doc.MakeCopy(kf.key as Doc, true); - leftkf!.key = Doc.MakeCopy(kf.key as Doc, true); - (Cast(edge!.key, Doc)! as Doc).opacity = 0.1; - (Cast(leftkf!.key, Doc)! as Doc).opacity = 1; - } - if (rightkf!.type === KeyframeFunc.KeyframeType.fade) { - let edge:(Doc | undefined) = await KeyframeFunc.calcMinRight(regiondata!,this.props.currentBarX, rightkf!); - edge!.key = Doc.MakeCopy(kf.key as Doc, true); - rightkf!.key = Doc.MakeCopy(kf.key as Doc, true); - (Cast(edge!.key, Doc)! as Doc).opacity = 0.1; - (Cast(rightkf!.key, Doc)! as Doc).opacity = 1; - } - } - }); + saveKeyframe = async (ref:Doc, regiondata:Doc) => { + let keyframes:List = (Cast(regiondata.keyframes, listSpec(Doc)) as List); + let kfIndex:number = keyframes.indexOf(ref); + let kf = keyframes[kfIndex] as Doc; + if (kf.type === KeyframeFunc.KeyframeType.default) { // only save for fades + console.log("full keychange triggered"); + kf.key = Doc.MakeCopy(this.props.node, true); + let leftkf: (Doc | undefined) = await KeyframeFunc.calcMinLeft(regiondata!, this.props.currentBarX, kf); // lef keyframe, if it exists + let rightkf: (Doc | undefined) = await KeyframeFunc.calcMinRight(regiondata!, this.props.currentBarX, kf); //right keyframe, if it exists + if (leftkf!.type === KeyframeFunc.KeyframeType.fade) { //replicating this keyframe to fades + let edge:(Doc | undefined) = await KeyframeFunc.calcMinLeft(regiondata!, this.props.currentBarX, leftkf!); + edge!.key = Doc.MakeCopy(kf.key as Doc, true); + leftkf!.key = Doc.MakeCopy(kf.key as Doc, true); + (Cast(edge!.key, Doc)! as Doc).opacity = 0.1; + (Cast(leftkf!.key, Doc)! as Doc).opacity = 1; } - }, {fireImmediately: true}); + if (rightkf!.type === KeyframeFunc.KeyframeType.fade) { + let edge:(Doc | undefined) = await KeyframeFunc.calcMinRight(regiondata!,this.props.currentBarX, rightkf!); + edge!.key = Doc.MakeCopy(kf.key as Doc, true); + rightkf!.key = Doc.MakeCopy(kf.key as Doc, true); + (Cast(edge!.key, Doc)! as Doc).opacity = 0.1; + (Cast(rightkf!.key, Doc)! as Doc).opacity = 1; + } + } + keyframes[kfIndex] = kf; + this._onKeyframe = undefined; + this._onRegionData = undefined; + this._isOnKeyframe = false; } - + @action currentBarXReaction = () => { return reaction(() => this.props.currentBarX, async () => { - if (this._keyReaction) this._keyReaction(); //dispose previous reaction first let regiondata: (Doc | undefined) = await this.findRegion(this.props.currentBarX); if (regiondata) { this.props.node.hidden = false; @@ -113,6 +103,10 @@ export class Track extends React.Component { @action timeChange = async (time: number) => { + if (this._isOnKeyframe && this._onKeyframe && this._onRegionData) { + console.log("saving"); + await this.saveKeyframe(this._onKeyframe, this._onRegionData); + } let regiondata = await this.findRegion(Math.round(time)); //finds a region that the scrubber is on if (regiondata) { let leftkf: (Doc | undefined) = await KeyframeFunc.calcMinLeft(regiondata, this.props.currentBarX); // lef keyframe, if it exists @@ -120,7 +114,10 @@ export class Track extends React.Component { let currentkf: (Doc | undefined) = await this.calcCurrent(regiondata); //if the scrubber is on top of the keyframe if (currentkf) { await this.applyKeys(currentkf); - this._keyReaction = this.keyReaction(); //reactivates reaction. + this._leftCurrKeyframe = currentkf; + this._isOnKeyframe = true; + this._onKeyframe = currentkf; + this._onRegionData = regiondata; } else if (leftkf && rightkf) { await this.interpolate(leftkf, rightkf, regiondata); } @@ -133,17 +130,21 @@ export class Track extends React.Component { let docFromApply = kfNode; if (this.filterKeys(Doc.allKeys(this.props.node)).length > this.filterKeys(Doc.allKeys(kfNode)).length) docFromApply = this.props.node; this.filterKeys(Doc.allKeys(docFromApply)).forEach(key => { - if (key === "type") { - if (this.props.node[key] === "text") { - this.props.node.dataDocTest = new RichTextField(StrCast(kfNode.stateData)); - console.log("updated"); - } - } if (!kfNode[key]) { this.props.node[key] = undefined; } else { - this.props.node[key] = kfNode[key]; + if (key === "data") { + if (this.props.node.type === "text"){ + let nodeData = (kfNode[key] as RichTextField).Data; + this.props.node[key] = new RichTextField(nodeData); + } + } else if (key === "creationDate") { + } else { + this.props.node[key] = kfNode[key]; + } + } + }); } @@ -151,7 +152,7 @@ export class Track extends React.Component { @action private filterKeys = (keys: string[]): string[] => { return keys.reduce((acc: string[], key: string) => { - if (key !== "regions" && key !== "data" && key !== "creationDate" && key !== "cursors" && key !== "hidden" && key !== "nativeHeight" && key !== "nativeWidth" && key !== "schemaColumns") acc.push(key); + if (key !== "regions" && key !== "cursors" && key !== "hidden" && key !== "nativeHeight" && key !== "nativeWidth" && key !== "schemaColumns") acc.push(key); return acc; }, []) as string[]; } @@ -205,22 +206,31 @@ export class Track extends React.Component { } } - - this.filterKeys(Doc.allKeys(leftNode)).forEach(key => { if (leftNode[key] && rightNode[key] && typeof (leftNode[key]) === "number" && typeof (rightNode[key]) === "number") { //if it is number, interpolate if ((key === "x" || key === "y") && pathX.length !== 0){ if (key === "x") this.props.node[key] = proposedX; if (key === "y") this.props.node[key] = proposedY; - console.log(pathX.length); - } else { const diff = NumCast(rightNode[key]) - NumCast(leftNode[key]); const adjusted = diff * finalRatio; this.props.node[key] = NumCast(leftNode[key]) + adjusted; } } else { - this.props.node[key] = leftNode[key]; + if (key === "data") { + if (this.props.node.type === "text"){ + let nodeData = StrCast((leftNode[key] as RichTextField).Data); + let currentNodeData = StrCast((this.props.node[key] as RichTextField).Data); + if (nodeData !== currentNodeData) { + this.props.node[key] = new RichTextField(nodeData); + } + } + + } else if (key === "creationDate") { + + } else { + this.props.node[key] = leftNode[key]; + } } }); } diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index 676a49288..71329f166 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -573,7 +573,9 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { addOverlay("arrangeScript", { x: 400, y: 500, width: 400, height: 300, title: "Layout Script" }, { doc: "Doc", index: "number", collection: "Doc", state: "any", docs: "Doc[]" }, "{x: number, y: number, width?: number, height?: number}"); }; } - + private _timeline = ; + se = () => { + } render() { const easing = () => this.props.Document.panTransformType === "Ease"; Doc.UpdateDocumentExtensionForField(this.props.DataDoc ? this.props.DataDoc : this.props.Document, this.props.fieldKey); diff --git a/src/client/views/nodes/FormattedTextBox.tsx b/src/client/views/nodes/FormattedTextBox.tsx index 9b37a6491..03fa7f0cd 100644 --- a/src/client/views/nodes/FormattedTextBox.tsx +++ b/src/client/views/nodes/FormattedTextBox.tsx @@ -166,8 +166,6 @@ export class FormattedTextBox extends DocComponent<(FieldViewProps & FormattedTe if (this.extensionDoc) this.extensionDoc.text = state.doc.textBetween(0, state.doc.content.size, "\n\n"); if (this.extensionDoc) this.extensionDoc.lastModified = new DateField(new Date(Date.now())); this.dataDoc[this.props.fieldKey] = new RichTextField(JSON.stringify(state.toJSON())); - this.props.Document.stateData = JSON.stringify(state.toJSON()); - this.props.Document.dataDocTest = this.dataDoc[this.props.fieldKey]; this._applyingChange = false; let title = StrCast(this.dataDoc.title); if (title && title.startsWith("-") && this._editorView && !this.Document.customTitle) { diff --git a/src/new_fields/RichTextField.ts b/src/new_fields/RichTextField.ts index 78a3a4067..0095eb31f 100644 --- a/src/new_fields/RichTextField.ts +++ b/src/new_fields/RichTextField.ts @@ -15,6 +15,7 @@ export class RichTextField extends ObjectField { this.Data = data; } + [Copy]() { return new RichTextField(this.Data); } -- cgit v1.2.3-70-g09d2 From 02f5eed127280a6827ed57e86663291ce184495b Mon Sep 17 00:00:00 2001 From: andrewdkim Date: Thu, 15 Aug 2019 17:05:53 -0400 Subject: Timeline visibility --- src/client/views/animationtimeline/Timeline.tsx | 46 ++++++++++++++++------ .../collectionFreeForm/CollectionFreeFormView.tsx | 6 +-- src/client/views/nodes/DocumentView.tsx | 1 - 3 files changed, 36 insertions(+), 17 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/animationtimeline/Timeline.tsx b/src/client/views/animationtimeline/Timeline.tsx index 10034263c..be1ae1773 100644 --- a/src/client/views/animationtimeline/Timeline.tsx +++ b/src/client/views/animationtimeline/Timeline.tsx @@ -4,15 +4,18 @@ import { CollectionSubView } from "../collections/CollectionSubView"; import { Document, listSpec } from "../../../new_fields/Schema"; import { observer } from "mobx-react"; import { Track } from "./Track"; -import { observable, reaction, action, IReactionDisposer, computed, runInAction } from "mobx"; +import { observable, reaction, action, IReactionDisposer, computed, runInAction, observe } from "mobx"; import { Cast, NumCast, StrCast, BoolCast } from "../../../new_fields/Types"; import { List } from "../../../new_fields/List"; import { Doc, DocListCast } from "../../../new_fields/Doc"; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { faPlayCircle, faBackward, faForward, faGripLines, faArrowUp, faArrowDown, faClock, faPauseCircle } from "@fortawesome/free-solid-svg-icons"; +import { faPlayCircle, faBackward, faForward, faGripLines, faArrowUp, faArrowDown, faClock, faPauseCircle, faEyeSlash } from "@fortawesome/free-solid-svg-icons"; import { ContextMenuProps } from "../ContextMenuItem"; import { ContextMenu } from "../ContextMenu"; import { TimelineOverview } from "./TimelineOverview"; +import { playcustomapp } from "googleapis/build/src/apis/playcustomapp"; +import { FieldView, FieldViewProps } from "../nodes/FieldView"; + export interface FlyoutProps { @@ -25,7 +28,7 @@ export interface FlyoutProps { @observer -export class Timeline extends CollectionSubView(Document) { +export class Timeline extends React.Component { private readonly DEFAULT_CONTAINER_HEIGHT: number = 300; private readonly DEFAULT_TICK_SPACING: number = 50; @@ -56,6 +59,7 @@ export class Timeline extends CollectionSubView(Document) { @observable private _time = 100000; //DEFAULT @observable private _ticks: number[] = []; @observable private _playButton = faPlayCircle; + @observable private _timelineVisible = false; @computed private get children(): List { @@ -74,6 +78,7 @@ export class Timeline extends CollectionSubView(Document) { componentWillMount() { this.props.Document.isAnimating ? this.props.Document.isAnimating = true : this.props.Document.isAnimating = false; + document.addEventListener("contextmenu", (e) => {this.timelineContextMenu(e);}); console.log(this._currentBarX); } @@ -86,7 +91,12 @@ export class Timeline extends CollectionSubView(Document) { reaction(() => { return NumCast(this.props.Document.curPage); }, curPage => { - this.changeCurrentBarX(curPage * this._tickIncrement / this._tickSpacing); + if (!this._isPlaying) { + this.changeCurrentBarX(curPage * this._tickIncrement / this._tickSpacing); + this.props.Document.curPage = this._currentBarX; + this.play(); + } + }); } } @@ -123,6 +133,10 @@ export class Timeline extends CollectionSubView(Document) { onPlay = (e: React.MouseEvent) => { e.preventDefault(); e.stopPropagation(); + this.play(); + } + + play = () => { if (this._isPlaying) { this._isPlaying = false; this._playButton = faPlayCircle; @@ -143,6 +157,8 @@ export class Timeline extends CollectionSubView(Document) { } } + + @action windForward = (e: React.MouseEvent) => { e.preventDefault(); @@ -326,7 +342,7 @@ export class Timeline extends CollectionSubView(Document) { } } - timelineContextMenu = (e: React.MouseEvent): void => { + timelineContextMenu = (e:MouseEvent): void => { let subitems: ContextMenuProps[] = []; let timelineContainer = this._timelineWrapper.current!; subitems.push({ @@ -340,13 +356,17 @@ export class Timeline extends CollectionSubView(Document) { }); subitems.push({ description: this._isFrozen ? "Unfreeze Timeline" : "Freeze Timeline", event: action(() => { - if (this._isFrozen) { - this._isFrozen = false; - } else { - this._isFrozen = true; - } + this._isFrozen = !this._isFrozen; }), icon: "thumbtack" }); + subitems.push({ + description: this._timelineVisible ? "Hide Timeline" : "Show Timeline", event: action(() => { + this._timelineVisible = !this._timelineVisible; + }), icon: this._timelineVisible ? faEyeSlash : "eye" + }); + subitems.push({ description: BoolCast(this.props.Document.isAnimating) ? "Enter Play Mode" : "Enter Authoring Mode", event: () => { + BoolCast(this.props.Document.isAnimating) ? this.props.Document.isAnimating = false : this.props.Document.isAnimating = true;} + , icon:BoolCast(this.props.Document.isAnimating) ? "play" : "edit"}); ContextMenu.Instance.addItem({ description: "Timeline Funcs...", subitems: subitems, icon: faClock }); } @@ -364,10 +384,10 @@ export class Timeline extends CollectionSubView(Document) { } render() { return ( -
    -
    +
    +
    -
    +
    {this.timelineToolBox(0.5)}
    diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index d01e5cadc..d10150f30 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -742,7 +742,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { } let docviews = docs.filter(doc => doc instanceof Doc).reduce((prev, doc) => { var page = NumCast(doc.page, -1); - if ((Math.abs(Math.round(page) - Math.round(curPage)) < 3) || page === -1) { + // if ((Math.abs(Math.round(page) - Math.round(curPage)) < 3) || page === -1) { let minim = BoolCast(doc.isMinimized); if (minim === undefined || !minim) { const pos = script ? this.getCalculatedPositions(script, { doc, index: prev.length, collection: this.Document, docs, state }) : @@ -755,7 +755,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { bounds: (pos.x !== undefined && pos.y !== undefined) ? { x: pos.x, y: pos.y, z: pos.z, width: NumCast(pos.width), height: NumCast(pos.height) } : undefined }); } - } + // } return prev; }, elements); @@ -902,7 +902,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { - + {this.overlayChildViews()}
    diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx index 28af39fb3..8d33c4570 100644 --- a/src/client/views/nodes/DocumentView.tsx +++ b/src/client/views/nodes/DocumentView.tsx @@ -570,7 +570,6 @@ export class DocumentView extends DocComponent(Docu subitems.push({ description: "Open Right Alias", event: () => this.props.addDocTab && this.props.addDocTab(Doc.MakeAlias(this.props.Document), this.dataDoc, "onRight"), icon: "caret-square-right" }); subitems.push({ description: "Open Fields", event: this.fieldsClicked, icon: "layer-group" }); cm.addItem({ description: "Open...", subitems: subitems, icon: "external-link-alt" }); - cm.addItem({ description: BoolCast(this.props.Document.isAnimating) ? "Enter Play Mode" : "Enter Authoring Mode", event: () => {BoolCast(this.props.Document.isAnimating) ? this.props.Document.isAnimating = false : this.props.Document.isAnimating = true;}, icon:BoolCast(this.props.Document.isAnimating) ? "play" : "edit"}); let existingMake = ContextMenu.Instance.findByDescription("Make..."); let makes: ContextMenuProps[] = existingMake && "subitems" in existingMake ? existingMake.subitems : []; makes.push({ description: this.props.Document.isBackground ? "Remove Background" : "Make Background", event: this.makeBackground, icon: BoolCast(this.props.Document.lockedPosition) ? "unlock" : "lock" }); -- cgit v1.2.3-70-g09d2 From 078abf5548a18945527f12dde1a79095bd30e50e Mon Sep 17 00:00:00 2001 From: andrewdkim Date: Fri, 16 Aug 2019 00:08:45 -0400 Subject: partially working zoom --- src/client/views/animationtimeline/Timeline.tsx | 61 +++++++++++++++------- .../collectionFreeForm/CollectionFreeFormView.tsx | 9 ++-- src/client/views/nodes/VideoBox.tsx | 2 + 3 files changed, 49 insertions(+), 23 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/animationtimeline/Timeline.tsx b/src/client/views/animationtimeline/Timeline.tsx index be1ae1773..d0f83676b 100644 --- a/src/client/views/animationtimeline/Timeline.tsx +++ b/src/client/views/animationtimeline/Timeline.tsx @@ -60,6 +60,9 @@ export class Timeline extends React.Component { @observable private _ticks: number[] = []; @observable private _playButton = faPlayCircle; @observable private _timelineVisible = false; + @observable private _mouseToggled = false; + @observable private _doubleClickEnabled = false; + @computed private get children(): List { @@ -78,8 +81,6 @@ export class Timeline extends React.Component { componentWillMount() { this.props.Document.isAnimating ? this.props.Document.isAnimating = true : this.props.Document.isAnimating = false; - document.addEventListener("contextmenu", (e) => {this.timelineContextMenu(e);}); - console.log(this._currentBarX); } componentDidMount() { @@ -92,7 +93,7 @@ export class Timeline extends React.Component { return NumCast(this.props.Document.curPage); }, curPage => { if (!this._isPlaying) { - this.changeCurrentBarX(curPage * this._tickIncrement / this._tickSpacing); + this.changeCurrentBarX(curPage * this._tickIncrement / this._tickSpacing); this.props.Document.curPage = this._currentBarX; this.play(); } @@ -107,21 +108,17 @@ export class Timeline extends React.Component { this._ticks = []; for (let i = 0; i < this._time;) { this._ticks.push(i); - i += this._tickIncrement; + i += 1000; } - let trackbox = this._trackbox.current!; - this._totalLength = this._tickSpacing * this._ticks.length; - trackbox.style.width = `${this._totalLength}`; - this._scrubberbox.current!.style.width = `${this._totalLength}`; + this._totalLength = this._tickSpacing * (this._ticks.length/ this._tickIncrement); }, {fireImmediately:true}); + this._totalLength = this._tickSpacing * (this._ticks.length/ this._tickIncrement); this._visibleLength = this._infoContainer.current!.getBoundingClientRect().width; - this._visibleStart = this._infoContainer.current!.scrollLeft; + this._visibleStart = this._infoContainer.current!.scrollLeft; }); - } - - + } @action changeCurrentBarX = (pixel: number) => { @@ -136,6 +133,7 @@ export class Timeline extends React.Component { this.play(); } + @action play = () => { if (this._isPlaying) { this._isPlaying = false; @@ -209,8 +207,6 @@ export class Timeline extends React.Component { - @observable private _mouseToggled = false; - @observable private _doubleClickEnabled = false; @action onPanDown = (e: React.PointerEvent) => { e.preventDefault(); @@ -370,6 +366,35 @@ export class Timeline extends React.Component { ContextMenu.Instance.addItem({ description: "Timeline Funcs...", subitems: subitems, icon: faClock }); } + @action + onWheelZoom = (e: React.WheelEvent) => { + e.preventDefault(); + e.stopPropagation(); + e.deltaY < 0 ? this.zoom(true) : this.zoom(false); + } + + @action + zoom = (dir: boolean) => { + if (dir){ + if (!(this._tickSpacing === 100 && this._tickIncrement === 1000)){ + if (this._tickSpacing >= 100) { + this._tickIncrement /= 2; + this._tickSpacing = 50; + this._totalLength = this._tickSpacing * (this._ticks.length/ this._tickIncrement); //CONSIDER THIS MUST CHANGE + } else { + this._tickSpacing += 10; + } + } + } else { + if (this._tickSpacing <= 50) { + this._tickSpacing = 100; + this._tickIncrement *= 2; + this._totalLength = this._tickSpacing * (this._ticks.length/ this._tickIncrement); //CONSIDER THIS MUST CHANGE + } else { + this._tickSpacing -= 10; + } + } + } private timelineToolBox = (scale:number) => { let size = 50 * scale; //50 is default @@ -389,16 +414,16 @@ export class Timeline extends React.Component {
    {this.timelineToolBox(0.5)} -
    -
    +
    +
    {this._ticks.map(element => { - return

    {this.toReadTime(element)}

    ; + if(element % this._tickIncrement === 0) return

    {this.toReadTime(element)}

    ; })}
    -
    +
    {DocListCast(this.children).map(doc => )}
    diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index d10150f30..b932db424 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -194,6 +194,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { private _lastY: number = 0; private get _pwidth() { return this.props.PanelWidth(); } private get _pheight() { return this.props.PanelHeight(); } + private _timelineRef = React.createRef(); private inkKey = "ink"; constructor(props: any) { @@ -842,6 +843,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { let analyzers: ContextMenuProps[] = existingAnalyze && "subitems" in existingAnalyze ? existingAnalyze.subitems : []; analyzers.push({ description: "Analyze Strokes", event: this.analyzeStrokes, icon: "paint-brush" }); !existingAnalyze && ContextMenu.Instance.addItem({ description: "Analyzers...", subitems: analyzers, icon: "hand-point-right" }); + this._timelineRef.current!.timelineContextMenu(e.nativeEvent); } @@ -879,10 +881,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { addOverlay("arrangeInit", { x: 400, y: 100, width: 400, height: 300, title: "Layout Initialization" }, { collection: "Doc", docs: "Doc[]" }, undefined); addOverlay("arrangeScript", { x: 400, y: 500, width: 400, height: 300, title: "Layout Script" }, { doc: "Doc", index: "number", collection: "Doc", state: "any", docs: "Doc[]" }, "{x: number, y: number, width?: number, height?: number}"); }; - } - private _timeline = ; - se = () => { - } + } render() { const easing = () => this.props.Document.panTransformType === "Ease"; Doc.UpdateDocumentExtensionForField(this.props.DataDoc ? this.props.DataDoc : this.props.Document, this.props.fieldKey); @@ -902,7 +901,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { - + {this.overlayChildViews()}
    diff --git a/src/client/views/nodes/VideoBox.tsx b/src/client/views/nodes/VideoBox.tsx index 704030d85..a33155fff 100644 --- a/src/client/views/nodes/VideoBox.tsx +++ b/src/client/views/nodes/VideoBox.tsx @@ -166,6 +166,8 @@ export class VideoBox extends DocComponent(VideoD this.Document.height = FieldValue(this.Document.width, 0) / youtubeaspect; } } + + this.player && (this.player.style.transform = ""); } componentWillUnmount() { -- cgit v1.2.3-70-g09d2 From 884a5ec15b1395690c78d18e8d2509b3619c8817 Mon Sep 17 00:00:00 2001 From: Andrew Kim Date: Mon, 19 Aug 2019 00:35:27 -0400 Subject: changes --- src/client/views/MainView.tsx | 1 + src/client/views/collections/CollectionViewChromes.tsx | 4 ---- 2 files changed, 1 insertion(+), 4 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx index f808f020b..fdea8f963 100644 --- a/src/client/views/MainView.tsx +++ b/src/client/views/MainView.tsx @@ -207,6 +207,7 @@ export class MainView extends React.Component { if (targets && targets.length && targets[0].className.toString().indexOf("contextMenu") === -1) { ContextMenu.Instance.closeMenu(); } + console.log(targets.toString()); if (targets && targets.length && targets[0].className.toString().indexOf("timeline-menu-desc") === -1 || targets[0].className.toString().indexOf("timeline-menu-item") === -1 || targets[0].className.toString().indexOf("timeline-menu-item") === -1 || targets[0].className.toString().indexOf("timeline-menu-input") === -1){ TimelineMenu.Instance.closeMenu(); } diff --git a/src/client/views/collections/CollectionViewChromes.tsx b/src/client/views/collections/CollectionViewChromes.tsx index 6ea718330..ee18bb3a4 100644 --- a/src/client/views/collections/CollectionViewChromes.tsx +++ b/src/client/views/collections/CollectionViewChromes.tsx @@ -170,11 +170,7 @@ export class CollectionViewBaseChrome extends React.Component { - this.openViewSpecs(e); - - console.log(this._keyRestrictions) - let keyRestrictionScript = "(" + this._keyRestrictions.map(i => i[1]).filter(i => i.length > 0).join(" && ") + ")"; let yearOffset = this._dateWithinValue[1] === 'y' ? 1 : 0; let monthOffset = this._dateWithinValue[1] === 'm' ? parseInt(this._dateWithinValue[0]) : 0; -- cgit v1.2.3-70-g09d2 From 96551aa8ef23485f48f6090192f18451ff66b557 Mon Sep 17 00:00:00 2001 From: andrewdkim Date: Sun, 15 Sep 2019 17:01:13 -0400 Subject: changes --- src/client/views/animationtimeline/Keyframe.tsx | 48 +++++----- src/client/views/animationtimeline/Timeline.tsx | 10 +-- src/client/views/animationtimeline/Track.tsx | 100 ++++++++++++--------- .../collectionFreeForm/CollectionFreeFormView.tsx | 1 + 4 files changed, 88 insertions(+), 71 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/animationtimeline/Keyframe.tsx b/src/client/views/animationtimeline/Keyframe.tsx index 2f0a968b9..253515dfd 100644 --- a/src/client/views/animationtimeline/Keyframe.tsx +++ b/src/client/views/animationtimeline/Keyframe.tsx @@ -410,14 +410,17 @@ export class Keyframe extends React.Component { @action makeKeyframeMenu = (kf :Doc, e:MouseEvent) => { - TimelineMenu.Instance.addItem("button", "Show Data", () => { runInAction(() => {let kvp = Docs.Create.KVPDocument(Cast(kf.key, Doc) as Doc, { width: 300, height: 300 }); CollectionDockingView.Instance.AddRightSplit(kvp, (kf.key as Doc).data as Doc); }); }), - TimelineMenu.Instance.addItem("button", "Delete", () => {}), + TimelineMenu.Instance.addItem("button", "Delete", () => { + runInAction(() => { + console.log(this.keyframes.indexOf(kf)); + this.keyframes.splice(this.keyframes.indexOf(kf), 1); + }); + }), TimelineMenu.Instance.addItem("input", "Move", (val) => {kf.time = parseInt(val, 10);}); - TimelineMenu.Instance.addMenu("Keyframe"); TimelineMenu.Instance.openMenu(e.clientX, e.clientY); } @@ -425,7 +428,8 @@ export class Keyframe extends React.Component { @action makeRegionMenu = (kf: Doc, e: MouseEvent) => { TimelineMenu.Instance.addItem("button", "Add Ease", () => {this.onContainerDown(kf, "interpolate");}), - TimelineMenu.Instance.addItem("button", "Add Path", () => {this.onContainerDown(kf, "path");}), + TimelineMenu.Instance.addItem("button", "Add Path", () => {this.onContainerDown(kf, "path");}), + TimelineMenu.Instance.addItem("button", "Remove Region", ()=>{this.regions.splice(this.regions.indexOf(this.regiondata), 1);}), TimelineMenu.Instance.addItem("input", "fadeIn", (val) => {this.regiondata.fadeIn = parseInt(val, 10);}), TimelineMenu.Instance.addItem("input", "fadeOut", (val) => {this.regiondata.fadeOut = parseInt(val, 10);}), TimelineMenu.Instance.addItem("input", "position", (val) => {this.regiondata.position = parseInt(val, 10);}), @@ -435,23 +439,7 @@ export class Keyframe extends React.Component { } @action private createKeyframeJSX = (kf: Doc, type = KeyframeFunc.KeyframeType.default) => { - if (type === KeyframeFunc.KeyframeType.default) { - return ( -
    -
    -
    { this.moveKeyframe(e, kf); }} onContextMenu={(e: React.MouseEvent) => { - e.preventDefault(); - e.stopPropagation(); - this.makeKeyframeMenu(kf, e.nativeEvent); - }}>
    -
    - ); - } - return ( -
    -
    -
    - ); + } onContainerOver = (e: React.PointerEvent, ref: React.RefObject) => { @@ -561,7 +549,23 @@ export class Keyframe extends React.Component {
    {this.keyframes.map(kf => { - return this.createKeyframeJSX(kf, kf.type as KeyframeFunc.KeyframeType); + if (kf.type as KeyframeFunc.KeyframeType === KeyframeFunc.KeyframeType.default) { + return ( +
    +
    +
    { this.moveKeyframe(e, kf); }} onContextMenu={(e: React.MouseEvent) => { + e.preventDefault(); + e.stopPropagation(); + this.makeKeyframeMenu(kf, e.nativeEvent); + }}>
    +
    + ); + } + return ( +
    +
    +
    + ); })} {this.keyframes.map( kf => { if(this.keyframes.indexOf(kf ) !== this.keyframes.length - 1) { diff --git a/src/client/views/animationtimeline/Timeline.tsx b/src/client/views/animationtimeline/Timeline.tsx index 4eb5958b5..187c9396d 100644 --- a/src/client/views/animationtimeline/Timeline.tsx +++ b/src/client/views/animationtimeline/Timeline.tsx @@ -3,7 +3,7 @@ import "./Timeline.scss"; import { listSpec } from "../../../new_fields/Schema"; import { observer } from "mobx-react"; import { Track } from "./Track"; -import { observable, reaction, action, IReactionDisposer, computed, runInAction, observe } from "mobx"; +import { observable, reaction, action, IReactionDisposer, computed, runInAction, observe, toJS } from "mobx"; import { Cast, NumCast, StrCast, BoolCast } from "../../../new_fields/Types"; import { List } from "../../../new_fields/List"; import { Doc, DocListCast } from "../../../new_fields/Doc"; @@ -61,14 +61,12 @@ export class Timeline extends React.Component { @observable private _timelineVisible = false; @observable private _mouseToggled = false; @observable private _doubleClickEnabled = false; - @observable private _mutationDisposer:MutationObserver[] = []; @observable private _reactionDisposer:IReactionDisposer[] = []; @computed private get children(): List { let extendedDocument = ["image", "video", "pdf"].includes(StrCast(this.props.Document.type)); - if (extendedDocument) { if (this.props.Document.data_ext) { return Cast((Cast(this.props.Document.data_ext, Doc) as Doc).annotations, listSpec(Doc)) as List; @@ -86,7 +84,7 @@ export class Timeline extends React.Component { componentDidMount() { if (StrCast(this.props.Document.type) === "video") { - console.log("ran"); + console.log("video"); console.log(this.props.Document.duration); if (this.props.Document.duration) { this._time = Math.round(NumCast(this.props.Document.duration)) * 1000; @@ -358,7 +356,7 @@ export class Timeline extends React.Component { e.deltaY < 0 ? this.zoom(true) : this.zoom(false); let currPixel = KeyframeFunc.convertPixelTime(prevTime, "mili", "pixel", this._tickSpacing, this._tickIncrement); this._infoContainer.current!.scrollLeft = currPixel - offset; - this._visibleStart = currPixel - offset; + this._visibleStart = currPixel - offset; } @action @@ -418,7 +416,7 @@ export class Timeline extends React.Component {
    - {DocListCast(this.children).map(doc => )} + {DocListCast(this.children).map(doc => )}
    diff --git a/src/client/views/animationtimeline/Track.tsx b/src/client/views/animationtimeline/Track.tsx index 8f0e2d1cc..e99da6648 100644 --- a/src/client/views/animationtimeline/Track.tsx +++ b/src/client/views/animationtimeline/Track.tsx @@ -8,9 +8,8 @@ import { FieldValue, Cast, NumCast, BoolCast, StrCast } from "../../../new_field import { List } from "../../../new_fields/List"; import { Keyframe, KeyframeFunc, RegionData } from "./Keyframe"; import { Transform } from "../../util/Transform"; -import { RichTextField } from "../../../new_fields/RichTextField"; -import { DateField } from "../../../new_fields/DateField"; import { Copy } from "../../../new_fields/FieldSymbols"; +import { ObjectField } from "../../../new_fields/ObjectField"; interface IProps { node: Doc; @@ -20,19 +19,20 @@ interface IProps { time: number; tickIncrement: number; tickSpacing: number; + timelineVisible: boolean; changeCurrentBarX: (x: number) => void; } @observer export class Track extends React.Component { @observable private _inner = React.createRef(); - @observable private _reactionDisposers: IReactionDisposer[] = []; @observable private _currentBarXReaction: any; + @observable private _timelineVisibleReaction: any; @observable private _isOnKeyframe: boolean = false; @observable private _onKeyframe: (Doc | undefined) = undefined; @observable private _onRegionData: (Doc | undefined) = undefined; - @observable private _leftCurrKeyframe: (Doc | undefined) = undefined; - + @observable private _storedState: (Doc | undefined) = undefined; + @computed private get regions() { return Cast(this.props.node.regions, listSpec(Doc)) as List; @@ -40,22 +40,31 @@ export class Track extends React.Component { componentWillMount() { if (!this.props.node.regions) { - this.props.node.regions = new List(); + this.props.node.regions = new List(); } - this.props.node.opacity = 1; + + } componentDidMount() { - runInAction(() => { + runInAction(async () => { + this._timelineVisibleReaction = this.timelineVisibleReaction(); this._currentBarXReaction = this.currentBarXReaction(); if (this.regions.length === 0) this.createRegion(KeyframeFunc.convertPixelTime(this.props.currentBarX, "mili", "time", this.props.tickSpacing, this.props.tickIncrement)); - this.props.node.hidden = false; + this.props.node.hidden = false; + this.props.node.opacity = 1; + let state = new Doc(); + state.key = Doc.MakeCopy(await this.props.node, true); + console.log(this.props.node.x); + this._storedState = state; }); + } componentWillUnmount() { runInAction(() => { if (this._currentBarXReaction) this._currentBarXReaction(); + if (this._timelineVisibleReaction) this._timelineVisibleReaction(); }); } @@ -89,6 +98,15 @@ export class Track extends React.Component { this._isOnKeyframe = false; } + @action + revertState = () => { + let copyDoc = Doc.MakeCopy(this.props.node, true); + this.applyKeys(this._storedState!); + let newState = new Doc(); + newState.key = copyDoc; + this._storedState = newState; + } + @action currentBarXReaction = () => { return reaction(() => this.props.currentBarX, async () => { @@ -100,9 +118,16 @@ export class Track extends React.Component { this.props.node.hidden = true; this.props.node.opacity = 0; } - }, { fireImmediately: true }); + }); + } + @action + timelineVisibleReaction = () => { + return reaction(() => { + return this.props.timelineVisible; + }, isVisible => { + this.revertState(); + }); } - @action timeChange = async (time: number) => { @@ -116,7 +141,6 @@ export class Track extends React.Component { let currentkf: (Doc | undefined) = await this.calcCurrent(regiondata); //if the scrubber is on top of the keyframe if (currentkf) { await this.applyKeys(currentkf); - this._leftCurrKeyframe = currentkf; this._isOnKeyframe = true; this._onKeyframe = currentkf; this._onRegionData = regiondata; @@ -129,39 +153,38 @@ export class Track extends React.Component { @action private applyKeys = async (kf: Doc) => { let kfNode = await Cast(kf.key, Doc) as Doc; - let docFromApply = kfNode; - console.log(Doc.allKeys(docFromApply)); + let docFromApply = kfNode; if (this.filterKeys(Doc.allKeys(this.props.node)).length > this.filterKeys(Doc.allKeys(kfNode)).length) docFromApply = this.props.node; this.filterKeys(Doc.allKeys(docFromApply)).forEach(key => { - console.log(key); if (!kfNode[key]) { this.props.node[key] = undefined; } else { - if (key === "data") { - if (this.props.node.type === "text") { - let nodeData = (kfNode[key] as RichTextField).Data; - this.props.node[key] = new RichTextField(nodeData); - } - } else if (key === "creationDate") { - this.props.node[key] = new DateField(); + let stored = kfNode[key]; + if(stored instanceof ObjectField){ + this.props.node[key] = stored[Copy](); } else { - let stored = kfNode[key]; - if (stored instanceof DateField) { - stored = stored[Copy](); - } - this.props.node[key] = stored; + this.props.node[key] = stored; } - } - }); } + private filterList = [ + "regions", + "cursors", + "hidden", + "nativeHeight", + "nativeWidth", + "schemaColumns", + "baseLayout", + "backgroundLayout", + "layout", + ]; @action private filterKeys = (keys: string[]): string[] => { return keys.reduce((acc: string[], key: string) => { - if (key !== "regions" && key !== "cursors" && key !== "hidden" && key !== "nativeHeight" && key !== "nativeWidth" && key !== "schemaColumns" && key !== "creationDate") acc.push(key); + if (!this.filterList.includes(key)) acc.push(key); return acc; }, []); } @@ -226,18 +249,11 @@ export class Track extends React.Component { this.props.node[key] = NumCast(leftNode[key]) + adjusted; } } else { - if (key === "data") { - if (this.props.node.type === "text") { - let nodeData = StrCast((leftNode[key] as RichTextField).Data); - let currentNodeData = StrCast((this.props.node[key] as RichTextField).Data); - if (nodeData !== currentNodeData) { - this.props.node[key] = new RichTextField(nodeData); - } - } - } else if (key === "creationDate") { - + let stored = leftNode[key]; + if(stored instanceof ObjectField){ + this.props.node[key] = stored[Copy](); } else { - this.props.node[key] = leftNode[key]; + this.props.node[key] = stored; } } }); @@ -277,8 +293,6 @@ export class Track extends React.Component { } } - - render() { return (
    diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index d9fc388cd..67d700f1a 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -912,6 +912,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { if (this.childDocs.some(d => BoolCast(d.isTemplate))) { layoutItems.push({ description: "Template Layout Instance", event: () => this.props.addDocTab && this.props.addDocTab(Doc.ApplyTemplate(this.props.Document)!, undefined, "onRight"), icon: "project-diagram" }); } + this._timelineRef.current!.timelineContextMenu(e.nativeEvent); layoutItems.push({ description: "reset view", event: () => { this.props.Document.panX = this.props.Document.panY = 0; this.props.Document.scale = 1; }, icon: "compress-arrows-alt" }); layoutItems.push({ description: `${this.fitToBox ? "Unset" : "Set"} Fit To Container`, event: this.fitToContainer, icon: !this.fitToBox ? "expand-arrows-alt" : "compress-arrows-alt" }); layoutItems.push({ -- cgit v1.2.3-70-g09d2 From 02119d9fa648ed530d956889a2244875978ad093 Mon Sep 17 00:00:00 2001 From: andrewdkim Date: Tue, 17 Sep 2019 16:41:16 -0400 Subject: semicolon --- .../views/collections/collectionFreeForm/CollectionFreeFormView.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index 67d700f1a..0025634a6 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -893,8 +893,8 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { Doc.GetProto(this.props.Document)["ruleColor_" + NumCast(pair.layout.heading)] = pair.layout.backgroundColor; } } - }) - }) + }); + }); } analyzeStrokes = async () => { @@ -963,7 +963,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { let noteItems: ContextMenuProps[] = []; let notes = DocListCast((CurrentUserUtils.UserDocument.noteTypes as Doc).data); notes.map((node, i) => noteItems.push({ description: (i + 1) + ": " + StrCast(node.title), event: () => this.createText(i), icon: "eye" })); - layoutItems.push({ description: "Add Note ...", subitems: noteItems, icon: "eye" }) + layoutItems.push({ description: "Add Note ...", subitems: noteItems, icon: "eye" }); ContextMenu.Instance.addItem({ description: "Freeform Options ...", subitems: layoutItems, icon: "eye" }); } -- cgit v1.2.3-70-g09d2 From 00416cdb70aa8dd9698972ab0df8ca0a6c8575f9 Mon Sep 17 00:00:00 2001 From: andrewdkim Date: Wed, 2 Oct 2019 15:59:56 -0400 Subject: Merge branch 'master' of https://github.com/browngraphicslab/Dash-Web into animationtimeline_two --- deploy/assets/pdf.worker.js | 55370 +++++++++++++++++++ package.json | 3 - src/Utils.ts | 45 + src/client/documents/Documents.ts | 10 +- src/client/goldenLayout.js | 2 +- src/client/util/DocumentManager.ts | 15 +- src/client/util/DragManager.ts | 49 +- src/client/util/ProsemirrorExampleTransfer.ts | 48 +- src/client/util/RichTextSchema.tsx | 9 +- src/client/util/SelectionManager.ts | 16 - src/client/util/TooltipTextMenu.tsx | 42 +- src/client/util/prosemirrorPatches.js | 2 +- src/client/views/DocumentButtonBar.tsx | 5 +- src/client/views/DocumentDecorations.tsx | 10 +- src/client/views/InkingCanvas.scss | 2 +- src/client/views/MainView.tsx | 12 +- src/client/views/TemplateMenu.tsx | 4 +- src/client/views/animationtimeline/Keyframe.tsx | 103 +- src/client/views/animationtimeline/Timeline.scss | 56 +- src/client/views/animationtimeline/Timeline.tsx | 152 +- .../views/animationtimeline/TimelineMenu.tsx | 11 +- src/client/views/animationtimeline/Track.tsx | 42 +- .../views/collections/CollectionBaseView.tsx | 6 +- .../views/collections/CollectionDockingView.scss | 5 +- .../views/collections/CollectionDockingView.tsx | 72 +- .../views/collections/CollectionPDFView.scss | 47 +- src/client/views/collections/CollectionPDFView.tsx | 24 +- .../views/collections/CollectionSchemaCells.tsx | 6 +- .../views/collections/CollectionSchemaView.tsx | 4 +- .../views/collections/CollectionStackingView.tsx | 12 +- .../CollectionStackingViewFieldColumn.tsx | 6 +- src/client/views/collections/CollectionSubView.tsx | 7 +- src/client/views/collections/CollectionView.tsx | 9 +- .../views/collections/CollectionViewChromes.tsx | 3 +- .../CollectionFreeFormLayoutEngines.tsx | 117 + .../collectionFreeForm/CollectionFreeFormView.tsx | 629 +- .../collections/collectionFreeForm/MarqueeView.tsx | 45 +- src/client/views/linking/LinkFollowBox.tsx | 10 + src/client/views/linking/LinkMenuItem.tsx | 4 +- .../views/nodes/CollectionFreeFormDocumentView.tsx | 27 +- src/client/views/nodes/DocumentView.tsx | 21 +- src/client/views/nodes/FieldView.tsx | 3 +- src/client/views/nodes/FormattedTextBox.scss | 20 +- src/client/views/nodes/FormattedTextBox.tsx | 149 +- src/client/views/nodes/ImageBox.tsx | 1 + src/client/views/nodes/PDFBox.scss | 132 +- src/client/views/nodes/PDFBox.tsx | 230 +- src/client/views/nodes/PresBox.tsx | 6 +- src/client/views/pdf/Annotation.tsx | 18 +- src/client/views/pdf/PDFMenu.tsx | 7 +- src/client/views/pdf/PDFViewer.scss | 123 +- src/client/views/pdf/PDFViewer.tsx | 705 +- src/client/views/pdf/Page.scss | 36 - src/client/views/pdf/Page.tsx | 293 - .../presentationview/PresentationModeMenu.tsx | 13 +- src/debug/Test.tsx | 35 +- src/new_fields/Doc.ts | 15 +- 57 files changed, 57019 insertions(+), 1829 deletions(-) create mode 100644 deploy/assets/pdf.worker.js create mode 100644 src/client/views/collections/collectionFreeForm/CollectionFreeFormLayoutEngines.tsx delete mode 100644 src/client/views/pdf/Page.scss delete mode 100644 src/client/views/pdf/Page.tsx (limited to 'src/client/views/collections') diff --git a/deploy/assets/pdf.worker.js b/deploy/assets/pdf.worker.js new file mode 100644 index 000000000..8a362bd75 --- /dev/null +++ b/deploy/assets/pdf.worker.js @@ -0,0 +1,55370 @@ +/** + * @licstart The following is the entire license notice for the + * Javascript code in this page + * + * Copyright 2018 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @licend The above is the entire license notice for the + * Javascript code in this page + */ + +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define("pdfjs-dist/build/pdf.worker", [], factory); + else if(typeof exports === 'object') + exports["pdfjs-dist/build/pdf.worker"] = factory(); + else + root["pdfjs-dist/build/pdf.worker"] = root.pdfjsWorker = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __w_pdfjs_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __w_pdfjs_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __w_pdfjs_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __w_pdfjs_require__.d = function(exports, name, getter) { +/******/ if(!__w_pdfjs_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __w_pdfjs_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __w_pdfjs_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __w_pdfjs_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __w_pdfjs_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __w_pdfjs_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __w_pdfjs_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __w_pdfjs_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __w_pdfjs_require__(__w_pdfjs_require__.s = 0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var pdfjsVersion = '2.1.266'; +var pdfjsBuild = '81f5835c'; + +var pdfjsCoreWorker = __w_pdfjs_require__(1); + +exports.WorkerMessageHandler = pdfjsCoreWorker.WorkerMessageHandler; + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.WorkerMessageHandler = exports.WorkerTask = void 0; + +var _regenerator = _interopRequireDefault(__w_pdfjs_require__(2)); + +var _util = __w_pdfjs_require__(6); + +var _pdf_manager = __w_pdfjs_require__(151); + +var _is_node = _interopRequireDefault(__w_pdfjs_require__(9)); + +var _message_handler = __w_pdfjs_require__(189); + +var _primitives = __w_pdfjs_require__(155); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } + +function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +var WorkerTask = function WorkerTaskClosure() { + function WorkerTask(name) { + this.name = name; + this.terminated = false; + this._capability = (0, _util.createPromiseCapability)(); + } + + WorkerTask.prototype = { + get finished() { + return this._capability.promise; + }, + + finish: function finish() { + this._capability.resolve(); + }, + terminate: function terminate() { + this.terminated = true; + }, + ensureNotTerminated: function ensureNotTerminated() { + if (this.terminated) { + throw new Error('Worker task was terminated'); + } + } + }; + return WorkerTask; +}(); + +exports.WorkerTask = WorkerTask; + +var PDFWorkerStream = function PDFWorkerStreamClosure() { + function PDFWorkerStream(msgHandler) { + this._msgHandler = msgHandler; + this._contentLength = null; + this._fullRequestReader = null; + this._rangeRequestReaders = []; + } + + PDFWorkerStream.prototype = { + getFullReader: function getFullReader() { + (0, _util.assert)(!this._fullRequestReader); + this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler); + return this._fullRequestReader; + }, + getRangeReader: function getRangeReader(begin, end) { + var reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler); + + this._rangeRequestReaders.push(reader); + + return reader; + }, + cancelAllRequests: function cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); + } + + var readers = this._rangeRequestReaders.slice(0); + + readers.forEach(function (reader) { + reader.cancel(reason); + }); + } + }; + + function PDFWorkerStreamReader(msgHandler) { + var _this = this; + + this._msgHandler = msgHandler; + this._contentLength = null; + this._isRangeSupported = false; + this._isStreamingSupported = false; + + var readableStream = this._msgHandler.sendWithStream('GetReader'); + + this._reader = readableStream.getReader(); + this._headersReady = this._msgHandler.sendWithPromise('ReaderHeadersReady').then(function (data) { + _this._isStreamingSupported = data.isStreamingSupported; + _this._isRangeSupported = data.isRangeSupported; + _this._contentLength = data.contentLength; + }); + } + + PDFWorkerStreamReader.prototype = { + get headersReady() { + return this._headersReady; + }, + + get contentLength() { + return this._contentLength; + }, + + get isStreamingSupported() { + return this._isStreamingSupported; + }, + + get isRangeSupported() { + return this._isRangeSupported; + }, + + read: function read() { + return this._reader.read().then(function (_ref) { + var value = _ref.value, + done = _ref.done; + + if (done) { + return { + value: undefined, + done: true + }; + } + + return { + value: value.buffer, + done: false + }; + }); + }, + cancel: function cancel(reason) { + this._reader.cancel(reason); + } + }; + + function PDFWorkerStreamRangeReader(begin, end, msgHandler) { + this._msgHandler = msgHandler; + this.onProgress = null; + + var readableStream = this._msgHandler.sendWithStream('GetRangeReader', { + begin: begin, + end: end + }); + + this._reader = readableStream.getReader(); + } + + PDFWorkerStreamRangeReader.prototype = { + get isStreamingSupported() { + return false; + }, + + read: function read() { + return this._reader.read().then(function (_ref2) { + var value = _ref2.value, + done = _ref2.done; + + if (done) { + return { + value: undefined, + done: true + }; + } + + return { + value: value.buffer, + done: false + }; + }); + }, + cancel: function cancel(reason) { + this._reader.cancel(reason); + } + }; + return PDFWorkerStream; +}(); + +var WorkerMessageHandler = { + setup: function setup(handler, port) { + var testMessageProcessed = false; + handler.on('test', function wphSetupTest(data) { + if (testMessageProcessed) { + return; + } + + testMessageProcessed = true; + + if (!(data instanceof Uint8Array)) { + handler.send('test', false); + return; + } + + var supportTransfers = data[0] === 255; + handler.postMessageTransfers = supportTransfers; + var xhr = new XMLHttpRequest(); + var responseExists = 'response' in xhr; + + try { + xhr.responseType; + } catch (e) { + responseExists = false; + } + + if (!responseExists) { + handler.send('test', false); + return; + } + + handler.send('test', { + supportTypedArray: true, + supportTransfers: supportTransfers + }); + }); + handler.on('configure', function wphConfigure(data) { + (0, _util.setVerbosityLevel)(data.verbosity); + }); + handler.on('GetDocRequest', function wphSetupDoc(data) { + return WorkerMessageHandler.createDocumentHandler(data, port); + }); + }, + createDocumentHandler: function createDocumentHandler(docParams, port) { + var pdfManager; + var terminated = false; + var cancelXHRs = null; + var WorkerTasks = []; + var apiVersion = docParams.apiVersion; + var workerVersion = '2.1.266'; + + if (apiVersion !== workerVersion) { + throw new Error("The API version \"".concat(apiVersion, "\" does not match ") + "the Worker version \"".concat(workerVersion, "\".")); + } + + var docId = docParams.docId; + var docBaseUrl = docParams.docBaseUrl; + var workerHandlerName = docParams.docId + '_worker'; + var handler = new _message_handler.MessageHandler(workerHandlerName, docId, port); + handler.postMessageTransfers = docParams.postMessageTransfers; + + function ensureNotTerminated() { + if (terminated) { + throw new Error('Worker was terminated'); + } + } + + function startWorkerTask(task) { + WorkerTasks.push(task); + } + + function finishWorkerTask(task) { + task.finish(); + var i = WorkerTasks.indexOf(task); + WorkerTasks.splice(i, 1); + } + + function loadDocument(_x) { + return _loadDocument.apply(this, arguments); + } + + function _loadDocument() { + _loadDocument = _asyncToGenerator( + /*#__PURE__*/ + _regenerator.default.mark(function _callee(recoveryMode) { + var _ref6, _ref7, numPages, fingerprint; + + return _regenerator.default.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return pdfManager.ensureDoc('checkHeader'); + + case 2: + _context.next = 4; + return pdfManager.ensureDoc('parseStartXRef'); + + case 4: + _context.next = 6; + return pdfManager.ensureDoc('parse', [recoveryMode]); + + case 6: + if (recoveryMode) { + _context.next = 9; + break; + } + + _context.next = 9; + return pdfManager.ensureDoc('checkFirstPage'); + + case 9: + _context.next = 11; + return Promise.all([pdfManager.ensureDoc('numPages'), pdfManager.ensureDoc('fingerprint')]); + + case 11: + _ref6 = _context.sent; + _ref7 = _slicedToArray(_ref6, 2); + numPages = _ref7[0]; + fingerprint = _ref7[1]; + return _context.abrupt("return", { + numPages: numPages, + fingerprint: fingerprint + }); + + case 16: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + return _loadDocument.apply(this, arguments); + } + + function getPdfManager(data, evaluatorOptions) { + var pdfManagerCapability = (0, _util.createPromiseCapability)(); + var pdfManager; + var source = data.source; + + if (source.data) { + try { + pdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl); + pdfManagerCapability.resolve(pdfManager); + } catch (ex) { + pdfManagerCapability.reject(ex); + } + + return pdfManagerCapability.promise; + } + + var pdfStream, + cachedChunks = []; + + try { + pdfStream = new PDFWorkerStream(handler); + } catch (ex) { + pdfManagerCapability.reject(ex); + return pdfManagerCapability.promise; + } + + var fullRequest = pdfStream.getFullReader(); + fullRequest.headersReady.then(function () { + if (!fullRequest.isRangeSupported) { + return; + } + + var disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported; + pdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, { + msgHandler: handler, + password: source.password, + length: fullRequest.contentLength, + disableAutoFetch: disableAutoFetch, + rangeChunkSize: source.rangeChunkSize + }, evaluatorOptions, docBaseUrl); + + for (var i = 0; i < cachedChunks.length; i++) { + pdfManager.sendProgressiveData(cachedChunks[i]); + } + + cachedChunks = []; + pdfManagerCapability.resolve(pdfManager); + cancelXHRs = null; + }).catch(function (reason) { + pdfManagerCapability.reject(reason); + cancelXHRs = null; + }); + var loaded = 0; + + var flushChunks = function flushChunks() { + var pdfFile = (0, _util.arraysToBytes)(cachedChunks); + + if (source.length && pdfFile.length !== source.length) { + (0, _util.warn)('reported HTTP length is different from actual'); + } + + try { + pdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl); + pdfManagerCapability.resolve(pdfManager); + } catch (ex) { + pdfManagerCapability.reject(ex); + } + + cachedChunks = []; + }; + + var readPromise = new Promise(function (resolve, reject) { + var readChunk = function readChunk(chunk) { + try { + ensureNotTerminated(); + + if (chunk.done) { + if (!pdfManager) { + flushChunks(); + } + + cancelXHRs = null; + return; + } + + var data = chunk.value; + loaded += (0, _util.arrayByteLength)(data); + + if (!fullRequest.isStreamingSupported) { + handler.send('DocProgress', { + loaded: loaded, + total: Math.max(loaded, fullRequest.contentLength || 0) + }); + } + + if (pdfManager) { + pdfManager.sendProgressiveData(data); + } else { + cachedChunks.push(data); + } + + fullRequest.read().then(readChunk, reject); + } catch (e) { + reject(e); + } + }; + + fullRequest.read().then(readChunk, reject); + }); + readPromise.catch(function (e) { + pdfManagerCapability.reject(e); + cancelXHRs = null; + }); + + cancelXHRs = function cancelXHRs() { + pdfStream.cancelAllRequests('abort'); + }; + + return pdfManagerCapability.promise; + } + + function setupDoc(data) { + function onSuccess(doc) { + ensureNotTerminated(); + handler.send('GetDoc', { + pdfInfo: doc + }); + } + + function onFailure(e) { + ensureNotTerminated(); + + if (e instanceof _util.PasswordException) { + var task = new WorkerTask('PasswordException: response ' + e.code); + startWorkerTask(task); + handler.sendWithPromise('PasswordRequest', e).then(function (data) { + finishWorkerTask(task); + pdfManager.updatePassword(data.password); + pdfManagerReady(); + }).catch(function (boundException) { + finishWorkerTask(task); + handler.send('PasswordException', boundException); + }.bind(null, e)); + } else if (e instanceof _util.InvalidPDFException) { + handler.send('InvalidPDF', e); + } else if (e instanceof _util.MissingPDFException) { + handler.send('MissingPDF', e); + } else if (e instanceof _util.UnexpectedResponseException) { + handler.send('UnexpectedResponse', e); + } else { + handler.send('UnknownError', new _util.UnknownErrorException(e.message, e.toString())); + } + } + + function pdfManagerReady() { + ensureNotTerminated(); + loadDocument(false).then(onSuccess, function loadFailure(ex) { + ensureNotTerminated(); + + if (!(ex instanceof _util.XRefParseException)) { + onFailure(ex); + return; + } + + pdfManager.requestLoadedStream(); + pdfManager.onLoadedStream().then(function () { + ensureNotTerminated(); + loadDocument(true).then(onSuccess, onFailure); + }); + }, onFailure); + } + + ensureNotTerminated(); + var evaluatorOptions = { + forceDataSchema: data.disableCreateObjectURL, + maxImageSize: data.maxImageSize, + disableFontFace: data.disableFontFace, + nativeImageDecoderSupport: data.nativeImageDecoderSupport, + ignoreErrors: data.ignoreErrors, + isEvalSupported: data.isEvalSupported + }; + getPdfManager(data, evaluatorOptions).then(function (newPdfManager) { + if (terminated) { + newPdfManager.terminate(); + throw new Error('Worker was terminated'); + } + + pdfManager = newPdfManager; + pdfManager.onLoadedStream().then(function (stream) { + handler.send('DataLoaded', { + length: stream.bytes.byteLength + }); + }); + }).then(pdfManagerReady, onFailure); + } + + handler.on('GetPage', function wphSetupGetPage(data) { + return pdfManager.getPage(data.pageIndex).then(function (page) { + return Promise.all([pdfManager.ensure(page, 'rotate'), pdfManager.ensure(page, 'ref'), pdfManager.ensure(page, 'userUnit'), pdfManager.ensure(page, 'view')]).then(function (_ref3) { + var _ref4 = _slicedToArray(_ref3, 4), + rotate = _ref4[0], + ref = _ref4[1], + userUnit = _ref4[2], + view = _ref4[3]; + + return { + rotate: rotate, + ref: ref, + userUnit: userUnit, + view: view + }; + }); + }); + }); + handler.on('GetPageIndex', function wphSetupGetPageIndex(data) { + var ref = new _primitives.Ref(data.ref.num, data.ref.gen); + var catalog = pdfManager.pdfDocument.catalog; + return catalog.getPageIndex(ref); + }); + handler.on('GetDestinations', function wphSetupGetDestinations(data) { + return pdfManager.ensureCatalog('destinations'); + }); + handler.on('GetDestination', function wphSetupGetDestination(data) { + return pdfManager.ensureCatalog('getDestination', [data.id]); + }); + handler.on('GetPageLabels', function wphSetupGetPageLabels(data) { + return pdfManager.ensureCatalog('pageLabels'); + }); + handler.on('GetPageMode', function wphSetupGetPageMode(data) { + return pdfManager.ensureCatalog('pageMode'); + }); + handler.on('getOpenActionDestination', function (data) { + return pdfManager.ensureCatalog('openActionDestination'); + }); + handler.on('GetAttachments', function wphSetupGetAttachments(data) { + return pdfManager.ensureCatalog('attachments'); + }); + handler.on('GetJavaScript', function wphSetupGetJavaScript(data) { + return pdfManager.ensureCatalog('javaScript'); + }); + handler.on('GetOutline', function wphSetupGetOutline(data) { + return pdfManager.ensureCatalog('documentOutline'); + }); + handler.on('GetPermissions', function (data) { + return pdfManager.ensureCatalog('permissions'); + }); + handler.on('GetMetadata', function wphSetupGetMetadata(data) { + return Promise.all([pdfManager.ensureDoc('documentInfo'), pdfManager.ensureCatalog('metadata')]); + }); + handler.on('GetData', function wphSetupGetData(data) { + pdfManager.requestLoadedStream(); + return pdfManager.onLoadedStream().then(function (stream) { + return stream.bytes; + }); + }); + handler.on('GetStats', function wphSetupGetStats(data) { + return pdfManager.pdfDocument.xref.stats; + }); + handler.on('GetAnnotations', function (_ref5) { + var pageIndex = _ref5.pageIndex, + intent = _ref5.intent; + return pdfManager.getPage(pageIndex).then(function (page) { + return page.getAnnotationsData(intent); + }); + }); + handler.on('RenderPageRequest', function wphSetupRenderPage(data) { + var pageIndex = data.pageIndex; + pdfManager.getPage(pageIndex).then(function (page) { + var task = new WorkerTask('RenderPageRequest: page ' + pageIndex); + startWorkerTask(task); + var pageNum = pageIndex + 1; + var start = Date.now(); + page.getOperatorList({ + handler: handler, + task: task, + intent: data.intent, + renderInteractiveForms: data.renderInteractiveForms + }).then(function (operatorList) { + finishWorkerTask(task); + (0, _util.info)('page=' + pageNum + ' - getOperatorList: time=' + (Date.now() - start) + 'ms, len=' + operatorList.totalLength); + }, function (e) { + finishWorkerTask(task); + + if (task.terminated) { + return; + } + + handler.send('UnsupportedFeature', { + featureId: _util.UNSUPPORTED_FEATURES.unknown + }); + var minimumStackMessage = 'worker.js: while trying to getPage() and getOperatorList()'; + var wrappedException; + + if (typeof e === 'string') { + wrappedException = { + message: e, + stack: minimumStackMessage + }; + } else if (_typeof(e) === 'object') { + wrappedException = { + message: e.message || e.toString(), + stack: e.stack || minimumStackMessage + }; + } else { + wrappedException = { + message: 'Unknown exception type: ' + _typeof(e), + stack: minimumStackMessage + }; + } + + handler.send('PageError', { + pageNum: pageNum, + error: wrappedException, + intent: data.intent + }); + }); + }); + }, this); + handler.on('GetTextContent', function wphExtractText(data, sink) { + var pageIndex = data.pageIndex; + + sink.onPull = function (desiredSize) {}; + + sink.onCancel = function (reason) {}; + + pdfManager.getPage(pageIndex).then(function (page) { + var task = new WorkerTask('GetTextContent: page ' + pageIndex); + startWorkerTask(task); + var pageNum = pageIndex + 1; + var start = Date.now(); + page.extractTextContent({ + handler: handler, + task: task, + sink: sink, + normalizeWhitespace: data.normalizeWhitespace, + combineTextItems: data.combineTextItems + }).then(function () { + finishWorkerTask(task); + (0, _util.info)('text indexing: page=' + pageNum + ' - time=' + (Date.now() - start) + 'ms'); + sink.close(); + }, function (reason) { + finishWorkerTask(task); + + if (task.terminated) { + return; + } + + sink.error(reason); + throw reason; + }); + }); + }); + handler.on('FontFallback', function (data) { + return pdfManager.fontFallback(data.id, handler); + }); + handler.on('Cleanup', function wphCleanup(data) { + return pdfManager.cleanup(); + }); + handler.on('Terminate', function wphTerminate(data) { + terminated = true; + + if (pdfManager) { + pdfManager.terminate(); + pdfManager = null; + } + + if (cancelXHRs) { + cancelXHRs(); + } + + var waitOn = []; + WorkerTasks.forEach(function (task) { + waitOn.push(task.finished); + task.terminate(); + }); + return Promise.all(waitOn).then(function () { + handler.destroy(); + handler = null; + }); + }); + handler.on('Ready', function wphReady(data) { + setupDoc(docParams); + docParams = null; + }); + return workerHandlerName; + }, + initializeFromPort: function initializeFromPort(port) { + var handler = new _message_handler.MessageHandler('worker', 'main', port); + WorkerMessageHandler.setup(handler, port); + handler.send('ready', null); + } +}; +exports.WorkerMessageHandler = WorkerMessageHandler; + +function isMessagePort(maybePort) { + return typeof maybePort.postMessage === 'function' && 'onmessage' in maybePort; +} + +if (typeof window === 'undefined' && !(0, _is_node.default)() && typeof self !== 'undefined' && isMessagePort(self)) { + WorkerMessageHandler.initializeFromPort(self); +} + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = __w_pdfjs_require__(3); + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var g = function () { + return this || (typeof self === "undefined" ? "undefined" : _typeof(self)) === "object" && self; +}() || Function("return this")(); + +var hadRuntime = g.regeneratorRuntime && Object.getOwnPropertyNames(g).indexOf("regeneratorRuntime") >= 0; +var oldRuntime = hadRuntime && g.regeneratorRuntime; +g.regeneratorRuntime = undefined; +module.exports = __w_pdfjs_require__(4); + +if (hadRuntime) { + g.regeneratorRuntime = oldRuntime; +} else { + try { + delete g.regeneratorRuntime; + } catch (e) { + g.regeneratorRuntime = undefined; + } +} + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(module) { + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +!function (global) { + "use strict"; + + var Op = Object.prototype; + var hasOwn = Op.hasOwnProperty; + var undefined; + var $Symbol = typeof Symbol === "function" ? Symbol : {}; + var iteratorSymbol = $Symbol.iterator || "@@iterator"; + var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; + var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + var inModule = ( false ? undefined : _typeof(module)) === "object"; + var runtime = global.regeneratorRuntime; + + if (runtime) { + if (inModule) { + module.exports = runtime; + } + + return; + } + + runtime = global.regeneratorRuntime = inModule ? module.exports : {}; + + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; + var generator = Object.create(protoGenerator.prototype); + var context = new Context(tryLocsList || []); + generator._invoke = makeInvokeMethod(innerFn, self, context); + return generator; + } + + runtime.wrap = wrap; + + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; + var ContinueSentinel = {}; + + function Generator() {} + + function GeneratorFunction() {} + + function GeneratorFunctionPrototype() {} + + var IteratorPrototype = {}; + + IteratorPrototype[iteratorSymbol] = function () { + return this; + }; + + var getProto = Object.getPrototypeOf; + var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + + if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { + IteratorPrototype = NativeIteratorPrototype; + } + + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; + GeneratorFunctionPrototype.constructor = GeneratorFunction; + GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; + + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + prototype[method] = function (arg) { + return this._invoke(method, arg); + }; + }); + } + + runtime.isGeneratorFunction = function (genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; + }; + + runtime.mark = function (genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + + if (!(toStringTagSymbol in genFun)) { + genFun[toStringTagSymbol] = "GeneratorFunction"; + } + } + + genFun.prototype = Object.create(Gp); + return genFun; + }; + + runtime.awrap = function (arg) { + return { + __await: arg + }; + }; + + function AsyncIterator(generator) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + + if (record.type === "throw") { + reject(record.arg); + } else { + var result = record.arg; + var value = result.value; + + if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) { + return Promise.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }); + } + + return Promise.resolve(value).then(function (unwrapped) { + result.value = unwrapped; + resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); + } + } + + var previousPromise; + + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new Promise(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } + + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + + AsyncIterator.prototype[asyncIteratorSymbol] = function () { + return this; + }; + + runtime.AsyncIterator = AsyncIterator; + + runtime.async = function (innerFn, outerFn, self, tryLocsList) { + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList)); + return runtime.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }; + + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } + + return doneResult(); + } + + context.method = method; + context.arg = arg; + + while (true) { + var delegate = context.delegate; + + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + + if (context.method === "next") { + context.sent = context._sent = context.arg; + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } + + context.dispatchException(context.arg); + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } + + state = GenStateExecuting; + var record = tryCatch(innerFn, self, context); + + if (record.type === "normal") { + state = context.done ? GenStateCompleted : GenStateSuspendedYield; + + if (record.arg === ContinueSentinel) { + continue; + } + + return { + value: record.arg, + done: context.done + }; + } else if (record.type === "throw") { + state = GenStateCompleted; + context.method = "throw"; + context.arg = record.arg; + } + } + }; + } + + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + + if (method === undefined) { + context.delegate = null; + + if (context.method === "throw") { + if (delegate.iterator.return) { + context.method = "return"; + context.arg = undefined; + maybeInvokeDelegate(delegate, context); + + if (context.method === "throw") { + return ContinueSentinel; + } + } + + context.method = "throw"; + context.arg = new TypeError("The iterator does not provide a 'throw' method"); + } + + return ContinueSentinel; + } + + var record = tryCatch(method, delegate.iterator, context.arg); + + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } + + var info = record.arg; + + if (!info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; + } + + if (info.done) { + context[delegate.resultName] = info.value; + context.next = delegate.nextLoc; + + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined; + } + } else { + return info; + } + + context.delegate = null; + return ContinueSentinel; + } + + defineIteratorMethods(Gp); + Gp[toStringTagSymbol] = "Generator"; + + Gp[iteratorSymbol] = function () { + return this; + }; + + Gp.toString = function () { + return "[object Generator]"; + }; + + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + + if (1 in locs) { + entry.catchLoc = locs[1]; + } + + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } + + this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } + + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } + + runtime.keys = function (object) { + var keys = []; + + for (var key in object) { + keys.push(key); + } + + keys.reverse(); + return function next() { + while (keys.length) { + var key = keys.pop(); + + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } + + next.done = true; + return next; + }; + }; + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined; + next.done = true; + return next; + }; + + return next.next = next; + } + } + + return { + next: doneResult + }; + } + + runtime.values = values; + + function doneResult() { + return { + value: undefined, + done: true + }; + } + + Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + this.prev = 0; + this.next = 0; + this.sent = this._sent = undefined; + this.done = false; + this.delegate = null; + this.method = "next"; + this.arg = undefined; + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { + this[name] = undefined; + } + } + } + }, + stop: function stop() { + this.done = true; + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } + + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) { + throw exception; + } + + var context = this; + + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + + if (caught) { + context.method = "next"; + context.arg = undefined; + } + + return !!caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; + + if (entry.tryLoc === "root") { + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { + finallyEntry = null; + } + + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; + + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } + + return this.complete(record); + }, + complete: function complete(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } + + if (record.type === "break" || record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } + + return ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + "catch": function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + + return thrown; + } + } + + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + if (this.method === "next") { + this.arg = undefined; + } + + return ContinueSentinel; + } + }; +}(function () { + return this || (typeof self === "undefined" ? "undefined" : _typeof(self)) === "object" && self; +}() || Function("return this")()); +/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(5)(module))) + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (module) { + if (!module.webpackPolyfill) { + module.deprecate = function () {}; + + module.paths = []; + if (!module.children) module.children = []; + Object.defineProperty(module, "loaded", { + enumerable: true, + get: function get() { + return module.l; + } + }); + Object.defineProperty(module, "id", { + enumerable: true, + get: function get() { + return module.i; + } + }); + module.webpackPolyfill = 1; + } + + return module; +}; + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.toRomanNumerals = toRomanNumerals; +exports.arrayByteLength = arrayByteLength; +exports.arraysToBytes = arraysToBytes; +exports.assert = assert; +exports.bytesToString = bytesToString; +exports.createPromiseCapability = createPromiseCapability; +exports.deprecated = deprecated; +exports.getInheritableProperty = getInheritableProperty; +exports.getLookupTableFactory = getLookupTableFactory; +exports.getVerbosityLevel = getVerbosityLevel; +exports.info = info; +exports.isArrayBuffer = isArrayBuffer; +exports.isBool = isBool; +exports.isEmptyObj = isEmptyObj; +exports.isNum = isNum; +exports.isString = isString; +exports.isSpace = isSpace; +exports.isSameOrigin = isSameOrigin; +exports.createValidAbsoluteUrl = createValidAbsoluteUrl; +exports.isLittleEndian = isLittleEndian; +exports.isEvalSupported = isEvalSupported; +exports.log2 = log2; +exports.readInt8 = readInt8; +exports.readUint16 = readUint16; +exports.readUint32 = readUint32; +exports.removeNullCharacters = removeNullCharacters; +exports.setVerbosityLevel = setVerbosityLevel; +exports.shadow = shadow; +exports.string32 = string32; +exports.stringToBytes = stringToBytes; +exports.stringToPDFString = stringToPDFString; +exports.stringToUTF8String = stringToUTF8String; +exports.utf8StringToString = utf8StringToString; +exports.warn = warn; +exports.unreachable = unreachable; +Object.defineProperty(exports, "ReadableStream", { + enumerable: true, + get: function get() { + return _streams_polyfill.ReadableStream; + } +}); +Object.defineProperty(exports, "URL", { + enumerable: true, + get: function get() { + return _url_polyfill.URL; + } +}); +exports.createObjectURL = exports.FormatError = exports.XRefParseException = exports.XRefEntryException = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = exports.MissingDataException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = void 0; + +__w_pdfjs_require__(7); + +var _streams_polyfill = __w_pdfjs_require__(147); + +var _url_polyfill = __w_pdfjs_require__(149); + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; +exports.IDENTITY_MATRIX = IDENTITY_MATRIX; +var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; +exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX; +var NativeImageDecoding = { + NONE: 'none', + DECODE: 'decode', + DISPLAY: 'display' +}; +exports.NativeImageDecoding = NativeImageDecoding; +var PermissionFlag = { + PRINT: 0x04, + MODIFY_CONTENTS: 0x08, + COPY: 0x10, + MODIFY_ANNOTATIONS: 0x20, + FILL_INTERACTIVE_FORMS: 0x100, + COPY_FOR_ACCESSIBILITY: 0x200, + ASSEMBLE: 0x400, + PRINT_HIGH_QUALITY: 0x800 +}; +exports.PermissionFlag = PermissionFlag; +var TextRenderingMode = { + FILL: 0, + STROKE: 1, + FILL_STROKE: 2, + INVISIBLE: 3, + FILL_ADD_TO_PATH: 4, + STROKE_ADD_TO_PATH: 5, + FILL_STROKE_ADD_TO_PATH: 6, + ADD_TO_PATH: 7, + FILL_STROKE_MASK: 3, + ADD_TO_PATH_FLAG: 4 +}; +exports.TextRenderingMode = TextRenderingMode; +var ImageKind = { + GRAYSCALE_1BPP: 1, + RGB_24BPP: 2, + RGBA_32BPP: 3 +}; +exports.ImageKind = ImageKind; +var AnnotationType = { + TEXT: 1, + LINK: 2, + FREETEXT: 3, + LINE: 4, + SQUARE: 5, + CIRCLE: 6, + POLYGON: 7, + POLYLINE: 8, + HIGHLIGHT: 9, + UNDERLINE: 10, + SQUIGGLY: 11, + STRIKEOUT: 12, + STAMP: 13, + CARET: 14, + INK: 15, + POPUP: 16, + FILEATTACHMENT: 17, + SOUND: 18, + MOVIE: 19, + WIDGET: 20, + SCREEN: 21, + PRINTERMARK: 22, + TRAPNET: 23, + WATERMARK: 24, + THREED: 25, + REDACT: 26 +}; +exports.AnnotationType = AnnotationType; +var AnnotationFlag = { + INVISIBLE: 0x01, + HIDDEN: 0x02, + PRINT: 0x04, + NOZOOM: 0x08, + NOROTATE: 0x10, + NOVIEW: 0x20, + READONLY: 0x40, + LOCKED: 0x80, + TOGGLENOVIEW: 0x100, + LOCKEDCONTENTS: 0x200 +}; +exports.AnnotationFlag = AnnotationFlag; +var AnnotationFieldFlag = { + READONLY: 0x0000001, + REQUIRED: 0x0000002, + NOEXPORT: 0x0000004, + MULTILINE: 0x0001000, + PASSWORD: 0x0002000, + NOTOGGLETOOFF: 0x0004000, + RADIO: 0x0008000, + PUSHBUTTON: 0x0010000, + COMBO: 0x0020000, + EDIT: 0x0040000, + SORT: 0x0080000, + FILESELECT: 0x0100000, + MULTISELECT: 0x0200000, + DONOTSPELLCHECK: 0x0400000, + DONOTSCROLL: 0x0800000, + COMB: 0x1000000, + RICHTEXT: 0x2000000, + RADIOSINUNISON: 0x2000000, + COMMITONSELCHANGE: 0x4000000 +}; +exports.AnnotationFieldFlag = AnnotationFieldFlag; +var AnnotationBorderStyleType = { + SOLID: 1, + DASHED: 2, + BEVELED: 3, + INSET: 4, + UNDERLINE: 5 +}; +exports.AnnotationBorderStyleType = AnnotationBorderStyleType; +var StreamType = { + UNKNOWN: 0, + FLATE: 1, + LZW: 2, + DCT: 3, + JPX: 4, + JBIG: 5, + A85: 6, + AHX: 7, + CCF: 8, + RL: 9 +}; +exports.StreamType = StreamType; +var FontType = { + UNKNOWN: 0, + TYPE1: 1, + TYPE1C: 2, + CIDFONTTYPE0: 3, + CIDFONTTYPE0C: 4, + TRUETYPE: 5, + CIDFONTTYPE2: 6, + TYPE3: 7, + OPENTYPE: 8, + TYPE0: 9, + MMTYPE1: 10 +}; +exports.FontType = FontType; +var VerbosityLevel = { + ERRORS: 0, + WARNINGS: 1, + INFOS: 5 +}; +exports.VerbosityLevel = VerbosityLevel; +var CMapCompressionType = { + NONE: 0, + BINARY: 1, + STREAM: 2 +}; +exports.CMapCompressionType = CMapCompressionType; +var OPS = { + dependency: 1, + setLineWidth: 2, + setLineCap: 3, + setLineJoin: 4, + setMiterLimit: 5, + setDash: 6, + setRenderingIntent: 7, + setFlatness: 8, + setGState: 9, + save: 10, + restore: 11, + transform: 12, + moveTo: 13, + lineTo: 14, + curveTo: 15, + curveTo2: 16, + curveTo3: 17, + closePath: 18, + rectangle: 19, + stroke: 20, + closeStroke: 21, + fill: 22, + eoFill: 23, + fillStroke: 24, + eoFillStroke: 25, + closeFillStroke: 26, + closeEOFillStroke: 27, + endPath: 28, + clip: 29, + eoClip: 30, + beginText: 31, + endText: 32, + setCharSpacing: 33, + setWordSpacing: 34, + setHScale: 35, + setLeading: 36, + setFont: 37, + setTextRenderingMode: 38, + setTextRise: 39, + moveText: 40, + setLeadingMoveText: 41, + setTextMatrix: 42, + nextLine: 43, + showText: 44, + showSpacedText: 45, + nextLineShowText: 46, + nextLineSetSpacingShowText: 47, + setCharWidth: 48, + setCharWidthAndBounds: 49, + setStrokeColorSpace: 50, + setFillColorSpace: 51, + setStrokeColor: 52, + setStrokeColorN: 53, + setFillColor: 54, + setFillColorN: 55, + setStrokeGray: 56, + setFillGray: 57, + setStrokeRGBColor: 58, + setFillRGBColor: 59, + setStrokeCMYKColor: 60, + setFillCMYKColor: 61, + shadingFill: 62, + beginInlineImage: 63, + beginImageData: 64, + endInlineImage: 65, + paintXObject: 66, + markPoint: 67, + markPointProps: 68, + beginMarkedContent: 69, + beginMarkedContentProps: 70, + endMarkedContent: 71, + beginCompat: 72, + endCompat: 73, + paintFormXObjectBegin: 74, + paintFormXObjectEnd: 75, + beginGroup: 76, + endGroup: 77, + beginAnnotations: 78, + endAnnotations: 79, + beginAnnotation: 80, + endAnnotation: 81, + paintJpegXObject: 82, + paintImageMaskXObject: 83, + paintImageMaskXObjectGroup: 84, + paintImageXObject: 85, + paintInlineImageXObject: 86, + paintInlineImageXObjectGroup: 87, + paintImageXObjectRepeat: 88, + paintImageMaskXObjectRepeat: 89, + paintSolidColorImageMask: 90, + constructPath: 91 +}; +exports.OPS = OPS; +var UNSUPPORTED_FEATURES = { + unknown: 'unknown', + forms: 'forms', + javaScript: 'javaScript', + smask: 'smask', + shadingPattern: 'shadingPattern', + font: 'font' +}; +exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES; +var PasswordResponses = { + NEED_PASSWORD: 1, + INCORRECT_PASSWORD: 2 +}; +exports.PasswordResponses = PasswordResponses; +var verbosity = VerbosityLevel.WARNINGS; + +function setVerbosityLevel(level) { + if (Number.isInteger(level)) { + verbosity = level; + } +} + +function getVerbosityLevel() { + return verbosity; +} + +function info(msg) { + if (verbosity >= VerbosityLevel.INFOS) { + console.log('Info: ' + msg); + } +} + +function warn(msg) { + if (verbosity >= VerbosityLevel.WARNINGS) { + console.log('Warning: ' + msg); + } +} + +function deprecated(details) { + console.log('Deprecated API usage: ' + details); +} + +function unreachable(msg) { + throw new Error(msg); +} + +function assert(cond, msg) { + if (!cond) { + unreachable(msg); + } +} + +function isSameOrigin(baseUrl, otherUrl) { + try { + var base = new _url_polyfill.URL(baseUrl); + + if (!base.origin || base.origin === 'null') { + return false; + } + } catch (e) { + return false; + } + + var other = new _url_polyfill.URL(otherUrl, base); + return base.origin === other.origin; +} + +function _isValidProtocol(url) { + if (!url) { + return false; + } + + switch (url.protocol) { + case 'http:': + case 'https:': + case 'ftp:': + case 'mailto:': + case 'tel:': + return true; + + default: + return false; + } +} + +function createValidAbsoluteUrl(url, baseUrl) { + if (!url) { + return null; + } + + try { + var absoluteUrl = baseUrl ? new _url_polyfill.URL(url, baseUrl) : new _url_polyfill.URL(url); + + if (_isValidProtocol(absoluteUrl)) { + return absoluteUrl; + } + } catch (ex) {} + + return null; +} + +function shadow(obj, prop, value) { + Object.defineProperty(obj, prop, { + value: value, + enumerable: true, + configurable: true, + writable: false + }); + return value; +} + +function getLookupTableFactory(initializer) { + var lookup; + return function () { + if (initializer) { + lookup = Object.create(null); + initializer(lookup); + initializer = null; + } + + return lookup; + }; +} + +var PasswordException = function PasswordExceptionClosure() { + function PasswordException(msg, code) { + this.name = 'PasswordException'; + this.message = msg; + this.code = code; + } + + PasswordException.prototype = new Error(); + PasswordException.constructor = PasswordException; + return PasswordException; +}(); + +exports.PasswordException = PasswordException; + +var UnknownErrorException = function UnknownErrorExceptionClosure() { + function UnknownErrorException(msg, details) { + this.name = 'UnknownErrorException'; + this.message = msg; + this.details = details; + } + + UnknownErrorException.prototype = new Error(); + UnknownErrorException.constructor = UnknownErrorException; + return UnknownErrorException; +}(); + +exports.UnknownErrorException = UnknownErrorException; + +var InvalidPDFException = function InvalidPDFExceptionClosure() { + function InvalidPDFException(msg) { + this.name = 'InvalidPDFException'; + this.message = msg; + } + + InvalidPDFException.prototype = new Error(); + InvalidPDFException.constructor = InvalidPDFException; + return InvalidPDFException; +}(); + +exports.InvalidPDFException = InvalidPDFException; + +var MissingPDFException = function MissingPDFExceptionClosure() { + function MissingPDFException(msg) { + this.name = 'MissingPDFException'; + this.message = msg; + } + + MissingPDFException.prototype = new Error(); + MissingPDFException.constructor = MissingPDFException; + return MissingPDFException; +}(); + +exports.MissingPDFException = MissingPDFException; + +var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() { + function UnexpectedResponseException(msg, status) { + this.name = 'UnexpectedResponseException'; + this.message = msg; + this.status = status; + } + + UnexpectedResponseException.prototype = new Error(); + UnexpectedResponseException.constructor = UnexpectedResponseException; + return UnexpectedResponseException; +}(); + +exports.UnexpectedResponseException = UnexpectedResponseException; + +var MissingDataException = function MissingDataExceptionClosure() { + function MissingDataException(begin, end) { + this.begin = begin; + this.end = end; + this.message = 'Missing data [' + begin + ', ' + end + ')'; + } + + MissingDataException.prototype = new Error(); + MissingDataException.prototype.name = 'MissingDataException'; + MissingDataException.constructor = MissingDataException; + return MissingDataException; +}(); + +exports.MissingDataException = MissingDataException; + +var XRefEntryException = function XRefEntryExceptionClosure() { + function XRefEntryException(msg) { + this.message = msg; + } + + XRefEntryException.prototype = new Error(); + XRefEntryException.prototype.name = 'XRefEntryException'; + XRefEntryException.constructor = XRefEntryException; + return XRefEntryException; +}(); + +exports.XRefEntryException = XRefEntryException; + +var XRefParseException = function XRefParseExceptionClosure() { + function XRefParseException(msg) { + this.message = msg; + } + + XRefParseException.prototype = new Error(); + XRefParseException.prototype.name = 'XRefParseException'; + XRefParseException.constructor = XRefParseException; + return XRefParseException; +}(); + +exports.XRefParseException = XRefParseException; + +var FormatError = function FormatErrorClosure() { + function FormatError(msg) { + this.message = msg; + } + + FormatError.prototype = new Error(); + FormatError.prototype.name = 'FormatError'; + FormatError.constructor = FormatError; + return FormatError; +}(); + +exports.FormatError = FormatError; + +var AbortException = function AbortExceptionClosure() { + function AbortException(msg) { + this.name = 'AbortException'; + this.message = msg; + } + + AbortException.prototype = new Error(); + AbortException.constructor = AbortException; + return AbortException; +}(); + +exports.AbortException = AbortException; +var NullCharactersRegExp = /\x00/g; + +function removeNullCharacters(str) { + if (typeof str !== 'string') { + warn('The argument for removeNullCharacters must be a string.'); + return str; + } + + return str.replace(NullCharactersRegExp, ''); +} + +function bytesToString(bytes) { + assert(bytes !== null && _typeof(bytes) === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString'); + var length = bytes.length; + var MAX_ARGUMENT_COUNT = 8192; + + if (length < MAX_ARGUMENT_COUNT) { + return String.fromCharCode.apply(null, bytes); + } + + var strBuf = []; + + for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) { + var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); + var chunk = bytes.subarray(i, chunkEnd); + strBuf.push(String.fromCharCode.apply(null, chunk)); + } + + return strBuf.join(''); +} + +function stringToBytes(str) { + assert(typeof str === 'string', 'Invalid argument for stringToBytes'); + var length = str.length; + var bytes = new Uint8Array(length); + + for (var i = 0; i < length; ++i) { + bytes[i] = str.charCodeAt(i) & 0xFF; + } + + return bytes; +} + +function arrayByteLength(arr) { + if (arr.length !== undefined) { + return arr.length; + } + + assert(arr.byteLength !== undefined); + return arr.byteLength; +} + +function arraysToBytes(arr) { + if (arr.length === 1 && arr[0] instanceof Uint8Array) { + return arr[0]; + } + + var resultLength = 0; + var i, + ii = arr.length; + var item, itemLength; + + for (i = 0; i < ii; i++) { + item = arr[i]; + itemLength = arrayByteLength(item); + resultLength += itemLength; + } + + var pos = 0; + var data = new Uint8Array(resultLength); + + for (i = 0; i < ii; i++) { + item = arr[i]; + + if (!(item instanceof Uint8Array)) { + if (typeof item === 'string') { + item = stringToBytes(item); + } else { + item = new Uint8Array(item); + } + } + + itemLength = item.byteLength; + data.set(item, pos); + pos += itemLength; + } + + return data; +} + +function string32(value) { + return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); +} + +function log2(x) { + if (x <= 0) { + return 0; + } + + return Math.ceil(Math.log2(x)); +} + +function readInt8(data, start) { + return data[start] << 24 >> 24; +} + +function readUint16(data, offset) { + return data[offset] << 8 | data[offset + 1]; +} + +function readUint32(data, offset) { + return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0; +} + +function isLittleEndian() { + var buffer8 = new Uint8Array(4); + buffer8[0] = 1; + var view32 = new Uint32Array(buffer8.buffer, 0, 1); + return view32[0] === 1; +} + +function isEvalSupported() { + try { + new Function(''); + return true; + } catch (e) { + return false; + } +} + +function getInheritableProperty(_ref) { + var dict = _ref.dict, + key = _ref.key, + _ref$getArray = _ref.getArray, + getArray = _ref$getArray === void 0 ? false : _ref$getArray, + _ref$stopWhenFound = _ref.stopWhenFound, + stopWhenFound = _ref$stopWhenFound === void 0 ? true : _ref$stopWhenFound; + var LOOP_LIMIT = 100; + var loopCount = 0; + var values; + + while (dict) { + var value = getArray ? dict.getArray(key) : dict.get(key); + + if (value !== undefined) { + if (stopWhenFound) { + return value; + } + + if (!values) { + values = []; + } + + values.push(value); + } + + if (++loopCount > LOOP_LIMIT) { + warn("getInheritableProperty: maximum loop count exceeded for \"".concat(key, "\"")); + break; + } + + dict = dict.get('Parent'); + } + + return values; +} + +var Util = function UtilClosure() { + function Util() {} + + var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')']; + + Util.makeCssRgb = function Util_makeCssRgb(r, g, b) { + rgbBuf[1] = r; + rgbBuf[3] = g; + rgbBuf[5] = b; + return rgbBuf.join(''); + }; + + Util.transform = function Util_transform(m1, m2) { + return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]]; + }; + + Util.applyTransform = function Util_applyTransform(p, m) { + var xt = p[0] * m[0] + p[1] * m[2] + m[4]; + var yt = p[0] * m[1] + p[1] * m[3] + m[5]; + return [xt, yt]; + }; + + Util.applyInverseTransform = function Util_applyInverseTransform(p, m) { + var d = m[0] * m[3] - m[1] * m[2]; + var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; + var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; + return [xt, yt]; + }; + + Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) { + var p1 = Util.applyTransform(r, m); + var p2 = Util.applyTransform(r.slice(2, 4), m); + var p3 = Util.applyTransform([r[0], r[3]], m); + var p4 = Util.applyTransform([r[2], r[1]], m); + return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])]; + }; + + Util.inverseTransform = function Util_inverseTransform(m) { + var d = m[0] * m[3] - m[1] * m[2]; + return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d]; + }; + + Util.apply3dTransform = function Util_apply3dTransform(m, v) { + return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]]; + }; + + Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) { + var transpose = [m[0], m[2], m[1], m[3]]; + var a = m[0] * transpose[0] + m[1] * transpose[2]; + var b = m[0] * transpose[1] + m[1] * transpose[3]; + var c = m[2] * transpose[0] + m[3] * transpose[2]; + var d = m[2] * transpose[1] + m[3] * transpose[3]; + var first = (a + d) / 2; + var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2; + var sx = first + second || 1; + var sy = first - second || 1; + return [Math.sqrt(sx), Math.sqrt(sy)]; + }; + + Util.normalizeRect = function Util_normalizeRect(rect) { + var r = rect.slice(0); + + if (rect[0] > rect[2]) { + r[0] = rect[2]; + r[2] = rect[0]; + } + + if (rect[1] > rect[3]) { + r[1] = rect[3]; + r[3] = rect[1]; + } + + return r; + }; + + Util.intersect = function Util_intersect(rect1, rect2) { + function compare(a, b) { + return a - b; + } + + var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare), + orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare), + result = []; + rect1 = Util.normalizeRect(rect1); + rect2 = Util.normalizeRect(rect2); + + if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) { + result[0] = orderedX[1]; + result[2] = orderedX[2]; + } else { + return false; + } + + if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) { + result[1] = orderedY[1]; + result[3] = orderedY[2]; + } else { + return false; + } + + return result; + }; + + return Util; +}(); + +exports.Util = Util; +var ROMAN_NUMBER_MAP = ['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM', '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC', '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX']; + +function toRomanNumerals(number) { + var lowerCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + assert(Number.isInteger(number) && number > 0, 'The number should be a positive integer.'); + var pos, + romanBuf = []; + + while (number >= 1000) { + number -= 1000; + romanBuf.push('M'); + } + + pos = number / 100 | 0; + number %= 100; + romanBuf.push(ROMAN_NUMBER_MAP[pos]); + pos = number / 10 | 0; + number %= 10; + romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]); + romanBuf.push(ROMAN_NUMBER_MAP[20 + number]); + var romanStr = romanBuf.join(''); + return lowerCase ? romanStr.toLowerCase() : romanStr; +} + +var PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC]; + +function stringToPDFString(str) { + var i, + n = str.length, + strBuf = []; + + if (str[0] === '\xFE' && str[1] === '\xFF') { + for (i = 2; i < n; i += 2) { + strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1))); + } + } else { + for (i = 0; i < n; ++i) { + var code = PDFStringTranslateTable[str.charCodeAt(i)]; + strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); + } + } + + return strBuf.join(''); +} + +function stringToUTF8String(str) { + return decodeURIComponent(escape(str)); +} + +function utf8StringToString(str) { + return unescape(encodeURIComponent(str)); +} + +function isEmptyObj(obj) { + for (var key in obj) { + return false; + } + + return true; +} + +function isBool(v) { + return typeof v === 'boolean'; +} + +function isNum(v) { + return typeof v === 'number'; +} + +function isString(v) { + return typeof v === 'string'; +} + +function isArrayBuffer(v) { + return _typeof(v) === 'object' && v !== null && v.byteLength !== undefined; +} + +function isSpace(ch) { + return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A; +} + +function createPromiseCapability() { + var capability = Object.create(null); + var isSettled = false; + Object.defineProperty(capability, 'settled', { + get: function get() { + return isSettled; + } + }); + capability.promise = new Promise(function (resolve, reject) { + capability.resolve = function (data) { + isSettled = true; + resolve(data); + }; + + capability.reject = function (reason) { + isSettled = true; + reject(reason); + }; + }); + return capability; +} + +var createObjectURL = function createObjectURLClosure() { + var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + return function createObjectURL(data, contentType) { + var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + if (!forceDataSchema && _url_polyfill.URL.createObjectURL) { + var blob = new Blob([data], { + type: contentType + }); + return _url_polyfill.URL.createObjectURL(blob); + } + + var buffer = 'data:' + contentType + ';base64,'; + + for (var i = 0, ii = data.length; i < ii; i += 3) { + var b1 = data[i] & 0xFF; + var b2 = data[i + 1] & 0xFF; + var b3 = data[i + 2] & 0xFF; + var d1 = b1 >> 2, + d2 = (b1 & 3) << 4 | b2 >> 4; + var d3 = i + 1 < ii ? (b2 & 0xF) << 2 | b3 >> 6 : 64; + var d4 = i + 2 < ii ? b3 & 0x3F : 64; + buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4]; + } + + return buffer; + }; +}(); + +exports.createObjectURL = createObjectURL; + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var globalScope = __w_pdfjs_require__(8); + +if (!globalScope._pdfjsCompatibilityChecked) { + globalScope._pdfjsCompatibilityChecked = true; + + var isNodeJS = __w_pdfjs_require__(9); + + var hasDOM = (typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object' && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object'; + + (function checkNodeBtoa() { + if (globalScope.btoa || !isNodeJS()) { + return; + } + + globalScope.btoa = function (chars) { + return Buffer.from(chars, 'binary').toString('base64'); + }; + })(); + + (function checkNodeAtob() { + if (globalScope.atob || !isNodeJS()) { + return; + } + + globalScope.atob = function (input) { + return Buffer.from(input, 'base64').toString('binary'); + }; + })(); + + (function checkChildNodeRemove() { + if (!hasDOM) { + return; + } + + if (typeof Element.prototype.remove !== 'undefined') { + return; + } + + Element.prototype.remove = function () { + if (this.parentNode) { + this.parentNode.removeChild(this); + } + }; + })(); + + (function checkDOMTokenListAddRemove() { + if (!hasDOM || isNodeJS()) { + return; + } + + var div = document.createElement('div'); + div.classList.add('testOne', 'testTwo'); + + if (div.classList.contains('testOne') === true && div.classList.contains('testTwo') === true) { + return; + } + + var OriginalDOMTokenListAdd = DOMTokenList.prototype.add; + var OriginalDOMTokenListRemove = DOMTokenList.prototype.remove; + + DOMTokenList.prototype.add = function () { + for (var _len = arguments.length, tokens = new Array(_len), _key = 0; _key < _len; _key++) { + tokens[_key] = arguments[_key]; + } + + for (var _i = 0; _i < tokens.length; _i++) { + var token = tokens[_i]; + OriginalDOMTokenListAdd.call(this, token); + } + }; + + DOMTokenList.prototype.remove = function () { + for (var _len2 = arguments.length, tokens = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + tokens[_key2] = arguments[_key2]; + } + + for (var _i2 = 0; _i2 < tokens.length; _i2++) { + var token = tokens[_i2]; + OriginalDOMTokenListRemove.call(this, token); + } + }; + })(); + + (function checkDOMTokenListToggle() { + if (!hasDOM || isNodeJS()) { + return; + } + + var div = document.createElement('div'); + + if (div.classList.toggle('test', 0) === false) { + return; + } + + DOMTokenList.prototype.toggle = function (token) { + var force = arguments.length > 1 ? !!arguments[1] : !this.contains(token); + return this[force ? 'add' : 'remove'](token), force; + }; + })(); + + (function checkStringStartsWith() { + if (String.prototype.startsWith) { + return; + } + + __w_pdfjs_require__(10); + })(); + + (function checkStringEndsWith() { + if (String.prototype.endsWith) { + return; + } + + __w_pdfjs_require__(40); + })(); + + (function checkStringIncludes() { + if (String.prototype.includes) { + return; + } + + __w_pdfjs_require__(42); + })(); + + (function checkArrayIncludes() { + if (Array.prototype.includes) { + return; + } + + __w_pdfjs_require__(44); + })(); + + (function checkArrayFrom() { + if (Array.from) { + return; + } + + __w_pdfjs_require__(51); + })(); + + (function checkObjectAssign() { + if (Object.assign) { + return; + } + + __w_pdfjs_require__(74); + })(); + + (function checkMathLog2() { + if (Math.log2) { + return; + } + + Math.log2 = __w_pdfjs_require__(79); + })(); + + (function checkNumberIsNaN() { + if (Number.isNaN) { + return; + } + + Number.isNaN = __w_pdfjs_require__(81); + })(); + + (function checkNumberIsInteger() { + if (Number.isInteger) { + return; + } + + Number.isInteger = __w_pdfjs_require__(83); + })(); + + (function checkPromise() { + if (globalScope.Promise && globalScope.Promise.prototype && globalScope.Promise.prototype.finally) { + return; + } + + globalScope.Promise = __w_pdfjs_require__(86); + })(); + + (function checkWeakMap() { + if (globalScope.WeakMap) { + return; + } + + globalScope.WeakMap = __w_pdfjs_require__(106); + })(); + + (function checkWeakSet() { + if (globalScope.WeakSet) { + return; + } + + globalScope.WeakSet = __w_pdfjs_require__(123); + })(); + + (function checkStringCodePointAt() { + if (String.codePointAt) { + return; + } + + String.codePointAt = __w_pdfjs_require__(127); + })(); + + (function checkStringFromCodePoint() { + if (String.fromCodePoint) { + return; + } + + String.fromCodePoint = __w_pdfjs_require__(129); + })(); + + (function checkSymbol() { + if (globalScope.Symbol) { + return; + } + + __w_pdfjs_require__(131); + })(); + + (function checkStringPadStart() { + if (String.prototype.padStart) { + return; + } + + __w_pdfjs_require__(138); + })(); + + (function checkStringPadEnd() { + if (String.prototype.padEnd) { + return; + } + + __w_pdfjs_require__(142); + })(); + + (function checkObjectValues() { + if (Object.values) { + return; + } + + Object.values = __w_pdfjs_require__(144); + })(); +} + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {}; + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +module.exports = function isNodeJS() { + return (typeof process === "undefined" ? "undefined" : _typeof(process)) === 'object' && process + '' === '[object process]' && !process.versions['nw']; +}; + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(11); + +module.exports = __w_pdfjs_require__(14).String.startsWith; + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(12); + +var toLength = __w_pdfjs_require__(30); + +var context = __w_pdfjs_require__(32); + +var STARTS_WITH = 'startsWith'; +var $startsWith = ''[STARTS_WITH]; +$export($export.P + $export.F * __w_pdfjs_require__(39)(STARTS_WITH), 'String', { + startsWith: function startsWith(searchString) { + var that = context(this, searchString, STARTS_WITH); + var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length)); + var search = String(searchString); + return $startsWith ? $startsWith.call(that, search, index) : that.slice(index, index + search.length) === search; + } +}); + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var global = __w_pdfjs_require__(13); + +var core = __w_pdfjs_require__(14); + +var hide = __w_pdfjs_require__(15); + +var redefine = __w_pdfjs_require__(25); + +var ctx = __w_pdfjs_require__(28); + +var PROTOTYPE = 'prototype'; + +var $export = function $export(type, name, source) { + var IS_FORCED = type & $export.F; + var IS_GLOBAL = type & $export.G; + var IS_STATIC = type & $export.S; + var IS_PROTO = type & $export.P; + var IS_BIND = type & $export.B; + var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; + var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); + var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); + var key, own, out, exp; + if (IS_GLOBAL) source = name; + + for (key in source) { + own = !IS_FORCED && target && target[key] !== undefined; + out = (own ? target : source)[key]; + exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; + if (target) redefine(target, key, out, type & $export.U); + if (exports[key] != out) hide(exports, key, exp); + if (IS_PROTO && expProto[key] != out) expProto[key] = out; + } +}; + +global.core = core; +$export.F = 1; +$export.G = 2; +$export.S = 4; +$export.P = 8; +$export.B = 16; +$export.W = 32; +$export.U = 64; +$export.R = 128; +module.exports = $export; + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); +if (typeof __g == 'number') __g = global; + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var core = module.exports = { + version: '2.6.2' +}; +if (typeof __e == 'number') __e = core; + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var dP = __w_pdfjs_require__(16); + +var createDesc = __w_pdfjs_require__(24); + +module.exports = __w_pdfjs_require__(20) ? function (object, key, value) { + return dP.f(object, key, createDesc(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var anObject = __w_pdfjs_require__(17); + +var IE8_DOM_DEFINE = __w_pdfjs_require__(19); + +var toPrimitive = __w_pdfjs_require__(23); + +var dP = Object.defineProperty; +exports.f = __w_pdfjs_require__(20) ? Object.defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return dP(O, P, Attributes); + } catch (e) {} + if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(18); + +module.exports = function (it) { + if (!isObject(it)) throw TypeError(it + ' is not an object!'); + return it; +}; + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +module.exports = function (it) { + return _typeof(it) === 'object' ? it !== null : typeof it === 'function'; +}; + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = !__w_pdfjs_require__(20) && !__w_pdfjs_require__(21)(function () { + return Object.defineProperty(__w_pdfjs_require__(22)('div'), 'a', { + get: function get() { + return 7; + } + }).a != 7; +}); + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = !__w_pdfjs_require__(21)(function () { + return Object.defineProperty({}, 'a', { + get: function get() { + return 7; + } + }).a != 7; +}); + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (exec) { + try { + return !!exec(); + } catch (e) { + return true; + } +}; + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(18); + +var document = __w_pdfjs_require__(13).document; + +var is = isObject(document) && isObject(document.createElement); + +module.exports = function (it) { + return is ? document.createElement(it) : {}; +}; + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(18); + +module.exports = function (it, S) { + if (!isObject(it)) return it; + var fn, val; + if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; + if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; + if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; + throw TypeError("Can't convert object to primitive value"); +}; + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var global = __w_pdfjs_require__(13); + +var hide = __w_pdfjs_require__(15); + +var has = __w_pdfjs_require__(26); + +var SRC = __w_pdfjs_require__(27)('src'); + +var TO_STRING = 'toString'; +var $toString = Function[TO_STRING]; +var TPL = ('' + $toString).split(TO_STRING); + +__w_pdfjs_require__(14).inspectSource = function (it) { + return $toString.call(it); +}; + +(module.exports = function (O, key, val, safe) { + var isFunction = typeof val == 'function'; + if (isFunction) has(val, 'name') || hide(val, 'name', key); + if (O[key] === val) return; + if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); + + if (O === global) { + O[key] = val; + } else if (!safe) { + delete O[key]; + hide(O, key, val); + } else if (O[key]) { + O[key] = val; + } else { + hide(O, key, val); + } +})(Function.prototype, TO_STRING, function toString() { + return typeof this == 'function' && this[SRC] || $toString.call(this); +}); + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var hasOwnProperty = {}.hasOwnProperty; + +module.exports = function (it, key) { + return hasOwnProperty.call(it, key); +}; + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var id = 0; +var px = Math.random(); + +module.exports = function (key) { + return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); +}; + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var aFunction = __w_pdfjs_require__(29); + +module.exports = function (fn, that, length) { + aFunction(fn); + if (that === undefined) return fn; + + switch (length) { + case 1: + return function (a) { + return fn.call(that, a); + }; + + case 2: + return function (a, b) { + return fn.call(that, a, b); + }; + + case 3: + return function (a, b, c) { + return fn.call(that, a, b, c); + }; + } + + return function () { + return fn.apply(that, arguments); + }; +}; + +/***/ }), +/* 29 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (it) { + if (typeof it != 'function') throw TypeError(it + ' is not a function!'); + return it; +}; + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var toInteger = __w_pdfjs_require__(31); + +var min = Math.min; + +module.exports = function (it) { + return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; +}; + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var ceil = Math.ceil; +var floor = Math.floor; + +module.exports = function (it) { + return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); +}; + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isRegExp = __w_pdfjs_require__(33); + +var defined = __w_pdfjs_require__(38); + +module.exports = function (that, searchString, NAME) { + if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); + return String(defined(that)); +}; + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(18); + +var cof = __w_pdfjs_require__(34); + +var MATCH = __w_pdfjs_require__(35)('match'); + +module.exports = function (it) { + var isRegExp; + return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); +}; + +/***/ }), +/* 34 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var toString = {}.toString; + +module.exports = function (it) { + return toString.call(it).slice(8, -1); +}; + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var store = __w_pdfjs_require__(36)('wks'); + +var uid = __w_pdfjs_require__(27); + +var _Symbol = __w_pdfjs_require__(13).Symbol; + +var USE_SYMBOL = typeof _Symbol == 'function'; + +var $exports = module.exports = function (name) { + return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name)); +}; + +$exports.store = store; + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var core = __w_pdfjs_require__(14); + +var global = __w_pdfjs_require__(13); + +var SHARED = '__core-js_shared__'; +var store = global[SHARED] || (global[SHARED] = {}); +(module.exports = function (key, value) { + return store[key] || (store[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: core.version, + mode: __w_pdfjs_require__(37) ? 'pure' : 'global', + copyright: '© 2019 Denis Pushkarev (zloirock.ru)' +}); + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = false; + +/***/ }), +/* 38 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (it) { + if (it == undefined) throw TypeError("Can't call method on " + it); + return it; +}; + +/***/ }), +/* 39 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var MATCH = __w_pdfjs_require__(35)('match'); + +module.exports = function (KEY) { + var re = /./; + + try { + '/./'[KEY](re); + } catch (e) { + try { + re[MATCH] = false; + return !'/./'[KEY](re); + } catch (f) {} + } + + return true; +}; + +/***/ }), +/* 40 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(41); + +module.exports = __w_pdfjs_require__(14).String.endsWith; + +/***/ }), +/* 41 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(12); + +var toLength = __w_pdfjs_require__(30); + +var context = __w_pdfjs_require__(32); + +var ENDS_WITH = 'endsWith'; +var $endsWith = ''[ENDS_WITH]; +$export($export.P + $export.F * __w_pdfjs_require__(39)(ENDS_WITH), 'String', { + endsWith: function endsWith(searchString) { + var that = context(this, searchString, ENDS_WITH); + var endPosition = arguments.length > 1 ? arguments[1] : undefined; + var len = toLength(that.length); + var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len); + var search = String(searchString); + return $endsWith ? $endsWith.call(that, search, end) : that.slice(end - search.length, end) === search; + } +}); + +/***/ }), +/* 42 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(43); + +module.exports = __w_pdfjs_require__(14).String.includes; + +/***/ }), +/* 43 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(12); + +var context = __w_pdfjs_require__(32); + +var INCLUDES = 'includes'; +$export($export.P + $export.F * __w_pdfjs_require__(39)(INCLUDES), 'String', { + includes: function includes(searchString) { + return !!~context(this, searchString, INCLUDES).indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +/***/ }), +/* 44 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(45); + +module.exports = __w_pdfjs_require__(14).Array.includes; + +/***/ }), +/* 45 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(12); + +var $includes = __w_pdfjs_require__(46)(true); + +$export($export.P, 'Array', { + includes: function includes(el) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +__w_pdfjs_require__(50)('includes'); + +/***/ }), +/* 46 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var toIObject = __w_pdfjs_require__(47); + +var toLength = __w_pdfjs_require__(30); + +var toAbsoluteIndex = __w_pdfjs_require__(49); + +module.exports = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIObject($this); + var length = toLength(O.length); + var index = toAbsoluteIndex(fromIndex, length); + var value; + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + if (value != value) return true; + } else for (; length > index; index++) { + if (IS_INCLUDES || index in O) { + if (O[index] === el) return IS_INCLUDES || index || 0; + } + } + return !IS_INCLUDES && -1; + }; +}; + +/***/ }), +/* 47 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var IObject = __w_pdfjs_require__(48); + +var defined = __w_pdfjs_require__(38); + +module.exports = function (it) { + return IObject(defined(it)); +}; + +/***/ }), +/* 48 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var cof = __w_pdfjs_require__(34); + +module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { + return cof(it) == 'String' ? it.split('') : Object(it); +}; + +/***/ }), +/* 49 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var toInteger = __w_pdfjs_require__(31); + +var max = Math.max; +var min = Math.min; + +module.exports = function (index, length) { + index = toInteger(index); + return index < 0 ? max(index + length, 0) : min(index, length); +}; + +/***/ }), +/* 50 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var UNSCOPABLES = __w_pdfjs_require__(35)('unscopables'); + +var ArrayProto = Array.prototype; +if (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(15)(ArrayProto, UNSCOPABLES, {}); + +module.exports = function (key) { + ArrayProto[UNSCOPABLES][key] = true; +}; + +/***/ }), +/* 51 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(52); + +__w_pdfjs_require__(67); + +module.exports = __w_pdfjs_require__(14).Array.from; + +/***/ }), +/* 52 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $at = __w_pdfjs_require__(53)(true); + +__w_pdfjs_require__(54)(String, 'String', function (iterated) { + this._t = String(iterated); + this._i = 0; +}, function () { + var O = this._t; + var index = this._i; + var point; + if (index >= O.length) return { + value: undefined, + done: true + }; + point = $at(O, index); + this._i += point.length; + return { + value: point, + done: false + }; +}); + +/***/ }), +/* 53 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var toInteger = __w_pdfjs_require__(31); + +var defined = __w_pdfjs_require__(38); + +module.exports = function (TO_STRING) { + return function (that, pos) { + var s = String(defined(that)); + var i = toInteger(pos); + var l = s.length; + var a, b; + if (i < 0 || i >= l) return TO_STRING ? '' : undefined; + a = s.charCodeAt(i); + return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; + }; +}; + +/***/ }), +/* 54 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var LIBRARY = __w_pdfjs_require__(37); + +var $export = __w_pdfjs_require__(12); + +var redefine = __w_pdfjs_require__(25); + +var hide = __w_pdfjs_require__(15); + +var Iterators = __w_pdfjs_require__(55); + +var $iterCreate = __w_pdfjs_require__(56); + +var setToStringTag = __w_pdfjs_require__(64); + +var getPrototypeOf = __w_pdfjs_require__(65); + +var ITERATOR = __w_pdfjs_require__(35)('iterator'); + +var BUGGY = !([].keys && 'next' in [].keys()); +var FF_ITERATOR = '@@iterator'; +var KEYS = 'keys'; +var VALUES = 'values'; + +var returnThis = function returnThis() { + return this; +}; + +module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { + $iterCreate(Constructor, NAME, next); + + var getMethod = function getMethod(kind) { + if (!BUGGY && kind in proto) return proto[kind]; + + switch (kind) { + case KEYS: + return function keys() { + return new Constructor(this, kind); + }; + + case VALUES: + return function values() { + return new Constructor(this, kind); + }; + } + + return function entries() { + return new Constructor(this, kind); + }; + }; + + var TAG = NAME + ' Iterator'; + var DEF_VALUES = DEFAULT == VALUES; + var VALUES_BUG = false; + var proto = Base.prototype; + var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; + var $default = $native || getMethod(DEFAULT); + var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; + var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; + var methods, key, IteratorPrototype; + + if ($anyNative) { + IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); + + if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { + setToStringTag(IteratorPrototype, TAG, true); + if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); + } + } + + if (DEF_VALUES && $native && $native.name !== VALUES) { + VALUES_BUG = true; + + $default = function values() { + return $native.call(this); + }; + } + + if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { + hide(proto, ITERATOR, $default); + } + + Iterators[NAME] = $default; + Iterators[TAG] = returnThis; + + if (DEFAULT) { + methods = { + values: DEF_VALUES ? $default : getMethod(VALUES), + keys: IS_SET ? $default : getMethod(KEYS), + entries: $entries + }; + if (FORCED) for (key in methods) { + if (!(key in proto)) redefine(proto, key, methods[key]); + } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); + } + + return methods; +}; + +/***/ }), +/* 55 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = {}; + +/***/ }), +/* 56 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var create = __w_pdfjs_require__(57); + +var descriptor = __w_pdfjs_require__(24); + +var setToStringTag = __w_pdfjs_require__(64); + +var IteratorPrototype = {}; + +__w_pdfjs_require__(15)(IteratorPrototype, __w_pdfjs_require__(35)('iterator'), function () { + return this; +}); + +module.exports = function (Constructor, NAME, next) { + Constructor.prototype = create(IteratorPrototype, { + next: descriptor(1, next) + }); + setToStringTag(Constructor, NAME + ' Iterator'); +}; + +/***/ }), +/* 57 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var anObject = __w_pdfjs_require__(17); + +var dPs = __w_pdfjs_require__(58); + +var enumBugKeys = __w_pdfjs_require__(62); + +var IE_PROTO = __w_pdfjs_require__(61)('IE_PROTO'); + +var Empty = function Empty() {}; + +var PROTOTYPE = 'prototype'; + +var _createDict = function createDict() { + var iframe = __w_pdfjs_require__(22)('iframe'); + + var i = enumBugKeys.length; + var lt = '<'; + var gt = '>'; + var iframeDocument; + iframe.style.display = 'none'; + + __w_pdfjs_require__(63).appendChild(iframe); + + iframe.src = 'javascript:'; + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); + iframeDocument.close(); + _createDict = iframeDocument.F; + + while (i--) { + delete _createDict[PROTOTYPE][enumBugKeys[i]]; + } + + return _createDict(); +}; + +module.exports = Object.create || function create(O, Properties) { + var result; + + if (O !== null) { + Empty[PROTOTYPE] = anObject(O); + result = new Empty(); + Empty[PROTOTYPE] = null; + result[IE_PROTO] = O; + } else result = _createDict(); + + return Properties === undefined ? result : dPs(result, Properties); +}; + +/***/ }), +/* 58 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var dP = __w_pdfjs_require__(16); + +var anObject = __w_pdfjs_require__(17); + +var getKeys = __w_pdfjs_require__(59); + +module.exports = __w_pdfjs_require__(20) ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var keys = getKeys(Properties); + var length = keys.length; + var i = 0; + var P; + + while (length > i) { + dP.f(O, P = keys[i++], Properties[P]); + } + + return O; +}; + +/***/ }), +/* 59 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $keys = __w_pdfjs_require__(60); + +var enumBugKeys = __w_pdfjs_require__(62); + +module.exports = Object.keys || function keys(O) { + return $keys(O, enumBugKeys); +}; + +/***/ }), +/* 60 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var has = __w_pdfjs_require__(26); + +var toIObject = __w_pdfjs_require__(47); + +var arrayIndexOf = __w_pdfjs_require__(46)(false); + +var IE_PROTO = __w_pdfjs_require__(61)('IE_PROTO'); + +module.exports = function (object, names) { + var O = toIObject(object); + var i = 0; + var result = []; + var key; + + for (key in O) { + if (key != IE_PROTO) has(O, key) && result.push(key); + } + + while (names.length > i) { + if (has(O, key = names[i++])) { + ~arrayIndexOf(result, key) || result.push(key); + } + } + + return result; +}; + +/***/ }), +/* 61 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var shared = __w_pdfjs_require__(36)('keys'); + +var uid = __w_pdfjs_require__(27); + +module.exports = function (key) { + return shared[key] || (shared[key] = uid(key)); +}; + +/***/ }), +/* 62 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(','); + +/***/ }), +/* 63 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var document = __w_pdfjs_require__(13).document; + +module.exports = document && document.documentElement; + +/***/ }), +/* 64 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var def = __w_pdfjs_require__(16).f; + +var has = __w_pdfjs_require__(26); + +var TAG = __w_pdfjs_require__(35)('toStringTag'); + +module.exports = function (it, tag, stat) { + if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { + configurable: true, + value: tag + }); +}; + +/***/ }), +/* 65 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var has = __w_pdfjs_require__(26); + +var toObject = __w_pdfjs_require__(66); + +var IE_PROTO = __w_pdfjs_require__(61)('IE_PROTO'); + +var ObjectProto = Object.prototype; + +module.exports = Object.getPrototypeOf || function (O) { + O = toObject(O); + if (has(O, IE_PROTO)) return O[IE_PROTO]; + + if (typeof O.constructor == 'function' && O instanceof O.constructor) { + return O.constructor.prototype; + } + + return O instanceof Object ? ObjectProto : null; +}; + +/***/ }), +/* 66 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var defined = __w_pdfjs_require__(38); + +module.exports = function (it) { + return Object(defined(it)); +}; + +/***/ }), +/* 67 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var ctx = __w_pdfjs_require__(28); + +var $export = __w_pdfjs_require__(12); + +var toObject = __w_pdfjs_require__(66); + +var call = __w_pdfjs_require__(68); + +var isArrayIter = __w_pdfjs_require__(69); + +var toLength = __w_pdfjs_require__(30); + +var createProperty = __w_pdfjs_require__(70); + +var getIterFn = __w_pdfjs_require__(71); + +$export($export.S + $export.F * !__w_pdfjs_require__(73)(function (iter) { + Array.from(iter); +}), 'Array', { + from: function from(arrayLike) { + var O = toObject(arrayLike); + var C = typeof this == 'function' ? this : Array; + var aLen = arguments.length; + var mapfn = aLen > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + var index = 0; + var iterFn = getIterFn(O); + var length, result, step, iterator; + if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); + + if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { + for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { + createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); + } + } else { + length = toLength(O.length); + + for (result = new C(length); length > index; index++) { + createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); + } + } + + result.length = index; + return result; + } +}); + +/***/ }), +/* 68 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var anObject = __w_pdfjs_require__(17); + +module.exports = function (iterator, fn, value, entries) { + try { + return entries ? fn(anObject(value)[0], value[1]) : fn(value); + } catch (e) { + var ret = iterator['return']; + if (ret !== undefined) anObject(ret.call(iterator)); + throw e; + } +}; + +/***/ }), +/* 69 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var Iterators = __w_pdfjs_require__(55); + +var ITERATOR = __w_pdfjs_require__(35)('iterator'); + +var ArrayProto = Array.prototype; + +module.exports = function (it) { + return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); +}; + +/***/ }), +/* 70 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $defineProperty = __w_pdfjs_require__(16); + +var createDesc = __w_pdfjs_require__(24); + +module.exports = function (object, index, value) { + if (index in object) $defineProperty.f(object, index, createDesc(0, value));else object[index] = value; +}; + +/***/ }), +/* 71 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var classof = __w_pdfjs_require__(72); + +var ITERATOR = __w_pdfjs_require__(35)('iterator'); + +var Iterators = __w_pdfjs_require__(55); + +module.exports = __w_pdfjs_require__(14).getIteratorMethod = function (it) { + if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)]; +}; + +/***/ }), +/* 72 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var cof = __w_pdfjs_require__(34); + +var TAG = __w_pdfjs_require__(35)('toStringTag'); + +var ARG = cof(function () { + return arguments; +}()) == 'Arguments'; + +var tryGet = function tryGet(it, key) { + try { + return it[key]; + } catch (e) {} +}; + +module.exports = function (it) { + var O, T, B; + return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T : ARG ? cof(O) : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; +}; + +/***/ }), +/* 73 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var ITERATOR = __w_pdfjs_require__(35)('iterator'); + +var SAFE_CLOSING = false; + +try { + var riter = [7][ITERATOR](); + + riter['return'] = function () { + SAFE_CLOSING = true; + }; + + Array.from(riter, function () { + throw 2; + }); +} catch (e) {} + +module.exports = function (exec, skipClosing) { + if (!skipClosing && !SAFE_CLOSING) return false; + var safe = false; + + try { + var arr = [7]; + var iter = arr[ITERATOR](); + + iter.next = function () { + return { + done: safe = true + }; + }; + + arr[ITERATOR] = function () { + return iter; + }; + + exec(arr); + } catch (e) {} + + return safe; +}; + +/***/ }), +/* 74 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(75); + +module.exports = __w_pdfjs_require__(14).Object.assign; + +/***/ }), +/* 75 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(12); + +$export($export.S + $export.F, 'Object', { + assign: __w_pdfjs_require__(76) +}); + +/***/ }), +/* 76 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var getKeys = __w_pdfjs_require__(59); + +var gOPS = __w_pdfjs_require__(77); + +var pIE = __w_pdfjs_require__(78); + +var toObject = __w_pdfjs_require__(66); + +var IObject = __w_pdfjs_require__(48); + +var $assign = Object.assign; +module.exports = !$assign || __w_pdfjs_require__(21)(function () { + var A = {}; + var B = {}; + var S = Symbol(); + var K = 'abcdefghijklmnopqrst'; + A[S] = 7; + K.split('').forEach(function (k) { + B[k] = k; + }); + return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; +}) ? function assign(target, source) { + var T = toObject(target); + var aLen = arguments.length; + var index = 1; + var getSymbols = gOPS.f; + var isEnum = pIE.f; + + while (aLen > index) { + var S = IObject(arguments[index++]); + var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); + var length = keys.length; + var j = 0; + var key; + + while (length > j) { + if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; + } + } + + return T; +} : $assign; + +/***/ }), +/* 77 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +exports.f = Object.getOwnPropertySymbols; + +/***/ }), +/* 78 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +exports.f = {}.propertyIsEnumerable; + +/***/ }), +/* 79 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(80); + +module.exports = __w_pdfjs_require__(14).Math.log2; + +/***/ }), +/* 80 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(12); + +$export($export.S, 'Math', { + log2: function log2(x) { + return Math.log(x) / Math.LN2; + } +}); + +/***/ }), +/* 81 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(82); + +module.exports = __w_pdfjs_require__(14).Number.isNaN; + +/***/ }), +/* 82 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(12); + +$export($export.S, 'Number', { + isNaN: function isNaN(number) { + return number != number; + } +}); + +/***/ }), +/* 83 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(84); + +module.exports = __w_pdfjs_require__(14).Number.isInteger; + +/***/ }), +/* 84 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(12); + +$export($export.S, 'Number', { + isInteger: __w_pdfjs_require__(85) +}); + +/***/ }), +/* 85 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(18); + +var floor = Math.floor; + +module.exports = function isInteger(it) { + return !isObject(it) && isFinite(it) && floor(it) === it; +}; + +/***/ }), +/* 86 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(87); + +__w_pdfjs_require__(52); + +__w_pdfjs_require__(88); + +__w_pdfjs_require__(91); + +__w_pdfjs_require__(104); + +__w_pdfjs_require__(105); + +module.exports = __w_pdfjs_require__(14).Promise; + +/***/ }), +/* 87 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var classof = __w_pdfjs_require__(72); + +var test = {}; +test[__w_pdfjs_require__(35)('toStringTag')] = 'z'; + +if (test + '' != '[object z]') { + __w_pdfjs_require__(25)(Object.prototype, 'toString', function toString() { + return '[object ' + classof(this) + ']'; + }, true); +} + +/***/ }), +/* 88 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $iterators = __w_pdfjs_require__(89); + +var getKeys = __w_pdfjs_require__(59); + +var redefine = __w_pdfjs_require__(25); + +var global = __w_pdfjs_require__(13); + +var hide = __w_pdfjs_require__(15); + +var Iterators = __w_pdfjs_require__(55); + +var wks = __w_pdfjs_require__(35); + +var ITERATOR = wks('iterator'); +var TO_STRING_TAG = wks('toStringTag'); +var ArrayValues = Iterators.Array; +var DOMIterables = { + CSSRuleList: true, + CSSStyleDeclaration: false, + CSSValueList: false, + ClientRectList: false, + DOMRectList: false, + DOMStringList: false, + DOMTokenList: true, + DataTransferItemList: false, + FileList: false, + HTMLAllCollection: false, + HTMLCollection: false, + HTMLFormElement: false, + HTMLSelectElement: false, + MediaList: true, + MimeTypeArray: false, + NamedNodeMap: false, + NodeList: true, + PaintRequestList: false, + Plugin: false, + PluginArray: false, + SVGLengthList: false, + SVGNumberList: false, + SVGPathSegList: false, + SVGPointList: false, + SVGStringList: false, + SVGTransformList: false, + SourceBufferList: false, + StyleSheetList: true, + TextTrackCueList: false, + TextTrackList: false, + TouchList: false +}; + +for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) { + var NAME = collections[i]; + var explicit = DOMIterables[NAME]; + var Collection = global[NAME]; + var proto = Collection && Collection.prototype; + var key; + + if (proto) { + if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues); + if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); + Iterators[NAME] = ArrayValues; + if (explicit) for (key in $iterators) { + if (!proto[key]) redefine(proto, key, $iterators[key], true); + } + } +} + +/***/ }), +/* 89 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var addToUnscopables = __w_pdfjs_require__(50); + +var step = __w_pdfjs_require__(90); + +var Iterators = __w_pdfjs_require__(55); + +var toIObject = __w_pdfjs_require__(47); + +module.exports = __w_pdfjs_require__(54)(Array, 'Array', function (iterated, kind) { + this._t = toIObject(iterated); + this._i = 0; + this._k = kind; +}, function () { + var O = this._t; + var kind = this._k; + var index = this._i++; + + if (!O || index >= O.length) { + this._t = undefined; + return step(1); + } + + if (kind == 'keys') return step(0, index); + if (kind == 'values') return step(0, O[index]); + return step(0, [index, O[index]]); +}, 'values'); +Iterators.Arguments = Iterators.Array; +addToUnscopables('keys'); +addToUnscopables('values'); +addToUnscopables('entries'); + +/***/ }), +/* 90 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (done, value) { + return { + value: value, + done: !!done + }; +}; + +/***/ }), +/* 91 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var LIBRARY = __w_pdfjs_require__(37); + +var global = __w_pdfjs_require__(13); + +var ctx = __w_pdfjs_require__(28); + +var classof = __w_pdfjs_require__(72); + +var $export = __w_pdfjs_require__(12); + +var isObject = __w_pdfjs_require__(18); + +var aFunction = __w_pdfjs_require__(29); + +var anInstance = __w_pdfjs_require__(92); + +var forOf = __w_pdfjs_require__(93); + +var speciesConstructor = __w_pdfjs_require__(94); + +var task = __w_pdfjs_require__(95).set; + +var microtask = __w_pdfjs_require__(97)(); + +var newPromiseCapabilityModule = __w_pdfjs_require__(98); + +var perform = __w_pdfjs_require__(99); + +var userAgent = __w_pdfjs_require__(100); + +var promiseResolve = __w_pdfjs_require__(101); + +var PROMISE = 'Promise'; +var TypeError = global.TypeError; +var process = global.process; +var versions = process && process.versions; +var v8 = versions && versions.v8 || ''; +var $Promise = global[PROMISE]; +var isNode = classof(process) == 'process'; + +var empty = function empty() {}; + +var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; +var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; +var USE_NATIVE = !!function () { + try { + var promise = $Promise.resolve(1); + + var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(35)('species')] = function (exec) { + exec(empty, empty); + }; + + return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1; + } catch (e) {} +}(); + +var isThenable = function isThenable(it) { + var then; + return isObject(it) && typeof (then = it.then) == 'function' ? then : false; +}; + +var notify = function notify(promise, isReject) { + if (promise._n) return; + promise._n = true; + var chain = promise._c; + microtask(function () { + var value = promise._v; + var ok = promise._s == 1; + var i = 0; + + var run = function run(reaction) { + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + + try { + if (handler) { + if (!ok) { + if (promise._h == 2) onHandleUnhandled(promise); + promise._h = 1; + } + + if (handler === true) result = value;else { + if (domain) domain.enter(); + result = handler(value); + + if (domain) { + domain.exit(); + exited = true; + } + } + + if (result === reaction.promise) { + reject(TypeError('Promise-chain cycle')); + } else if (then = isThenable(result)) { + then.call(result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (e) { + if (domain && !exited) domain.exit(); + reject(e); + } + }; + + while (chain.length > i) { + run(chain[i++]); + } + + promise._c = []; + promise._n = false; + if (isReject && !promise._h) onUnhandled(promise); + }); +}; + +var onUnhandled = function onUnhandled(promise) { + task.call(global, function () { + var value = promise._v; + var unhandled = isUnhandled(promise); + var result, handler, console; + + if (unhandled) { + result = perform(function () { + if (isNode) { + process.emit('unhandledRejection', value, promise); + } else if (handler = global.onunhandledrejection) { + handler({ + promise: promise, + reason: value + }); + } else if ((console = global.console) && console.error) { + console.error('Unhandled promise rejection', value); + } + }); + promise._h = isNode || isUnhandled(promise) ? 2 : 1; + } + + promise._a = undefined; + if (unhandled && result.e) throw result.v; + }); +}; + +var isUnhandled = function isUnhandled(promise) { + return promise._h !== 1 && (promise._a || promise._c).length === 0; +}; + +var onHandleUnhandled = function onHandleUnhandled(promise) { + task.call(global, function () { + var handler; + + if (isNode) { + process.emit('rejectionHandled', promise); + } else if (handler = global.onrejectionhandled) { + handler({ + promise: promise, + reason: promise._v + }); + } + }); +}; + +var $reject = function $reject(value) { + var promise = this; + if (promise._d) return; + promise._d = true; + promise = promise._w || promise; + promise._v = value; + promise._s = 2; + if (!promise._a) promise._a = promise._c.slice(); + notify(promise, true); +}; + +var $resolve = function $resolve(value) { + var promise = this; + var then; + if (promise._d) return; + promise._d = true; + promise = promise._w || promise; + + try { + if (promise === value) throw TypeError("Promise can't be resolved itself"); + + if (then = isThenable(value)) { + microtask(function () { + var wrapper = { + _w: promise, + _d: false + }; + + try { + then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); + } catch (e) { + $reject.call(wrapper, e); + } + }); + } else { + promise._v = value; + promise._s = 1; + notify(promise, false); + } + } catch (e) { + $reject.call({ + _w: promise, + _d: false + }, e); + } +}; + +if (!USE_NATIVE) { + $Promise = function Promise(executor) { + anInstance(this, $Promise, PROMISE, '_h'); + aFunction(executor); + Internal.call(this); + + try { + executor(ctx($resolve, this, 1), ctx($reject, this, 1)); + } catch (err) { + $reject.call(this, err); + } + }; + + Internal = function Promise(executor) { + this._c = []; + this._a = undefined; + this._s = 0; + this._d = false; + this._v = undefined; + this._h = 0; + this._n = false; + }; + + Internal.prototype = __w_pdfjs_require__(102)($Promise.prototype, { + then: function then(onFulfilled, onRejected) { + var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); + reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; + reaction.fail = typeof onRejected == 'function' && onRejected; + reaction.domain = isNode ? process.domain : undefined; + + this._c.push(reaction); + + if (this._a) this._a.push(reaction); + if (this._s) notify(this, false); + return reaction.promise; + }, + 'catch': function _catch(onRejected) { + return this.then(undefined, onRejected); + } + }); + + OwnPromiseCapability = function OwnPromiseCapability() { + var promise = new Internal(); + this.promise = promise; + this.resolve = ctx($resolve, promise, 1); + this.reject = ctx($reject, promise, 1); + }; + + newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) { + return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); + }; +} + +$export($export.G + $export.W + $export.F * !USE_NATIVE, { + Promise: $Promise +}); + +__w_pdfjs_require__(64)($Promise, PROMISE); + +__w_pdfjs_require__(103)(PROMISE); + +Wrapper = __w_pdfjs_require__(14)[PROMISE]; +$export($export.S + $export.F * !USE_NATIVE, PROMISE, { + reject: function reject(r) { + var capability = newPromiseCapability(this); + var $$reject = capability.reject; + $$reject(r); + return capability.promise; + } +}); +$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { + resolve: function resolve(x) { + return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); + } +}); +$export($export.S + $export.F * !(USE_NATIVE && __w_pdfjs_require__(73)(function (iter) { + $Promise.all(iter)['catch'](empty); +})), PROMISE, { + all: function all(iterable) { + var C = this; + var capability = newPromiseCapability(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var values = []; + var index = 0; + var remaining = 1; + forOf(iterable, false, function (promise) { + var $index = index++; + var alreadyCalled = false; + values.push(undefined); + remaining++; + C.resolve(promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[$index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.e) reject(result.v); + return capability.promise; + }, + race: function race(iterable) { + var C = this; + var capability = newPromiseCapability(C); + var reject = capability.reject; + var result = perform(function () { + forOf(iterable, false, function (promise) { + C.resolve(promise).then(capability.resolve, reject); + }); + }); + if (result.e) reject(result.v); + return capability.promise; + } +}); + +/***/ }), +/* 92 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (it, Constructor, name, forbiddenField) { + if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) { + throw TypeError(name + ': incorrect invocation!'); + } + + return it; +}; + +/***/ }), +/* 93 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var ctx = __w_pdfjs_require__(28); + +var call = __w_pdfjs_require__(68); + +var isArrayIter = __w_pdfjs_require__(69); + +var anObject = __w_pdfjs_require__(17); + +var toLength = __w_pdfjs_require__(30); + +var getIterFn = __w_pdfjs_require__(71); + +var BREAK = {}; +var RETURN = {}; + +var _exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { + var iterFn = ITERATOR ? function () { + return iterable; + } : getIterFn(iterable); + var f = ctx(fn, that, entries ? 2 : 1); + var index = 0; + var length, step, iterator, result; + if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); + if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { + result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); + if (result === BREAK || result === RETURN) return result; + } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { + result = call(iterator, f, step.value, entries); + if (result === BREAK || result === RETURN) return result; + } +}; + +_exports.BREAK = BREAK; +_exports.RETURN = RETURN; + +/***/ }), +/* 94 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var anObject = __w_pdfjs_require__(17); + +var aFunction = __w_pdfjs_require__(29); + +var SPECIES = __w_pdfjs_require__(35)('species'); + +module.exports = function (O, D) { + var C = anObject(O).constructor; + var S; + return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); +}; + +/***/ }), +/* 95 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var ctx = __w_pdfjs_require__(28); + +var invoke = __w_pdfjs_require__(96); + +var html = __w_pdfjs_require__(63); + +var cel = __w_pdfjs_require__(22); + +var global = __w_pdfjs_require__(13); + +var process = global.process; +var setTask = global.setImmediate; +var clearTask = global.clearImmediate; +var MessageChannel = global.MessageChannel; +var Dispatch = global.Dispatch; +var counter = 0; +var queue = {}; +var ONREADYSTATECHANGE = 'onreadystatechange'; +var defer, channel, port; + +var run = function run() { + var id = +this; + + if (queue.hasOwnProperty(id)) { + var fn = queue[id]; + delete queue[id]; + fn(); + } +}; + +var listener = function listener(event) { + run.call(event.data); +}; + +if (!setTask || !clearTask) { + setTask = function setImmediate(fn) { + var args = []; + var i = 1; + + while (arguments.length > i) { + args.push(arguments[i++]); + } + + queue[++counter] = function () { + invoke(typeof fn == 'function' ? fn : Function(fn), args); + }; + + defer(counter); + return counter; + }; + + clearTask = function clearImmediate(id) { + delete queue[id]; + }; + + if (__w_pdfjs_require__(34)(process) == 'process') { + defer = function defer(id) { + process.nextTick(ctx(run, id, 1)); + }; + } else if (Dispatch && Dispatch.now) { + defer = function defer(id) { + Dispatch.now(ctx(run, id, 1)); + }; + } else if (MessageChannel) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = listener; + defer = ctx(port.postMessage, port, 1); + } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { + defer = function defer(id) { + global.postMessage(id + '', '*'); + }; + + global.addEventListener('message', listener, false); + } else if (ONREADYSTATECHANGE in cel('script')) { + defer = function defer(id) { + html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { + html.removeChild(this); + run.call(id); + }; + }; + } else { + defer = function defer(id) { + setTimeout(ctx(run, id, 1), 0); + }; + } +} + +module.exports = { + set: setTask, + clear: clearTask +}; + +/***/ }), +/* 96 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (fn, args, that) { + var un = that === undefined; + + switch (args.length) { + case 0: + return un ? fn() : fn.call(that); + + case 1: + return un ? fn(args[0]) : fn.call(that, args[0]); + + case 2: + return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]); + + case 3: + return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]); + + case 4: + return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]); + } + + return fn.apply(that, args); +}; + +/***/ }), +/* 97 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var global = __w_pdfjs_require__(13); + +var macrotask = __w_pdfjs_require__(95).set; + +var Observer = global.MutationObserver || global.WebKitMutationObserver; +var process = global.process; +var Promise = global.Promise; +var isNode = __w_pdfjs_require__(34)(process) == 'process'; + +module.exports = function () { + var head, last, notify; + + var flush = function flush() { + var parent, fn; + if (isNode && (parent = process.domain)) parent.exit(); + + while (head) { + fn = head.fn; + head = head.next; + + try { + fn(); + } catch (e) { + if (head) notify();else last = undefined; + throw e; + } + } + + last = undefined; + if (parent) parent.enter(); + }; + + if (isNode) { + notify = function notify() { + process.nextTick(flush); + }; + } else if (Observer && !(global.navigator && global.navigator.standalone)) { + var toggle = true; + var node = document.createTextNode(''); + new Observer(flush).observe(node, { + characterData: true + }); + + notify = function notify() { + node.data = toggle = !toggle; + }; + } else if (Promise && Promise.resolve) { + var promise = Promise.resolve(undefined); + + notify = function notify() { + promise.then(flush); + }; + } else { + notify = function notify() { + macrotask.call(global, flush); + }; + } + + return function (fn) { + var task = { + fn: fn, + next: undefined + }; + if (last) last.next = task; + + if (!head) { + head = task; + notify(); + } + + last = task; + }; +}; + +/***/ }), +/* 98 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var aFunction = __w_pdfjs_require__(29); + +function PromiseCapability(C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aFunction(resolve); + this.reject = aFunction(reject); +} + +module.exports.f = function (C) { + return new PromiseCapability(C); +}; + +/***/ }), +/* 99 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +module.exports = function (exec) { + try { + return { + e: false, + v: exec() + }; + } catch (e) { + return { + e: true, + v: e + }; + } +}; + +/***/ }), +/* 100 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var global = __w_pdfjs_require__(13); + +var navigator = global.navigator; +module.exports = navigator && navigator.userAgent || ''; + +/***/ }), +/* 101 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var anObject = __w_pdfjs_require__(17); + +var isObject = __w_pdfjs_require__(18); + +var newPromiseCapability = __w_pdfjs_require__(98); + +module.exports = function (C, x) { + anObject(C); + if (isObject(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; +}; + +/***/ }), +/* 102 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var redefine = __w_pdfjs_require__(25); + +module.exports = function (target, src, safe) { + for (var key in src) { + redefine(target, key, src[key], safe); + } + + return target; +}; + +/***/ }), +/* 103 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var global = __w_pdfjs_require__(13); + +var dP = __w_pdfjs_require__(16); + +var DESCRIPTORS = __w_pdfjs_require__(20); + +var SPECIES = __w_pdfjs_require__(35)('species'); + +module.exports = function (KEY) { + var C = global[KEY]; + if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { + configurable: true, + get: function get() { + return this; + } + }); +}; + +/***/ }), +/* 104 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(12); + +var core = __w_pdfjs_require__(14); + +var global = __w_pdfjs_require__(13); + +var speciesConstructor = __w_pdfjs_require__(94); + +var promiseResolve = __w_pdfjs_require__(101); + +$export($export.P + $export.R, 'Promise', { + 'finally': function _finally(onFinally) { + var C = speciesConstructor(this, core.Promise || global.Promise); + var isFunction = typeof onFinally == 'function'; + return this.then(isFunction ? function (x) { + return promiseResolve(C, onFinally()).then(function () { + return x; + }); + } : onFinally, isFunction ? function (e) { + return promiseResolve(C, onFinally()).then(function () { + throw e; + }); + } : onFinally); + } +}); + +/***/ }), +/* 105 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(12); + +var newPromiseCapability = __w_pdfjs_require__(98); + +var perform = __w_pdfjs_require__(99); + +$export($export.S, 'Promise', { + 'try': function _try(callbackfn) { + var promiseCapability = newPromiseCapability.f(this); + var result = perform(callbackfn); + (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); + return promiseCapability.promise; + } +}); + +/***/ }), +/* 106 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(87); + +__w_pdfjs_require__(88); + +__w_pdfjs_require__(107); + +__w_pdfjs_require__(119); + +__w_pdfjs_require__(121); + +module.exports = __w_pdfjs_require__(14).WeakMap; + +/***/ }), +/* 107 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var each = __w_pdfjs_require__(108)(0); + +var redefine = __w_pdfjs_require__(25); + +var meta = __w_pdfjs_require__(112); + +var assign = __w_pdfjs_require__(76); + +var weak = __w_pdfjs_require__(113); + +var isObject = __w_pdfjs_require__(18); + +var fails = __w_pdfjs_require__(21); + +var validate = __w_pdfjs_require__(114); + +var WEAK_MAP = 'WeakMap'; +var getWeak = meta.getWeak; +var isExtensible = Object.isExtensible; +var uncaughtFrozenStore = weak.ufstore; +var tmp = {}; +var InternalMap; + +var wrapper = function wrapper(get) { + return function WeakMap() { + return get(this, arguments.length > 0 ? arguments[0] : undefined); + }; +}; + +var methods = { + get: function get(key) { + if (isObject(key)) { + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); + return data ? data[this._i] : undefined; + } + }, + set: function set(key, value) { + return weak.def(validate(this, WEAK_MAP), key, value); + } +}; + +var $WeakMap = module.exports = __w_pdfjs_require__(115)(WEAK_MAP, wrapper, methods, weak, true, true); + +if (fails(function () { + return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; +})) { + InternalMap = weak.getConstructor(wrapper, WEAK_MAP); + assign(InternalMap.prototype, methods); + meta.NEED = true; + each(['delete', 'has', 'get', 'set'], function (key) { + var proto = $WeakMap.prototype; + var method = proto[key]; + redefine(proto, key, function (a, b) { + if (isObject(a) && !isExtensible(a)) { + if (!this._f) this._f = new InternalMap(); + + var result = this._f[key](a, b); + + return key == 'set' ? this : result; + } + + return method.call(this, a, b); + }); + }); +} + +/***/ }), +/* 108 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var ctx = __w_pdfjs_require__(28); + +var IObject = __w_pdfjs_require__(48); + +var toObject = __w_pdfjs_require__(66); + +var toLength = __w_pdfjs_require__(30); + +var asc = __w_pdfjs_require__(109); + +module.exports = function (TYPE, $create) { + var IS_MAP = TYPE == 1; + var IS_FILTER = TYPE == 2; + var IS_SOME = TYPE == 3; + var IS_EVERY = TYPE == 4; + var IS_FIND_INDEX = TYPE == 6; + var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + var create = $create || asc; + return function ($this, callbackfn, that) { + var O = toObject($this); + var self = IObject(O); + var f = ctx(callbackfn, that, 3); + var length = toLength(self.length); + var index = 0; + var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; + var val, res; + + for (; length > index; index++) { + if (NO_HOLES || index in self) { + val = self[index]; + res = f(val, index, O); + + if (TYPE) { + if (IS_MAP) result[index] = res;else if (res) switch (TYPE) { + case 3: + return true; + + case 5: + return val; + + case 6: + return index; + + case 2: + result.push(val); + } else if (IS_EVERY) return false; + } + } + } + + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; + }; +}; + +/***/ }), +/* 109 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var speciesConstructor = __w_pdfjs_require__(110); + +module.exports = function (original, length) { + return new (speciesConstructor(original))(length); +}; + +/***/ }), +/* 110 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(18); + +var isArray = __w_pdfjs_require__(111); + +var SPECIES = __w_pdfjs_require__(35)('species'); + +module.exports = function (original) { + var C; + + if (isArray(original)) { + C = original.constructor; + if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; + + if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } + + return C === undefined ? Array : C; +}; + +/***/ }), +/* 111 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var cof = __w_pdfjs_require__(34); + +module.exports = Array.isArray || function isArray(arg) { + return cof(arg) == 'Array'; +}; + +/***/ }), +/* 112 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var META = __w_pdfjs_require__(27)('meta'); + +var isObject = __w_pdfjs_require__(18); + +var has = __w_pdfjs_require__(26); + +var setDesc = __w_pdfjs_require__(16).f; + +var id = 0; + +var isExtensible = Object.isExtensible || function () { + return true; +}; + +var FREEZE = !__w_pdfjs_require__(21)(function () { + return isExtensible(Object.preventExtensions({})); +}); + +var setMeta = function setMeta(it) { + setDesc(it, META, { + value: { + i: 'O' + ++id, + w: {} + } + }); +}; + +var fastKey = function fastKey(it, create) { + if (!isObject(it)) return _typeof(it) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + + if (!has(it, META)) { + if (!isExtensible(it)) return 'F'; + if (!create) return 'E'; + setMeta(it); + } + + return it[META].i; +}; + +var getWeak = function getWeak(it, create) { + if (!has(it, META)) { + if (!isExtensible(it)) return true; + if (!create) return false; + setMeta(it); + } + + return it[META].w; +}; + +var onFreeze = function onFreeze(it) { + if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); + return it; +}; + +var meta = module.exports = { + KEY: META, + NEED: false, + fastKey: fastKey, + getWeak: getWeak, + onFreeze: onFreeze +}; + +/***/ }), +/* 113 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var redefineAll = __w_pdfjs_require__(102); + +var getWeak = __w_pdfjs_require__(112).getWeak; + +var anObject = __w_pdfjs_require__(17); + +var isObject = __w_pdfjs_require__(18); + +var anInstance = __w_pdfjs_require__(92); + +var forOf = __w_pdfjs_require__(93); + +var createArrayMethod = __w_pdfjs_require__(108); + +var $has = __w_pdfjs_require__(26); + +var validate = __w_pdfjs_require__(114); + +var arrayFind = createArrayMethod(5); +var arrayFindIndex = createArrayMethod(6); +var id = 0; + +var uncaughtFrozenStore = function uncaughtFrozenStore(that) { + return that._l || (that._l = new UncaughtFrozenStore()); +}; + +var UncaughtFrozenStore = function UncaughtFrozenStore() { + this.a = []; +}; + +var findUncaughtFrozen = function findUncaughtFrozen(store, key) { + return arrayFind(store.a, function (it) { + return it[0] === key; + }); +}; + +UncaughtFrozenStore.prototype = { + get: function get(key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function has(key) { + return !!findUncaughtFrozen(this, key); + }, + set: function set(key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value;else this.a.push([key, value]); + }, + 'delete': function _delete(key) { + var index = arrayFindIndex(this.a, function (it) { + return it[0] === key; + }); + if (~index) this.a.splice(index, 1); + return !!~index; + } +}; +module.exports = { + getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) { + var C = wrapper(function (that, iterable) { + anInstance(that, C, NAME, '_i'); + that._t = NAME; + that._i = id++; + that._l = undefined; + if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); + }); + redefineAll(C.prototype, { + 'delete': function _delete(key) { + if (!isObject(key)) return false; + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); + return data && $has(data, this._i) && delete data[this._i]; + }, + has: function has(key) { + if (!isObject(key)) return false; + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); + return data && $has(data, this._i); + } + }); + return C; + }, + def: function def(that, key, value) { + var data = getWeak(anObject(key), true); + if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value; + return that; + }, + ufstore: uncaughtFrozenStore +}; + +/***/ }), +/* 114 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(18); + +module.exports = function (it, TYPE) { + if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); + return it; +}; + +/***/ }), +/* 115 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var global = __w_pdfjs_require__(13); + +var $export = __w_pdfjs_require__(12); + +var redefine = __w_pdfjs_require__(25); + +var redefineAll = __w_pdfjs_require__(102); + +var meta = __w_pdfjs_require__(112); + +var forOf = __w_pdfjs_require__(93); + +var anInstance = __w_pdfjs_require__(92); + +var isObject = __w_pdfjs_require__(18); + +var fails = __w_pdfjs_require__(21); + +var $iterDetect = __w_pdfjs_require__(73); + +var setToStringTag = __w_pdfjs_require__(64); + +var inheritIfRequired = __w_pdfjs_require__(116); + +module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { + var Base = global[NAME]; + var C = Base; + var ADDER = IS_MAP ? 'set' : 'add'; + var proto = C && C.prototype; + var O = {}; + + var fixMethod = function fixMethod(KEY) { + var fn = proto[KEY]; + redefine(proto, KEY, KEY == 'delete' ? function (a) { + return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'has' ? function has(a) { + return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'get' ? function get(a) { + return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'add' ? function add(a) { + fn.call(this, a === 0 ? 0 : a); + return this; + } : function set(a, b) { + fn.call(this, a === 0 ? 0 : a, b); + return this; + }); + }; + + if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { + new C().entries().next(); + }))) { + C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); + redefineAll(C.prototype, methods); + meta.NEED = true; + } else { + var instance = new C(); + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; + var THROWS_ON_PRIMITIVES = fails(function () { + instance.has(1); + }); + var ACCEPT_ITERABLES = $iterDetect(function (iter) { + new C(iter); + }); + var BUGGY_ZERO = !IS_WEAK && fails(function () { + var $instance = new C(); + var index = 5; + + while (index--) { + $instance[ADDER](index, index); + } + + return !$instance.has(-0); + }); + + if (!ACCEPT_ITERABLES) { + C = wrapper(function (target, iterable) { + anInstance(target, C, NAME); + var that = inheritIfRequired(new Base(), target, C); + if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); + return that; + }); + C.prototype = proto; + proto.constructor = C; + } + + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + if (IS_WEAK && proto.clear) delete proto.clear; + } + + setToStringTag(C, NAME); + O[NAME] = C; + $export($export.G + $export.W + $export.F * (C != Base), O); + if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); + return C; +}; + +/***/ }), +/* 116 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(18); + +var setPrototypeOf = __w_pdfjs_require__(117).set; + +module.exports = function (that, target, C) { + var S = target.constructor; + var P; + + if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { + setPrototypeOf(that, P); + } + + return that; +}; + +/***/ }), +/* 117 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var isObject = __w_pdfjs_require__(18); + +var anObject = __w_pdfjs_require__(17); + +var check = function check(O, proto) { + anObject(O); + if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); +}; + +module.exports = { + set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) { + try { + set = __w_pdfjs_require__(28)(Function.call, __w_pdfjs_require__(118).f(Object.prototype, '__proto__').set, 2); + set(test, []); + buggy = !(test instanceof Array); + } catch (e) { + buggy = true; + } + + return function setPrototypeOf(O, proto) { + check(O, proto); + if (buggy) O.__proto__ = proto;else set(O, proto); + return O; + }; + }({}, false) : undefined), + check: check +}; + +/***/ }), +/* 118 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var pIE = __w_pdfjs_require__(78); + +var createDesc = __w_pdfjs_require__(24); + +var toIObject = __w_pdfjs_require__(47); + +var toPrimitive = __w_pdfjs_require__(23); + +var has = __w_pdfjs_require__(26); + +var IE8_DOM_DEFINE = __w_pdfjs_require__(19); + +var gOPD = Object.getOwnPropertyDescriptor; +exports.f = __w_pdfjs_require__(20) ? gOPD : function getOwnPropertyDescriptor(O, P) { + O = toIObject(O); + P = toPrimitive(P, true); + if (IE8_DOM_DEFINE) try { + return gOPD(O, P); + } catch (e) {} + if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); +}; + +/***/ }), +/* 119 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(120)('WeakMap'); + +/***/ }), +/* 120 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(12); + +module.exports = function (COLLECTION) { + $export($export.S, COLLECTION, { + of: function of() { + var length = arguments.length; + var A = new Array(length); + + while (length--) { + A[length] = arguments[length]; + } + + return new this(A); + } + }); +}; + +/***/ }), +/* 121 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(122)('WeakMap'); + +/***/ }), +/* 122 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(12); + +var aFunction = __w_pdfjs_require__(29); + +var ctx = __w_pdfjs_require__(28); + +var forOf = __w_pdfjs_require__(93); + +module.exports = function (COLLECTION) { + $export($export.S, COLLECTION, { + from: function from(source) { + var mapFn = arguments[1]; + var mapping, A, n, cb; + aFunction(this); + mapping = mapFn !== undefined; + if (mapping) aFunction(mapFn); + if (source == undefined) return new this(); + A = []; + + if (mapping) { + n = 0; + cb = ctx(mapFn, arguments[2], 2); + forOf(source, false, function (nextItem) { + A.push(cb(nextItem, n++)); + }); + } else { + forOf(source, false, A.push, A); + } + + return new this(A); + } + }); +}; + +/***/ }), +/* 123 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(87); + +__w_pdfjs_require__(88); + +__w_pdfjs_require__(124); + +__w_pdfjs_require__(125); + +__w_pdfjs_require__(126); + +module.exports = __w_pdfjs_require__(14).WeakSet; + +/***/ }), +/* 124 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var weak = __w_pdfjs_require__(113); + +var validate = __w_pdfjs_require__(114); + +var WEAK_SET = 'WeakSet'; + +__w_pdfjs_require__(115)(WEAK_SET, function (get) { + return function WeakSet() { + return get(this, arguments.length > 0 ? arguments[0] : undefined); + }; +}, { + add: function add(value) { + return weak.def(validate(this, WEAK_SET), value, true); + } +}, weak, false, true); + +/***/ }), +/* 125 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(120)('WeakSet'); + +/***/ }), +/* 126 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(122)('WeakSet'); + +/***/ }), +/* 127 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(128); + +module.exports = __w_pdfjs_require__(14).String.codePointAt; + +/***/ }), +/* 128 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(12); + +var $at = __w_pdfjs_require__(53)(false); + +$export($export.P, 'String', { + codePointAt: function codePointAt(pos) { + return $at(this, pos); + } +}); + +/***/ }), +/* 129 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(130); + +module.exports = __w_pdfjs_require__(14).String.fromCodePoint; + +/***/ }), +/* 130 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(12); + +var toAbsoluteIndex = __w_pdfjs_require__(49); + +var fromCharCode = String.fromCharCode; +var $fromCodePoint = String.fromCodePoint; +$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', { + fromCodePoint: function fromCodePoint(x) { + var res = []; + var aLen = arguments.length; + var i = 0; + var code; + + while (aLen > i) { + code = +arguments[i++]; + if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point'); + res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)); + } + + return res.join(''); + } +}); + +/***/ }), +/* 131 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(132); + +__w_pdfjs_require__(87); + +module.exports = __w_pdfjs_require__(14).Symbol; + +/***/ }), +/* 132 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var global = __w_pdfjs_require__(13); + +var has = __w_pdfjs_require__(26); + +var DESCRIPTORS = __w_pdfjs_require__(20); + +var $export = __w_pdfjs_require__(12); + +var redefine = __w_pdfjs_require__(25); + +var META = __w_pdfjs_require__(112).KEY; + +var $fails = __w_pdfjs_require__(21); + +var shared = __w_pdfjs_require__(36); + +var setToStringTag = __w_pdfjs_require__(64); + +var uid = __w_pdfjs_require__(27); + +var wks = __w_pdfjs_require__(35); + +var wksExt = __w_pdfjs_require__(133); + +var wksDefine = __w_pdfjs_require__(134); + +var enumKeys = __w_pdfjs_require__(135); + +var isArray = __w_pdfjs_require__(111); + +var anObject = __w_pdfjs_require__(17); + +var isObject = __w_pdfjs_require__(18); + +var toIObject = __w_pdfjs_require__(47); + +var toPrimitive = __w_pdfjs_require__(23); + +var createDesc = __w_pdfjs_require__(24); + +var _create = __w_pdfjs_require__(57); + +var gOPNExt = __w_pdfjs_require__(136); + +var $GOPD = __w_pdfjs_require__(118); + +var $DP = __w_pdfjs_require__(16); + +var $keys = __w_pdfjs_require__(59); + +var gOPD = $GOPD.f; +var dP = $DP.f; +var gOPN = gOPNExt.f; +var $Symbol = global.Symbol; +var $JSON = global.JSON; + +var _stringify = $JSON && $JSON.stringify; + +var PROTOTYPE = 'prototype'; +var HIDDEN = wks('_hidden'); +var TO_PRIMITIVE = wks('toPrimitive'); +var isEnum = {}.propertyIsEnumerable; +var SymbolRegistry = shared('symbol-registry'); +var AllSymbols = shared('symbols'); +var OPSymbols = shared('op-symbols'); +var ObjectProto = Object[PROTOTYPE]; +var USE_NATIVE = typeof $Symbol == 'function'; +var QObject = global.QObject; +var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; +var setSymbolDesc = DESCRIPTORS && $fails(function () { + return _create(dP({}, 'a', { + get: function get() { + return dP(this, 'a', { + value: 7 + }).a; + } + })).a != 7; +}) ? function (it, key, D) { + var protoDesc = gOPD(ObjectProto, key); + if (protoDesc) delete ObjectProto[key]; + dP(it, key, D); + if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); +} : dP; + +var wrap = function wrap(tag) { + var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); + + sym._k = tag; + return sym; +}; + +var isSymbol = USE_NATIVE && _typeof($Symbol.iterator) == 'symbol' ? function (it) { + return _typeof(it) == 'symbol'; +} : function (it) { + return it instanceof $Symbol; +}; + +var $defineProperty = function defineProperty(it, key, D) { + if (it === ObjectProto) $defineProperty(OPSymbols, key, D); + anObject(it); + key = toPrimitive(key, true); + anObject(D); + + if (has(AllSymbols, key)) { + if (!D.enumerable) { + if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); + it[HIDDEN][key] = true; + } else { + if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; + D = _create(D, { + enumerable: createDesc(0, false) + }); + } + + return setSymbolDesc(it, key, D); + } + + return dP(it, key, D); +}; + +var $defineProperties = function defineProperties(it, P) { + anObject(it); + var keys = enumKeys(P = toIObject(P)); + var i = 0; + var l = keys.length; + var key; + + while (l > i) { + $defineProperty(it, key = keys[i++], P[key]); + } + + return it; +}; + +var $create = function create(it, P) { + return P === undefined ? _create(it) : $defineProperties(_create(it), P); +}; + +var $propertyIsEnumerable = function propertyIsEnumerable(key) { + var E = isEnum.call(this, key = toPrimitive(key, true)); + if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; + return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; +}; + +var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { + it = toIObject(it); + key = toPrimitive(key, true); + if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; + var D = gOPD(it, key); + if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; + return D; +}; + +var $getOwnPropertyNames = function getOwnPropertyNames(it) { + var names = gOPN(toIObject(it)); + var result = []; + var i = 0; + var key; + + while (names.length > i) { + if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); + } + + return result; +}; + +var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { + var IS_OP = it === ObjectProto; + var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); + var result = []; + var i = 0; + var key; + + while (names.length > i) { + if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); + } + + return result; +}; + +if (!USE_NATIVE) { + $Symbol = function _Symbol() { + if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); + var tag = uid(arguments.length > 0 ? arguments[0] : undefined); + + var $set = function $set(value) { + if (this === ObjectProto) $set.call(OPSymbols, value); + if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; + setSymbolDesc(this, tag, createDesc(1, value)); + }; + + if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { + configurable: true, + set: $set + }); + return wrap(tag); + }; + + redefine($Symbol[PROTOTYPE], 'toString', function toString() { + return this._k; + }); + $GOPD.f = $getOwnPropertyDescriptor; + $DP.f = $defineProperty; + __w_pdfjs_require__(137).f = gOPNExt.f = $getOwnPropertyNames; + __w_pdfjs_require__(78).f = $propertyIsEnumerable; + __w_pdfjs_require__(77).f = $getOwnPropertySymbols; + + if (DESCRIPTORS && !__w_pdfjs_require__(37)) { + redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); + } + + wksExt.f = function (name) { + return wrap(wks(name)); + }; +} + +$export($export.G + $export.W + $export.F * !USE_NATIVE, { + Symbol: $Symbol +}); + +for (var es6Symbols = 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;) { + wks(es6Symbols[j++]); +} + +for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) { + wksDefine(wellKnownSymbols[k++]); +} + +$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { + 'for': function _for(key) { + return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key); + }, + keyFor: function keyFor(sym) { + if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); + + for (var key in SymbolRegistry) { + if (SymbolRegistry[key] === sym) return key; + } + }, + useSetter: function useSetter() { + setter = true; + }, + useSimple: function useSimple() { + setter = false; + } +}); +$export($export.S + $export.F * !USE_NATIVE, 'Object', { + create: $create, + defineProperty: $defineProperty, + defineProperties: $defineProperties, + getOwnPropertyDescriptor: $getOwnPropertyDescriptor, + getOwnPropertyNames: $getOwnPropertyNames, + getOwnPropertySymbols: $getOwnPropertySymbols +}); +$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { + var S = $Symbol(); + return _stringify([S]) != '[null]' || _stringify({ + a: S + }) != '{}' || _stringify(Object(S)) != '{}'; +})), 'JSON', { + stringify: function stringify(it) { + var args = [it]; + var i = 1; + var replacer, $replacer; + + while (arguments.length > i) { + args.push(arguments[i++]); + } + + $replacer = replacer = args[1]; + if (!isObject(replacer) && it === undefined || isSymbol(it)) return; + if (!isArray(replacer)) replacer = function replacer(key, value) { + if (typeof $replacer == 'function') value = $replacer.call(this, key, value); + if (!isSymbol(value)) return value; + }; + args[1] = replacer; + return _stringify.apply($JSON, args); + } +}); +$Symbol[PROTOTYPE][TO_PRIMITIVE] || __w_pdfjs_require__(15)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); +setToStringTag($Symbol, 'Symbol'); +setToStringTag(Math, 'Math', true); +setToStringTag(global.JSON, 'JSON', true); + +/***/ }), +/* 133 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +exports.f = __w_pdfjs_require__(35); + +/***/ }), +/* 134 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var global = __w_pdfjs_require__(13); + +var core = __w_pdfjs_require__(14); + +var LIBRARY = __w_pdfjs_require__(37); + +var wksExt = __w_pdfjs_require__(133); + +var defineProperty = __w_pdfjs_require__(16).f; + +module.exports = function (name) { + var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); + if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { + value: wksExt.f(name) + }); +}; + +/***/ }), +/* 135 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var getKeys = __w_pdfjs_require__(59); + +var gOPS = __w_pdfjs_require__(77); + +var pIE = __w_pdfjs_require__(78); + +module.exports = function (it) { + var result = getKeys(it); + var getSymbols = gOPS.f; + + if (getSymbols) { + var symbols = getSymbols(it); + var isEnum = pIE.f; + var i = 0; + var key; + + while (symbols.length > i) { + if (isEnum.call(it, key = symbols[i++])) result.push(key); + } + } + + return result; +}; + +/***/ }), +/* 136 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var toIObject = __w_pdfjs_require__(47); + +var gOPN = __w_pdfjs_require__(137).f; + +var toString = {}.toString; +var windowNames = (typeof window === "undefined" ? "undefined" : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; + +var getWindowNames = function getWindowNames(it) { + try { + return gOPN(it); + } catch (e) { + return windowNames.slice(); + } +}; + +module.exports.f = function getOwnPropertyNames(it) { + return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); +}; + +/***/ }), +/* 137 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $keys = __w_pdfjs_require__(60); + +var hiddenKeys = __w_pdfjs_require__(62).concat('length', 'prototype'); + +exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return $keys(O, hiddenKeys); +}; + +/***/ }), +/* 138 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(139); + +module.exports = __w_pdfjs_require__(14).String.padStart; + +/***/ }), +/* 139 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(12); + +var $pad = __w_pdfjs_require__(140); + +var userAgent = __w_pdfjs_require__(100); + +$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', { + padStart: function padStart(maxLength) { + return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true); + } +}); + +/***/ }), +/* 140 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var toLength = __w_pdfjs_require__(30); + +var repeat = __w_pdfjs_require__(141); + +var defined = __w_pdfjs_require__(38); + +module.exports = function (that, maxLength, fillString, left) { + var S = String(defined(that)); + var stringLength = S.length; + var fillStr = fillString === undefined ? ' ' : String(fillString); + var intMaxLength = toLength(maxLength); + if (intMaxLength <= stringLength || fillStr == '') return S; + var fillLen = intMaxLength - stringLength; + var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length)); + if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen); + return left ? stringFiller + S : S + stringFiller; +}; + +/***/ }), +/* 141 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var toInteger = __w_pdfjs_require__(31); + +var defined = __w_pdfjs_require__(38); + +module.exports = function repeat(count) { + var str = String(defined(this)); + var res = ''; + var n = toInteger(count); + if (n < 0 || n == Infinity) throw RangeError("Count can't be negative"); + + for (; n > 0; (n >>>= 1) && (str += str)) { + if (n & 1) res += str; + } + + return res; +}; + +/***/ }), +/* 142 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(143); + +module.exports = __w_pdfjs_require__(14).String.padEnd; + +/***/ }), +/* 143 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(12); + +var $pad = __w_pdfjs_require__(140); + +var userAgent = __w_pdfjs_require__(100); + +$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', { + padEnd: function padEnd(maxLength) { + return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false); + } +}); + +/***/ }), +/* 144 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +__w_pdfjs_require__(145); + +module.exports = __w_pdfjs_require__(14).Object.values; + +/***/ }), +/* 145 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var $export = __w_pdfjs_require__(12); + +var $values = __w_pdfjs_require__(146)(false); + +$export($export.S, 'Object', { + values: function values(it) { + return $values(it); + } +}); + +/***/ }), +/* 146 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +var getKeys = __w_pdfjs_require__(59); + +var toIObject = __w_pdfjs_require__(47); + +var isEnum = __w_pdfjs_require__(78).f; + +module.exports = function (isEntries) { + return function (it) { + var O = toIObject(it); + var keys = getKeys(O); + var length = keys.length; + var i = 0; + var result = []; + var key; + + while (length > i) { + if (isEnum.call(O, key = keys[i++])) { + result.push(isEntries ? [key, O[key]] : O[key]); + } + } + + return result; + }; +}; + +/***/ }), +/* 147 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +{ + var isReadableStreamSupported = false; + + if (typeof ReadableStream !== 'undefined') { + try { + new ReadableStream({ + start: function start(controller) { + controller.close(); + } + }); + isReadableStreamSupported = true; + } catch (e) {} + } + + if (isReadableStreamSupported) { + exports.ReadableStream = ReadableStream; + } else { + exports.ReadableStream = __w_pdfjs_require__(148).ReadableStream; + } +} + +/***/ }), +/* 148 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } + +(function (e, a) { + for (var i in a) { + e[i] = a[i]; + } +})(exports, function (modules) { + var installedModules = {}; + + function __w_pdfjs_require__(moduleId) { + if (installedModules[moduleId]) return installedModules[moduleId].exports; + var module = installedModules[moduleId] = { + i: moduleId, + l: false, + exports: {} + }; + modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__); + module.l = true; + return module.exports; + } + + __w_pdfjs_require__.m = modules; + __w_pdfjs_require__.c = installedModules; + + __w_pdfjs_require__.i = function (value) { + return value; + }; + + __w_pdfjs_require__.d = function (exports, name, getter) { + if (!__w_pdfjs_require__.o(exports, name)) { + Object.defineProperty(exports, name, { + configurable: false, + enumerable: true, + get: getter + }); + } + }; + + __w_pdfjs_require__.n = function (module) { + var getter = module && module.__esModule ? function getDefault() { + return module['default']; + } : function getModuleExports() { + return module; + }; + + __w_pdfjs_require__.d(getter, 'a', getter); + + return getter; + }; + + __w_pdfjs_require__.o = function (object, property) { + return Object.prototype.hasOwnProperty.call(object, property); + }; + + __w_pdfjs_require__.p = ""; + return __w_pdfjs_require__(__w_pdfjs_require__.s = 7); +}([function (module, exports, __w_pdfjs_require__) { + "use strict"; + + var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { + return _typeof2(obj); + } : function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); + }; + + var _require = __w_pdfjs_require__(1), + assert = _require.assert; + + function IsPropertyKey(argument) { + return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol'; + } + + exports.typeIsObject = function (x) { + return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function'; + }; + + exports.createDataProperty = function (o, p, v) { + assert(exports.typeIsObject(o)); + Object.defineProperty(o, p, { + value: v, + writable: true, + enumerable: true, + configurable: true + }); + }; + + exports.createArrayFromList = function (elements) { + return elements.slice(); + }; + + exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) { + new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset); + }; + + exports.CreateIterResultObject = function (value, done) { + assert(typeof done === 'boolean'); + var obj = {}; + Object.defineProperty(obj, 'value', { + value: value, + enumerable: true, + writable: true, + configurable: true + }); + Object.defineProperty(obj, 'done', { + value: done, + enumerable: true, + writable: true, + configurable: true + }); + return obj; + }; + + exports.IsFiniteNonNegativeNumber = function (v) { + if (Number.isNaN(v)) { + return false; + } + + if (v === Infinity) { + return false; + } + + if (v < 0) { + return false; + } + + return true; + }; + + function Call(F, V, args) { + if (typeof F !== 'function') { + throw new TypeError('Argument is not a function'); + } + + return Function.prototype.apply.call(F, V, args); + } + + exports.InvokeOrNoop = function (O, P, args) { + assert(O !== undefined); + assert(IsPropertyKey(P)); + assert(Array.isArray(args)); + var method = O[P]; + + if (method === undefined) { + return undefined; + } + + return Call(method, O, args); + }; + + exports.PromiseInvokeOrNoop = function (O, P, args) { + assert(O !== undefined); + assert(IsPropertyKey(P)); + assert(Array.isArray(args)); + + try { + return Promise.resolve(exports.InvokeOrNoop(O, P, args)); + } catch (returnValueE) { + return Promise.reject(returnValueE); + } + }; + + exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) { + assert(O !== undefined); + assert(IsPropertyKey(P)); + assert(Array.isArray(args)); + assert(Array.isArray(argsF)); + var method = void 0; + + try { + method = O[P]; + } catch (methodE) { + return Promise.reject(methodE); + } + + if (method === undefined) { + return F.apply(null, argsF); + } + + try { + return Promise.resolve(Call(method, O, args)); + } catch (e) { + return Promise.reject(e); + } + }; + + exports.TransferArrayBuffer = function (O) { + return O.slice(); + }; + + exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) { + highWaterMark = Number(highWaterMark); + + if (Number.isNaN(highWaterMark) || highWaterMark < 0) { + throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN'); + } + + return highWaterMark; + }; + + exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) { + if (size !== undefined && typeof size !== 'function') { + throw new TypeError('size property of a queuing strategy must be a function'); + } + + highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark); + return { + size: size, + highWaterMark: highWaterMark + }; + }; +}, function (module, exports, __w_pdfjs_require__) { + "use strict"; + + function rethrowAssertionErrorRejection(e) { + if (e && e.constructor === AssertionError) { + setTimeout(function () { + throw e; + }, 0); + } + } + + function AssertionError(message) { + this.name = 'AssertionError'; + this.message = message || ''; + this.stack = new Error().stack; + } + + AssertionError.prototype = Object.create(Error.prototype); + AssertionError.prototype.constructor = AssertionError; + + function assert(value, message) { + if (!value) { + throw new AssertionError(message); + } + } + + module.exports = { + rethrowAssertionErrorRejection: rethrowAssertionErrorRejection, + AssertionError: AssertionError, + assert: assert + }; +}, function (module, exports, __w_pdfjs_require__) { + "use strict"; + + var _createClass = function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + var _require = __w_pdfjs_require__(0), + InvokeOrNoop = _require.InvokeOrNoop, + PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, + ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, + typeIsObject = _require.typeIsObject; + + var _require2 = __w_pdfjs_require__(1), + assert = _require2.assert, + rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection; + + var _require3 = __w_pdfjs_require__(3), + DequeueValue = _require3.DequeueValue, + EnqueueValueWithSize = _require3.EnqueueValueWithSize, + PeekQueueValue = _require3.PeekQueueValue, + ResetQueue = _require3.ResetQueue; + + var WritableStream = function () { + function WritableStream() { + var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + size = _ref.size, + _ref$highWaterMark = _ref.highWaterMark, + highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark; + + _classCallCheck(this, WritableStream); + + this._state = 'writable'; + this._storedError = undefined; + this._writer = undefined; + this._writableStreamController = undefined; + this._writeRequests = []; + this._inFlightWriteRequest = undefined; + this._closeRequest = undefined; + this._inFlightCloseRequest = undefined; + this._pendingAbortRequest = undefined; + this._backpressure = false; + var type = underlyingSink.type; + + if (type !== undefined) { + throw new RangeError('Invalid type is specified'); + } + + this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark); + + this._writableStreamController.__startSteps(); + } + + _createClass(WritableStream, [{ + key: 'abort', + value: function abort(reason) { + if (IsWritableStream(this) === false) { + return Promise.reject(streamBrandCheckException('abort')); + } + + if (IsWritableStreamLocked(this) === true) { + return Promise.reject(new TypeError('Cannot abort a stream that already has a writer')); + } + + return WritableStreamAbort(this, reason); + } + }, { + key: 'getWriter', + value: function getWriter() { + if (IsWritableStream(this) === false) { + throw streamBrandCheckException('getWriter'); + } + + return AcquireWritableStreamDefaultWriter(this); + } + }, { + key: 'locked', + get: function get() { + if (IsWritableStream(this) === false) { + throw streamBrandCheckException('locked'); + } + + return IsWritableStreamLocked(this); + } + }]); + + return WritableStream; + }(); + + module.exports = { + AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter, + IsWritableStream: IsWritableStream, + IsWritableStreamLocked: IsWritableStreamLocked, + WritableStream: WritableStream, + WritableStreamAbort: WritableStreamAbort, + WritableStreamDefaultControllerError: WritableStreamDefaultControllerError, + WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation, + WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease, + WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite, + WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight + }; + + function AcquireWritableStreamDefaultWriter(stream) { + return new WritableStreamDefaultWriter(stream); + } + + function IsWritableStream(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) { + return false; + } + + return true; + } + + function IsWritableStreamLocked(stream) { + assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams'); + + if (stream._writer === undefined) { + return false; + } + + return true; + } + + function WritableStreamAbort(stream, reason) { + var state = stream._state; + + if (state === 'closed') { + return Promise.resolve(undefined); + } + + if (state === 'errored') { + return Promise.reject(stream._storedError); + } + + var error = new TypeError('Requested to abort'); + + if (stream._pendingAbortRequest !== undefined) { + return Promise.reject(error); + } + + assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring'); + var wasAlreadyErroring = false; + + if (state === 'erroring') { + wasAlreadyErroring = true; + reason = undefined; + } + + var promise = new Promise(function (resolve, reject) { + stream._pendingAbortRequest = { + _resolve: resolve, + _reject: reject, + _reason: reason, + _wasAlreadyErroring: wasAlreadyErroring + }; + }); + + if (wasAlreadyErroring === false) { + WritableStreamStartErroring(stream, error); + } + + return promise; + } + + function WritableStreamAddWriteRequest(stream) { + assert(IsWritableStreamLocked(stream) === true); + assert(stream._state === 'writable'); + var promise = new Promise(function (resolve, reject) { + var writeRequest = { + _resolve: resolve, + _reject: reject + }; + + stream._writeRequests.push(writeRequest); + }); + return promise; + } + + function WritableStreamDealWithRejection(stream, error) { + var state = stream._state; + + if (state === 'writable') { + WritableStreamStartErroring(stream, error); + return; + } + + assert(state === 'erroring'); + WritableStreamFinishErroring(stream); + } + + function WritableStreamStartErroring(stream, reason) { + assert(stream._storedError === undefined, 'stream._storedError === undefined'); + assert(stream._state === 'writable', 'state must be writable'); + var controller = stream._writableStreamController; + assert(controller !== undefined, 'controller must not be undefined'); + stream._state = 'erroring'; + stream._storedError = reason; + var writer = stream._writer; + + if (writer !== undefined) { + WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason); + } + + if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) { + WritableStreamFinishErroring(stream); + } + } + + function WritableStreamFinishErroring(stream) { + assert(stream._state === 'erroring', 'stream._state === erroring'); + assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false'); + stream._state = 'errored'; + + stream._writableStreamController.__errorSteps(); + + var storedError = stream._storedError; + + for (var i = 0; i < stream._writeRequests.length; i++) { + var writeRequest = stream._writeRequests[i]; + + writeRequest._reject(storedError); + } + + stream._writeRequests = []; + + if (stream._pendingAbortRequest === undefined) { + WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); + return; + } + + var abortRequest = stream._pendingAbortRequest; + stream._pendingAbortRequest = undefined; + + if (abortRequest._wasAlreadyErroring === true) { + abortRequest._reject(storedError); + + WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); + return; + } + + var promise = stream._writableStreamController.__abortSteps(abortRequest._reason); + + promise.then(function () { + abortRequest._resolve(); + + WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); + }, function (reason) { + abortRequest._reject(reason); + + WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); + }); + } + + function WritableStreamFinishInFlightWrite(stream) { + assert(stream._inFlightWriteRequest !== undefined); + + stream._inFlightWriteRequest._resolve(undefined); + + stream._inFlightWriteRequest = undefined; + } + + function WritableStreamFinishInFlightWriteWithError(stream, error) { + assert(stream._inFlightWriteRequest !== undefined); + + stream._inFlightWriteRequest._reject(error); + + stream._inFlightWriteRequest = undefined; + assert(stream._state === 'writable' || stream._state === 'erroring'); + WritableStreamDealWithRejection(stream, error); + } + + function WritableStreamFinishInFlightClose(stream) { + assert(stream._inFlightCloseRequest !== undefined); + + stream._inFlightCloseRequest._resolve(undefined); + + stream._inFlightCloseRequest = undefined; + var state = stream._state; + assert(state === 'writable' || state === 'erroring'); + + if (state === 'erroring') { + stream._storedError = undefined; + + if (stream._pendingAbortRequest !== undefined) { + stream._pendingAbortRequest._resolve(); + + stream._pendingAbortRequest = undefined; + } + } + + stream._state = 'closed'; + var writer = stream._writer; + + if (writer !== undefined) { + defaultWriterClosedPromiseResolve(writer); + } + + assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined'); + assert(stream._storedError === undefined, 'stream._storedError === undefined'); + } + + function WritableStreamFinishInFlightCloseWithError(stream, error) { + assert(stream._inFlightCloseRequest !== undefined); + + stream._inFlightCloseRequest._reject(error); + + stream._inFlightCloseRequest = undefined; + assert(stream._state === 'writable' || stream._state === 'erroring'); + + if (stream._pendingAbortRequest !== undefined) { + stream._pendingAbortRequest._reject(error); + + stream._pendingAbortRequest = undefined; + } + + WritableStreamDealWithRejection(stream, error); + } + + function WritableStreamCloseQueuedOrInFlight(stream) { + if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) { + return false; + } + + return true; + } + + function WritableStreamHasOperationMarkedInFlight(stream) { + if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) { + return false; + } + + return true; + } + + function WritableStreamMarkCloseRequestInFlight(stream) { + assert(stream._inFlightCloseRequest === undefined); + assert(stream._closeRequest !== undefined); + stream._inFlightCloseRequest = stream._closeRequest; + stream._closeRequest = undefined; + } + + function WritableStreamMarkFirstWriteRequestInFlight(stream) { + assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request'); + assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty'); + stream._inFlightWriteRequest = stream._writeRequests.shift(); + } + + function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) { + assert(stream._state === 'errored', '_stream_.[[state]] is `"errored"`'); + + if (stream._closeRequest !== undefined) { + assert(stream._inFlightCloseRequest === undefined); + + stream._closeRequest._reject(stream._storedError); + + stream._closeRequest = undefined; + } + + var writer = stream._writer; + + if (writer !== undefined) { + defaultWriterClosedPromiseReject(writer, stream._storedError); + + writer._closedPromise.catch(function () {}); + } + } + + function WritableStreamUpdateBackpressure(stream, backpressure) { + assert(stream._state === 'writable'); + assert(WritableStreamCloseQueuedOrInFlight(stream) === false); + var writer = stream._writer; + + if (writer !== undefined && backpressure !== stream._backpressure) { + if (backpressure === true) { + defaultWriterReadyPromiseReset(writer); + } else { + assert(backpressure === false); + defaultWriterReadyPromiseResolve(writer); + } + } + + stream._backpressure = backpressure; + } + + var WritableStreamDefaultWriter = function () { + function WritableStreamDefaultWriter(stream) { + _classCallCheck(this, WritableStreamDefaultWriter); + + if (IsWritableStream(stream) === false) { + throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance'); + } + + if (IsWritableStreamLocked(stream) === true) { + throw new TypeError('This stream has already been locked for exclusive writing by another writer'); + } + + this._ownerWritableStream = stream; + stream._writer = this; + var state = stream._state; + + if (state === 'writable') { + if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) { + defaultWriterReadyPromiseInitialize(this); + } else { + defaultWriterReadyPromiseInitializeAsResolved(this); + } + + defaultWriterClosedPromiseInitialize(this); + } else if (state === 'erroring') { + defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError); + + this._readyPromise.catch(function () {}); + + defaultWriterClosedPromiseInitialize(this); + } else if (state === 'closed') { + defaultWriterReadyPromiseInitializeAsResolved(this); + defaultWriterClosedPromiseInitializeAsResolved(this); + } else { + assert(state === 'errored', 'state must be errored'); + var storedError = stream._storedError; + defaultWriterReadyPromiseInitializeAsRejected(this, storedError); + + this._readyPromise.catch(function () {}); + + defaultWriterClosedPromiseInitializeAsRejected(this, storedError); + + this._closedPromise.catch(function () {}); + } + } + + _createClass(WritableStreamDefaultWriter, [{ + key: 'abort', + value: function abort(reason) { + if (IsWritableStreamDefaultWriter(this) === false) { + return Promise.reject(defaultWriterBrandCheckException('abort')); + } + + if (this._ownerWritableStream === undefined) { + return Promise.reject(defaultWriterLockException('abort')); + } + + return WritableStreamDefaultWriterAbort(this, reason); + } + }, { + key: 'close', + value: function close() { + if (IsWritableStreamDefaultWriter(this) === false) { + return Promise.reject(defaultWriterBrandCheckException('close')); + } + + var stream = this._ownerWritableStream; + + if (stream === undefined) { + return Promise.reject(defaultWriterLockException('close')); + } + + if (WritableStreamCloseQueuedOrInFlight(stream) === true) { + return Promise.reject(new TypeError('cannot close an already-closing stream')); + } + + return WritableStreamDefaultWriterClose(this); + } + }, { + key: 'releaseLock', + value: function releaseLock() { + if (IsWritableStreamDefaultWriter(this) === false) { + throw defaultWriterBrandCheckException('releaseLock'); + } + + var stream = this._ownerWritableStream; + + if (stream === undefined) { + return; + } + + assert(stream._writer !== undefined); + WritableStreamDefaultWriterRelease(this); + } + }, { + key: 'write', + value: function write(chunk) { + if (IsWritableStreamDefaultWriter(this) === false) { + return Promise.reject(defaultWriterBrandCheckException('write')); + } + + if (this._ownerWritableStream === undefined) { + return Promise.reject(defaultWriterLockException('write to')); + } + + return WritableStreamDefaultWriterWrite(this, chunk); + } + }, { + key: 'closed', + get: function get() { + if (IsWritableStreamDefaultWriter(this) === false) { + return Promise.reject(defaultWriterBrandCheckException('closed')); + } + + return this._closedPromise; + } + }, { + key: 'desiredSize', + get: function get() { + if (IsWritableStreamDefaultWriter(this) === false) { + throw defaultWriterBrandCheckException('desiredSize'); + } + + if (this._ownerWritableStream === undefined) { + throw defaultWriterLockException('desiredSize'); + } + + return WritableStreamDefaultWriterGetDesiredSize(this); + } + }, { + key: 'ready', + get: function get() { + if (IsWritableStreamDefaultWriter(this) === false) { + return Promise.reject(defaultWriterBrandCheckException('ready')); + } + + return this._readyPromise; + } + }]); + + return WritableStreamDefaultWriter; + }(); + + function IsWritableStreamDefaultWriter(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) { + return false; + } + + return true; + } + + function WritableStreamDefaultWriterAbort(writer, reason) { + var stream = writer._ownerWritableStream; + assert(stream !== undefined); + return WritableStreamAbort(stream, reason); + } + + function WritableStreamDefaultWriterClose(writer) { + var stream = writer._ownerWritableStream; + assert(stream !== undefined); + var state = stream._state; + + if (state === 'closed' || state === 'errored') { + return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed')); + } + + assert(state === 'writable' || state === 'erroring'); + assert(WritableStreamCloseQueuedOrInFlight(stream) === false); + var promise = new Promise(function (resolve, reject) { + var closeRequest = { + _resolve: resolve, + _reject: reject + }; + stream._closeRequest = closeRequest; + }); + + if (stream._backpressure === true && state === 'writable') { + defaultWriterReadyPromiseResolve(writer); + } + + WritableStreamDefaultControllerClose(stream._writableStreamController); + return promise; + } + + function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) { + var stream = writer._ownerWritableStream; + assert(stream !== undefined); + var state = stream._state; + + if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { + return Promise.resolve(); + } + + if (state === 'errored') { + return Promise.reject(stream._storedError); + } + + assert(state === 'writable' || state === 'erroring'); + return WritableStreamDefaultWriterClose(writer); + } + + function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) { + if (writer._closedPromiseState === 'pending') { + defaultWriterClosedPromiseReject(writer, error); + } else { + defaultWriterClosedPromiseResetToRejected(writer, error); + } + + writer._closedPromise.catch(function () {}); + } + + function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) { + if (writer._readyPromiseState === 'pending') { + defaultWriterReadyPromiseReject(writer, error); + } else { + defaultWriterReadyPromiseResetToRejected(writer, error); + } + + writer._readyPromise.catch(function () {}); + } + + function WritableStreamDefaultWriterGetDesiredSize(writer) { + var stream = writer._ownerWritableStream; + var state = stream._state; + + if (state === 'errored' || state === 'erroring') { + return null; + } + + if (state === 'closed') { + return 0; + } + + return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController); + } + + function WritableStreamDefaultWriterRelease(writer) { + var stream = writer._ownerWritableStream; + assert(stream !== undefined); + assert(stream._writer === writer); + var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\'s closedness'); + WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError); + WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError); + stream._writer = undefined; + writer._ownerWritableStream = undefined; + } + + function WritableStreamDefaultWriterWrite(writer, chunk) { + var stream = writer._ownerWritableStream; + assert(stream !== undefined); + var controller = stream._writableStreamController; + var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk); + + if (stream !== writer._ownerWritableStream) { + return Promise.reject(defaultWriterLockException('write to')); + } + + var state = stream._state; + + if (state === 'errored') { + return Promise.reject(stream._storedError); + } + + if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { + return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to')); + } + + if (state === 'erroring') { + return Promise.reject(stream._storedError); + } + + assert(state === 'writable'); + var promise = WritableStreamAddWriteRequest(stream); + WritableStreamDefaultControllerWrite(controller, chunk, chunkSize); + return promise; + } + + var WritableStreamDefaultController = function () { + function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) { + _classCallCheck(this, WritableStreamDefaultController); + + if (IsWritableStream(stream) === false) { + throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance'); + } + + if (stream._writableStreamController !== undefined) { + throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor'); + } + + this._controlledWritableStream = stream; + this._underlyingSink = underlyingSink; + this._queue = undefined; + this._queueTotalSize = undefined; + ResetQueue(this); + this._started = false; + var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); + this._strategySize = normalizedStrategy.size; + this._strategyHWM = normalizedStrategy.highWaterMark; + var backpressure = WritableStreamDefaultControllerGetBackpressure(this); + WritableStreamUpdateBackpressure(stream, backpressure); + } + + _createClass(WritableStreamDefaultController, [{ + key: 'error', + value: function error(e) { + if (IsWritableStreamDefaultController(this) === false) { + throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController'); + } + + var state = this._controlledWritableStream._state; + + if (state !== 'writable') { + return; + } + + WritableStreamDefaultControllerError(this, e); + } + }, { + key: '__abortSteps', + value: function __abortSteps(reason) { + return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]); + } + }, { + key: '__errorSteps', + value: function __errorSteps() { + ResetQueue(this); + } + }, { + key: '__startSteps', + value: function __startSteps() { + var _this = this; + + var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]); + var stream = this._controlledWritableStream; + Promise.resolve(startResult).then(function () { + assert(stream._state === 'writable' || stream._state === 'erroring'); + _this._started = true; + WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this); + }, function (r) { + assert(stream._state === 'writable' || stream._state === 'erroring'); + _this._started = true; + WritableStreamDealWithRejection(stream, r); + }).catch(rethrowAssertionErrorRejection); + } + }]); + + return WritableStreamDefaultController; + }(); + + function WritableStreamDefaultControllerClose(controller) { + EnqueueValueWithSize(controller, 'close', 0); + WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); + } + + function WritableStreamDefaultControllerGetChunkSize(controller, chunk) { + var strategySize = controller._strategySize; + + if (strategySize === undefined) { + return 1; + } + + try { + return strategySize(chunk); + } catch (chunkSizeE) { + WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); + return 1; + } + } + + function WritableStreamDefaultControllerGetDesiredSize(controller) { + return controller._strategyHWM - controller._queueTotalSize; + } + + function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) { + var writeRecord = { + chunk: chunk + }; + + try { + EnqueueValueWithSize(controller, writeRecord, chunkSize); + } catch (enqueueE) { + WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); + return; + } + + var stream = controller._controlledWritableStream; + + if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') { + var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); + WritableStreamUpdateBackpressure(stream, backpressure); + } + + WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); + } + + function IsWritableStreamDefaultController(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) { + return false; + } + + return true; + } + + function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) { + var stream = controller._controlledWritableStream; + + if (controller._started === false) { + return; + } + + if (stream._inFlightWriteRequest !== undefined) { + return; + } + + var state = stream._state; + + if (state === 'closed' || state === 'errored') { + return; + } + + if (state === 'erroring') { + WritableStreamFinishErroring(stream); + return; + } + + if (controller._queue.length === 0) { + return; + } + + var writeRecord = PeekQueueValue(controller); + + if (writeRecord === 'close') { + WritableStreamDefaultControllerProcessClose(controller); + } else { + WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk); + } + } + + function WritableStreamDefaultControllerErrorIfNeeded(controller, error) { + if (controller._controlledWritableStream._state === 'writable') { + WritableStreamDefaultControllerError(controller, error); + } + } + + function WritableStreamDefaultControllerProcessClose(controller) { + var stream = controller._controlledWritableStream; + WritableStreamMarkCloseRequestInFlight(stream); + DequeueValue(controller); + assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued'); + var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []); + sinkClosePromise.then(function () { + WritableStreamFinishInFlightClose(stream); + }, function (reason) { + WritableStreamFinishInFlightCloseWithError(stream, reason); + }).catch(rethrowAssertionErrorRejection); + } + + function WritableStreamDefaultControllerProcessWrite(controller, chunk) { + var stream = controller._controlledWritableStream; + WritableStreamMarkFirstWriteRequestInFlight(stream); + var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]); + sinkWritePromise.then(function () { + WritableStreamFinishInFlightWrite(stream); + var state = stream._state; + assert(state === 'writable' || state === 'erroring'); + DequeueValue(controller); + + if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') { + var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); + WritableStreamUpdateBackpressure(stream, backpressure); + } + + WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); + }, function (reason) { + WritableStreamFinishInFlightWriteWithError(stream, reason); + }).catch(rethrowAssertionErrorRejection); + } + + function WritableStreamDefaultControllerGetBackpressure(controller) { + var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller); + return desiredSize <= 0; + } + + function WritableStreamDefaultControllerError(controller, error) { + var stream = controller._controlledWritableStream; + assert(stream._state === 'writable'); + WritableStreamStartErroring(stream, error); + } + + function streamBrandCheckException(name) { + return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream'); + } + + function defaultWriterBrandCheckException(name) { + return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter'); + } + + function defaultWriterLockException(name) { + return new TypeError('Cannot ' + name + ' a stream using a released writer'); + } + + function defaultWriterClosedPromiseInitialize(writer) { + writer._closedPromise = new Promise(function (resolve, reject) { + writer._closedPromise_resolve = resolve; + writer._closedPromise_reject = reject; + writer._closedPromiseState = 'pending'; + }); + } + + function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) { + writer._closedPromise = Promise.reject(reason); + writer._closedPromise_resolve = undefined; + writer._closedPromise_reject = undefined; + writer._closedPromiseState = 'rejected'; + } + + function defaultWriterClosedPromiseInitializeAsResolved(writer) { + writer._closedPromise = Promise.resolve(undefined); + writer._closedPromise_resolve = undefined; + writer._closedPromise_reject = undefined; + writer._closedPromiseState = 'resolved'; + } + + function defaultWriterClosedPromiseReject(writer, reason) { + assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); + assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); + assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); + + writer._closedPromise_reject(reason); + + writer._closedPromise_resolve = undefined; + writer._closedPromise_reject = undefined; + writer._closedPromiseState = 'rejected'; + } + + function defaultWriterClosedPromiseResetToRejected(writer, reason) { + assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined'); + assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined'); + assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending'); + writer._closedPromise = Promise.reject(reason); + writer._closedPromiseState = 'rejected'; + } + + function defaultWriterClosedPromiseResolve(writer) { + assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); + assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); + assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); + + writer._closedPromise_resolve(undefined); + + writer._closedPromise_resolve = undefined; + writer._closedPromise_reject = undefined; + writer._closedPromiseState = 'resolved'; + } + + function defaultWriterReadyPromiseInitialize(writer) { + writer._readyPromise = new Promise(function (resolve, reject) { + writer._readyPromise_resolve = resolve; + writer._readyPromise_reject = reject; + }); + writer._readyPromiseState = 'pending'; + } + + function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) { + writer._readyPromise = Promise.reject(reason); + writer._readyPromise_resolve = undefined; + writer._readyPromise_reject = undefined; + writer._readyPromiseState = 'rejected'; + } + + function defaultWriterReadyPromiseInitializeAsResolved(writer) { + writer._readyPromise = Promise.resolve(undefined); + writer._readyPromise_resolve = undefined; + writer._readyPromise_reject = undefined; + writer._readyPromiseState = 'fulfilled'; + } + + function defaultWriterReadyPromiseReject(writer, reason) { + assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); + assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); + + writer._readyPromise_reject(reason); + + writer._readyPromise_resolve = undefined; + writer._readyPromise_reject = undefined; + writer._readyPromiseState = 'rejected'; + } + + function defaultWriterReadyPromiseReset(writer) { + assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); + assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); + writer._readyPromise = new Promise(function (resolve, reject) { + writer._readyPromise_resolve = resolve; + writer._readyPromise_reject = reject; + }); + writer._readyPromiseState = 'pending'; + } + + function defaultWriterReadyPromiseResetToRejected(writer, reason) { + assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); + assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); + writer._readyPromise = Promise.reject(reason); + writer._readyPromiseState = 'rejected'; + } + + function defaultWriterReadyPromiseResolve(writer) { + assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); + assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); + + writer._readyPromise_resolve(undefined); + + writer._readyPromise_resolve = undefined; + writer._readyPromise_reject = undefined; + writer._readyPromiseState = 'fulfilled'; + } +}, function (module, exports, __w_pdfjs_require__) { + "use strict"; + + var _require = __w_pdfjs_require__(0), + IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber; + + var _require2 = __w_pdfjs_require__(1), + assert = _require2.assert; + + exports.DequeueValue = function (container) { + assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); + assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.'); + + var pair = container._queue.shift(); + + container._queueTotalSize -= pair.size; + + if (container._queueTotalSize < 0) { + container._queueTotalSize = 0; + } + + return pair.value; + }; + + exports.EnqueueValueWithSize = function (container, value, size) { + assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].'); + size = Number(size); + + if (!IsFiniteNonNegativeNumber(size)) { + throw new RangeError('Size must be a finite, non-NaN, non-negative number.'); + } + + container._queue.push({ + value: value, + size: size + }); + + container._queueTotalSize += size; + }; + + exports.PeekQueueValue = function (container) { + assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); + assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.'); + var pair = container._queue[0]; + return pair.value; + }; + + exports.ResetQueue = function (container) { + assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].'); + container._queue = []; + container._queueTotalSize = 0; + }; +}, function (module, exports, __w_pdfjs_require__) { + "use strict"; + + var _createClass = function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + var _require = __w_pdfjs_require__(0), + ArrayBufferCopy = _require.ArrayBufferCopy, + CreateIterResultObject = _require.CreateIterResultObject, + IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber, + InvokeOrNoop = _require.InvokeOrNoop, + PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, + TransferArrayBuffer = _require.TransferArrayBuffer, + ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, + ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark; + + var _require2 = __w_pdfjs_require__(0), + createArrayFromList = _require2.createArrayFromList, + createDataProperty = _require2.createDataProperty, + typeIsObject = _require2.typeIsObject; + + var _require3 = __w_pdfjs_require__(1), + assert = _require3.assert, + rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection; + + var _require4 = __w_pdfjs_require__(3), + DequeueValue = _require4.DequeueValue, + EnqueueValueWithSize = _require4.EnqueueValueWithSize, + ResetQueue = _require4.ResetQueue; + + var _require5 = __w_pdfjs_require__(2), + AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter, + IsWritableStream = _require5.IsWritableStream, + IsWritableStreamLocked = _require5.IsWritableStreamLocked, + WritableStreamAbort = _require5.WritableStreamAbort, + WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation, + WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease, + WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite, + WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight; + + var ReadableStream = function () { + function ReadableStream() { + var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + size = _ref.size, + highWaterMark = _ref.highWaterMark; + + _classCallCheck(this, ReadableStream); + + this._state = 'readable'; + this._reader = undefined; + this._storedError = undefined; + this._disturbed = false; + this._readableStreamController = undefined; + var type = underlyingSource.type; + var typeString = String(type); + + if (typeString === 'bytes') { + if (highWaterMark === undefined) { + highWaterMark = 0; + } + + this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark); + } else if (type === undefined) { + if (highWaterMark === undefined) { + highWaterMark = 1; + } + + this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark); + } else { + throw new RangeError('Invalid type is specified'); + } + } + + _createClass(ReadableStream, [{ + key: 'cancel', + value: function cancel(reason) { + if (IsReadableStream(this) === false) { + return Promise.reject(streamBrandCheckException('cancel')); + } + + if (IsReadableStreamLocked(this) === true) { + return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader')); + } + + return ReadableStreamCancel(this, reason); + } + }, { + key: 'getReader', + value: function getReader() { + var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + mode = _ref2.mode; + + if (IsReadableStream(this) === false) { + throw streamBrandCheckException('getReader'); + } + + if (mode === undefined) { + return AcquireReadableStreamDefaultReader(this); + } + + mode = String(mode); + + if (mode === 'byob') { + return AcquireReadableStreamBYOBReader(this); + } + + throw new RangeError('Invalid mode is specified'); + } + }, { + key: 'pipeThrough', + value: function pipeThrough(_ref3, options) { + var writable = _ref3.writable, + readable = _ref3.readable; + var promise = this.pipeTo(writable, options); + ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise); + return readable; + } + }, { + key: 'pipeTo', + value: function pipeTo(dest) { + var _this = this; + + var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + preventClose = _ref4.preventClose, + preventAbort = _ref4.preventAbort, + preventCancel = _ref4.preventCancel; + + if (IsReadableStream(this) === false) { + return Promise.reject(streamBrandCheckException('pipeTo')); + } + + if (IsWritableStream(dest) === false) { + return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\'s first argument must be a WritableStream')); + } + + preventClose = Boolean(preventClose); + preventAbort = Boolean(preventAbort); + preventCancel = Boolean(preventCancel); + + if (IsReadableStreamLocked(this) === true) { + return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream')); + } + + if (IsWritableStreamLocked(dest) === true) { + return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream')); + } + + var reader = AcquireReadableStreamDefaultReader(this); + var writer = AcquireWritableStreamDefaultWriter(dest); + var shuttingDown = false; + var currentWrite = Promise.resolve(); + return new Promise(function (resolve, reject) { + function pipeLoop() { + currentWrite = Promise.resolve(); + + if (shuttingDown === true) { + return Promise.resolve(); + } + + return writer._readyPromise.then(function () { + return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) { + var value = _ref5.value, + done = _ref5.done; + + if (done === true) { + return; + } + + currentWrite = WritableStreamDefaultWriterWrite(writer, value).catch(function () {}); + }); + }).then(pipeLoop); + } + + isOrBecomesErrored(_this, reader._closedPromise, function (storedError) { + if (preventAbort === false) { + shutdownWithAction(function () { + return WritableStreamAbort(dest, storedError); + }, true, storedError); + } else { + shutdown(true, storedError); + } + }); + isOrBecomesErrored(dest, writer._closedPromise, function (storedError) { + if (preventCancel === false) { + shutdownWithAction(function () { + return ReadableStreamCancel(_this, storedError); + }, true, storedError); + } else { + shutdown(true, storedError); + } + }); + isOrBecomesClosed(_this, reader._closedPromise, function () { + if (preventClose === false) { + shutdownWithAction(function () { + return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); + }); + } else { + shutdown(); + } + }); + + if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') { + var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it'); + + if (preventCancel === false) { + shutdownWithAction(function () { + return ReadableStreamCancel(_this, destClosed); + }, true, destClosed); + } else { + shutdown(true, destClosed); + } + } + + pipeLoop().catch(function (err) { + currentWrite = Promise.resolve(); + rethrowAssertionErrorRejection(err); + }); + + function waitForWritesToFinish() { + var oldCurrentWrite = currentWrite; + return currentWrite.then(function () { + return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; + }); + } + + function isOrBecomesErrored(stream, promise, action) { + if (stream._state === 'errored') { + action(stream._storedError); + } else { + promise.catch(action).catch(rethrowAssertionErrorRejection); + } + } + + function isOrBecomesClosed(stream, promise, action) { + if (stream._state === 'closed') { + action(); + } else { + promise.then(action).catch(rethrowAssertionErrorRejection); + } + } + + function shutdownWithAction(action, originalIsError, originalError) { + if (shuttingDown === true) { + return; + } + + shuttingDown = true; + + if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { + waitForWritesToFinish().then(doTheRest); + } else { + doTheRest(); + } + + function doTheRest() { + action().then(function () { + return finalize(originalIsError, originalError); + }, function (newError) { + return finalize(true, newError); + }).catch(rethrowAssertionErrorRejection); + } + } + + function shutdown(isError, error) { + if (shuttingDown === true) { + return; + } + + shuttingDown = true; + + if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { + waitForWritesToFinish().then(function () { + return finalize(isError, error); + }).catch(rethrowAssertionErrorRejection); + } else { + finalize(isError, error); + } + } + + function finalize(isError, error) { + WritableStreamDefaultWriterRelease(writer); + ReadableStreamReaderGenericRelease(reader); + + if (isError) { + reject(error); + } else { + resolve(undefined); + } + } + }); + } + }, { + key: 'tee', + value: function tee() { + if (IsReadableStream(this) === false) { + throw streamBrandCheckException('tee'); + } + + var branches = ReadableStreamTee(this, false); + return createArrayFromList(branches); + } + }, { + key: 'locked', + get: function get() { + if (IsReadableStream(this) === false) { + throw streamBrandCheckException('locked'); + } + + return IsReadableStreamLocked(this); + } + }]); + + return ReadableStream; + }(); + + module.exports = { + ReadableStream: ReadableStream, + IsReadableStreamDisturbed: IsReadableStreamDisturbed, + ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose, + ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue, + ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError, + ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize + }; + + function AcquireReadableStreamBYOBReader(stream) { + return new ReadableStreamBYOBReader(stream); + } + + function AcquireReadableStreamDefaultReader(stream) { + return new ReadableStreamDefaultReader(stream); + } + + function IsReadableStream(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) { + return false; + } + + return true; + } + + function IsReadableStreamDisturbed(stream) { + assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams'); + return stream._disturbed; + } + + function IsReadableStreamLocked(stream) { + assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams'); + + if (stream._reader === undefined) { + return false; + } + + return true; + } + + function ReadableStreamTee(stream, cloneForBranch2) { + assert(IsReadableStream(stream) === true); + assert(typeof cloneForBranch2 === 'boolean'); + var reader = AcquireReadableStreamDefaultReader(stream); + var teeState = { + closedOrErrored: false, + canceled1: false, + canceled2: false, + reason1: undefined, + reason2: undefined + }; + teeState.promise = new Promise(function (resolve) { + teeState._resolve = resolve; + }); + var pull = create_ReadableStreamTeePullFunction(); + pull._reader = reader; + pull._teeState = teeState; + pull._cloneForBranch2 = cloneForBranch2; + var cancel1 = create_ReadableStreamTeeBranch1CancelFunction(); + cancel1._stream = stream; + cancel1._teeState = teeState; + var cancel2 = create_ReadableStreamTeeBranch2CancelFunction(); + cancel2._stream = stream; + cancel2._teeState = teeState; + var underlyingSource1 = Object.create(Object.prototype); + createDataProperty(underlyingSource1, 'pull', pull); + createDataProperty(underlyingSource1, 'cancel', cancel1); + var branch1Stream = new ReadableStream(underlyingSource1); + var underlyingSource2 = Object.create(Object.prototype); + createDataProperty(underlyingSource2, 'pull', pull); + createDataProperty(underlyingSource2, 'cancel', cancel2); + var branch2Stream = new ReadableStream(underlyingSource2); + pull._branch1 = branch1Stream._readableStreamController; + pull._branch2 = branch2Stream._readableStreamController; + + reader._closedPromise.catch(function (r) { + if (teeState.closedOrErrored === true) { + return; + } + + ReadableStreamDefaultControllerError(pull._branch1, r); + ReadableStreamDefaultControllerError(pull._branch2, r); + teeState.closedOrErrored = true; + }); + + return [branch1Stream, branch2Stream]; + } + + function create_ReadableStreamTeePullFunction() { + function f() { + var reader = f._reader, + branch1 = f._branch1, + branch2 = f._branch2, + teeState = f._teeState; + return ReadableStreamDefaultReaderRead(reader).then(function (result) { + assert(typeIsObject(result)); + var value = result.value; + var done = result.done; + assert(typeof done === 'boolean'); + + if (done === true && teeState.closedOrErrored === false) { + if (teeState.canceled1 === false) { + ReadableStreamDefaultControllerClose(branch1); + } + + if (teeState.canceled2 === false) { + ReadableStreamDefaultControllerClose(branch2); + } + + teeState.closedOrErrored = true; + } + + if (teeState.closedOrErrored === true) { + return; + } + + var value1 = value; + var value2 = value; + + if (teeState.canceled1 === false) { + ReadableStreamDefaultControllerEnqueue(branch1, value1); + } + + if (teeState.canceled2 === false) { + ReadableStreamDefaultControllerEnqueue(branch2, value2); + } + }); + } + + return f; + } + + function create_ReadableStreamTeeBranch1CancelFunction() { + function f(reason) { + var stream = f._stream, + teeState = f._teeState; + teeState.canceled1 = true; + teeState.reason1 = reason; + + if (teeState.canceled2 === true) { + var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); + var cancelResult = ReadableStreamCancel(stream, compositeReason); + + teeState._resolve(cancelResult); + } + + return teeState.promise; + } + + return f; + } + + function create_ReadableStreamTeeBranch2CancelFunction() { + function f(reason) { + var stream = f._stream, + teeState = f._teeState; + teeState.canceled2 = true; + teeState.reason2 = reason; + + if (teeState.canceled1 === true) { + var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); + var cancelResult = ReadableStreamCancel(stream, compositeReason); + + teeState._resolve(cancelResult); + } + + return teeState.promise; + } + + return f; + } + + function ReadableStreamAddReadIntoRequest(stream) { + assert(IsReadableStreamBYOBReader(stream._reader) === true); + assert(stream._state === 'readable' || stream._state === 'closed'); + var promise = new Promise(function (resolve, reject) { + var readIntoRequest = { + _resolve: resolve, + _reject: reject + }; + + stream._reader._readIntoRequests.push(readIntoRequest); + }); + return promise; + } + + function ReadableStreamAddReadRequest(stream) { + assert(IsReadableStreamDefaultReader(stream._reader) === true); + assert(stream._state === 'readable'); + var promise = new Promise(function (resolve, reject) { + var readRequest = { + _resolve: resolve, + _reject: reject + }; + + stream._reader._readRequests.push(readRequest); + }); + return promise; + } + + function ReadableStreamCancel(stream, reason) { + stream._disturbed = true; + + if (stream._state === 'closed') { + return Promise.resolve(undefined); + } + + if (stream._state === 'errored') { + return Promise.reject(stream._storedError); + } + + ReadableStreamClose(stream); + + var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason); + + return sourceCancelPromise.then(function () { + return undefined; + }); + } + + function ReadableStreamClose(stream) { + assert(stream._state === 'readable'); + stream._state = 'closed'; + var reader = stream._reader; + + if (reader === undefined) { + return undefined; + } + + if (IsReadableStreamDefaultReader(reader) === true) { + for (var i = 0; i < reader._readRequests.length; i++) { + var _resolve = reader._readRequests[i]._resolve; + + _resolve(CreateIterResultObject(undefined, true)); + } + + reader._readRequests = []; + } + + defaultReaderClosedPromiseResolve(reader); + return undefined; + } + + function ReadableStreamError(stream, e) { + assert(IsReadableStream(stream) === true, 'stream must be ReadableStream'); + assert(stream._state === 'readable', 'state must be readable'); + stream._state = 'errored'; + stream._storedError = e; + var reader = stream._reader; + + if (reader === undefined) { + return undefined; + } + + if (IsReadableStreamDefaultReader(reader) === true) { + for (var i = 0; i < reader._readRequests.length; i++) { + var readRequest = reader._readRequests[i]; + + readRequest._reject(e); + } + + reader._readRequests = []; + } else { + assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader'); + + for (var _i = 0; _i < reader._readIntoRequests.length; _i++) { + var readIntoRequest = reader._readIntoRequests[_i]; + + readIntoRequest._reject(e); + } + + reader._readIntoRequests = []; + } + + defaultReaderClosedPromiseReject(reader, e); + + reader._closedPromise.catch(function () {}); + } + + function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) { + var reader = stream._reader; + assert(reader._readIntoRequests.length > 0); + + var readIntoRequest = reader._readIntoRequests.shift(); + + readIntoRequest._resolve(CreateIterResultObject(chunk, done)); + } + + function ReadableStreamFulfillReadRequest(stream, chunk, done) { + var reader = stream._reader; + assert(reader._readRequests.length > 0); + + var readRequest = reader._readRequests.shift(); + + readRequest._resolve(CreateIterResultObject(chunk, done)); + } + + function ReadableStreamGetNumReadIntoRequests(stream) { + return stream._reader._readIntoRequests.length; + } + + function ReadableStreamGetNumReadRequests(stream) { + return stream._reader._readRequests.length; + } + + function ReadableStreamHasBYOBReader(stream) { + var reader = stream._reader; + + if (reader === undefined) { + return false; + } + + if (IsReadableStreamBYOBReader(reader) === false) { + return false; + } + + return true; + } + + function ReadableStreamHasDefaultReader(stream) { + var reader = stream._reader; + + if (reader === undefined) { + return false; + } + + if (IsReadableStreamDefaultReader(reader) === false) { + return false; + } + + return true; + } + + var ReadableStreamDefaultReader = function () { + function ReadableStreamDefaultReader(stream) { + _classCallCheck(this, ReadableStreamDefaultReader); + + if (IsReadableStream(stream) === false) { + throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance'); + } + + if (IsReadableStreamLocked(stream) === true) { + throw new TypeError('This stream has already been locked for exclusive reading by another reader'); + } + + ReadableStreamReaderGenericInitialize(this, stream); + this._readRequests = []; + } + + _createClass(ReadableStreamDefaultReader, [{ + key: 'cancel', + value: function cancel(reason) { + if (IsReadableStreamDefaultReader(this) === false) { + return Promise.reject(defaultReaderBrandCheckException('cancel')); + } + + if (this._ownerReadableStream === undefined) { + return Promise.reject(readerLockException('cancel')); + } + + return ReadableStreamReaderGenericCancel(this, reason); + } + }, { + key: 'read', + value: function read() { + if (IsReadableStreamDefaultReader(this) === false) { + return Promise.reject(defaultReaderBrandCheckException('read')); + } + + if (this._ownerReadableStream === undefined) { + return Promise.reject(readerLockException('read from')); + } + + return ReadableStreamDefaultReaderRead(this); + } + }, { + key: 'releaseLock', + value: function releaseLock() { + if (IsReadableStreamDefaultReader(this) === false) { + throw defaultReaderBrandCheckException('releaseLock'); + } + + if (this._ownerReadableStream === undefined) { + return; + } + + if (this._readRequests.length > 0) { + throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); + } + + ReadableStreamReaderGenericRelease(this); + } + }, { + key: 'closed', + get: function get() { + if (IsReadableStreamDefaultReader(this) === false) { + return Promise.reject(defaultReaderBrandCheckException('closed')); + } + + return this._closedPromise; + } + }]); + + return ReadableStreamDefaultReader; + }(); + + var ReadableStreamBYOBReader = function () { + function ReadableStreamBYOBReader(stream) { + _classCallCheck(this, ReadableStreamBYOBReader); + + if (!IsReadableStream(stream)) { + throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source'); + } + + if (IsReadableByteStreamController(stream._readableStreamController) === false) { + throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source'); + } + + if (IsReadableStreamLocked(stream)) { + throw new TypeError('This stream has already been locked for exclusive reading by another reader'); + } + + ReadableStreamReaderGenericInitialize(this, stream); + this._readIntoRequests = []; + } + + _createClass(ReadableStreamBYOBReader, [{ + key: 'cancel', + value: function cancel(reason) { + if (!IsReadableStreamBYOBReader(this)) { + return Promise.reject(byobReaderBrandCheckException('cancel')); + } + + if (this._ownerReadableStream === undefined) { + return Promise.reject(readerLockException('cancel')); + } + + return ReadableStreamReaderGenericCancel(this, reason); + } + }, { + key: 'read', + value: function read(view) { + if (!IsReadableStreamBYOBReader(this)) { + return Promise.reject(byobReaderBrandCheckException('read')); + } + + if (this._ownerReadableStream === undefined) { + return Promise.reject(readerLockException('read from')); + } + + if (!ArrayBuffer.isView(view)) { + return Promise.reject(new TypeError('view must be an array buffer view')); + } + + if (view.byteLength === 0) { + return Promise.reject(new TypeError('view must have non-zero byteLength')); + } + + return ReadableStreamBYOBReaderRead(this, view); + } + }, { + key: 'releaseLock', + value: function releaseLock() { + if (!IsReadableStreamBYOBReader(this)) { + throw byobReaderBrandCheckException('releaseLock'); + } + + if (this._ownerReadableStream === undefined) { + return; + } + + if (this._readIntoRequests.length > 0) { + throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); + } + + ReadableStreamReaderGenericRelease(this); + } + }, { + key: 'closed', + get: function get() { + if (!IsReadableStreamBYOBReader(this)) { + return Promise.reject(byobReaderBrandCheckException('closed')); + } + + return this._closedPromise; + } + }]); + + return ReadableStreamBYOBReader; + }(); + + function IsReadableStreamBYOBReader(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) { + return false; + } + + return true; + } + + function IsReadableStreamDefaultReader(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) { + return false; + } + + return true; + } + + function ReadableStreamReaderGenericInitialize(reader, stream) { + reader._ownerReadableStream = stream; + stream._reader = reader; + + if (stream._state === 'readable') { + defaultReaderClosedPromiseInitialize(reader); + } else if (stream._state === 'closed') { + defaultReaderClosedPromiseInitializeAsResolved(reader); + } else { + assert(stream._state === 'errored', 'state must be errored'); + defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError); + + reader._closedPromise.catch(function () {}); + } + } + + function ReadableStreamReaderGenericCancel(reader, reason) { + var stream = reader._ownerReadableStream; + assert(stream !== undefined); + return ReadableStreamCancel(stream, reason); + } + + function ReadableStreamReaderGenericRelease(reader) { + assert(reader._ownerReadableStream !== undefined); + assert(reader._ownerReadableStream._reader === reader); + + if (reader._ownerReadableStream._state === 'readable') { + defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); + } else { + defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); + } + + reader._closedPromise.catch(function () {}); + + reader._ownerReadableStream._reader = undefined; + reader._ownerReadableStream = undefined; + } + + function ReadableStreamBYOBReaderRead(reader, view) { + var stream = reader._ownerReadableStream; + assert(stream !== undefined); + stream._disturbed = true; + + if (stream._state === 'errored') { + return Promise.reject(stream._storedError); + } + + return ReadableByteStreamControllerPullInto(stream._readableStreamController, view); + } + + function ReadableStreamDefaultReaderRead(reader) { + var stream = reader._ownerReadableStream; + assert(stream !== undefined); + stream._disturbed = true; + + if (stream._state === 'closed') { + return Promise.resolve(CreateIterResultObject(undefined, true)); + } + + if (stream._state === 'errored') { + return Promise.reject(stream._storedError); + } + + assert(stream._state === 'readable'); + return stream._readableStreamController.__pullSteps(); + } + + var ReadableStreamDefaultController = function () { + function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) { + _classCallCheck(this, ReadableStreamDefaultController); + + if (IsReadableStream(stream) === false) { + throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance'); + } + + if (stream._readableStreamController !== undefined) { + throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor'); + } + + this._controlledReadableStream = stream; + this._underlyingSource = underlyingSource; + this._queue = undefined; + this._queueTotalSize = undefined; + ResetQueue(this); + this._started = false; + this._closeRequested = false; + this._pullAgain = false; + this._pulling = false; + var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); + this._strategySize = normalizedStrategy.size; + this._strategyHWM = normalizedStrategy.highWaterMark; + var controller = this; + var startResult = InvokeOrNoop(underlyingSource, 'start', [this]); + Promise.resolve(startResult).then(function () { + controller._started = true; + assert(controller._pulling === false); + assert(controller._pullAgain === false); + ReadableStreamDefaultControllerCallPullIfNeeded(controller); + }, function (r) { + ReadableStreamDefaultControllerErrorIfNeeded(controller, r); + }).catch(rethrowAssertionErrorRejection); + } + + _createClass(ReadableStreamDefaultController, [{ + key: 'close', + value: function close() { + if (IsReadableStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('close'); + } + + if (this._closeRequested === true) { + throw new TypeError('The stream has already been closed; do not close it again!'); + } + + var state = this._controlledReadableStream._state; + + if (state !== 'readable') { + throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); + } + + ReadableStreamDefaultControllerClose(this); + } + }, { + key: 'enqueue', + value: function enqueue(chunk) { + if (IsReadableStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('enqueue'); + } + + if (this._closeRequested === true) { + throw new TypeError('stream is closed or draining'); + } + + var state = this._controlledReadableStream._state; + + if (state !== 'readable') { + throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); + } + + return ReadableStreamDefaultControllerEnqueue(this, chunk); + } + }, { + key: 'error', + value: function error(e) { + if (IsReadableStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('error'); + } + + var stream = this._controlledReadableStream; + + if (stream._state !== 'readable') { + throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); + } + + ReadableStreamDefaultControllerError(this, e); + } + }, { + key: '__cancelSteps', + value: function __cancelSteps(reason) { + ResetQueue(this); + return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]); + } + }, { + key: '__pullSteps', + value: function __pullSteps() { + var stream = this._controlledReadableStream; + + if (this._queue.length > 0) { + var chunk = DequeueValue(this); + + if (this._closeRequested === true && this._queue.length === 0) { + ReadableStreamClose(stream); + } else { + ReadableStreamDefaultControllerCallPullIfNeeded(this); + } + + return Promise.resolve(CreateIterResultObject(chunk, false)); + } + + var pendingPromise = ReadableStreamAddReadRequest(stream); + ReadableStreamDefaultControllerCallPullIfNeeded(this); + return pendingPromise; + } + }, { + key: 'desiredSize', + get: function get() { + if (IsReadableStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('desiredSize'); + } + + return ReadableStreamDefaultControllerGetDesiredSize(this); + } + }]); + + return ReadableStreamDefaultController; + }(); + + function IsReadableStreamDefaultController(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) { + return false; + } + + return true; + } + + function ReadableStreamDefaultControllerCallPullIfNeeded(controller) { + var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller); + + if (shouldPull === false) { + return undefined; + } + + if (controller._pulling === true) { + controller._pullAgain = true; + return undefined; + } + + assert(controller._pullAgain === false); + controller._pulling = true; + var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]); + pullPromise.then(function () { + controller._pulling = false; + + if (controller._pullAgain === true) { + controller._pullAgain = false; + return ReadableStreamDefaultControllerCallPullIfNeeded(controller); + } + + return undefined; + }, function (e) { + ReadableStreamDefaultControllerErrorIfNeeded(controller, e); + }).catch(rethrowAssertionErrorRejection); + return undefined; + } + + function ReadableStreamDefaultControllerShouldCallPull(controller) { + var stream = controller._controlledReadableStream; + + if (stream._state === 'closed' || stream._state === 'errored') { + return false; + } + + if (controller._closeRequested === true) { + return false; + } + + if (controller._started === false) { + return false; + } + + if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { + return true; + } + + var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); + + if (desiredSize > 0) { + return true; + } + + return false; + } + + function ReadableStreamDefaultControllerClose(controller) { + var stream = controller._controlledReadableStream; + assert(controller._closeRequested === false); + assert(stream._state === 'readable'); + controller._closeRequested = true; + + if (controller._queue.length === 0) { + ReadableStreamClose(stream); + } + } + + function ReadableStreamDefaultControllerEnqueue(controller, chunk) { + var stream = controller._controlledReadableStream; + assert(controller._closeRequested === false); + assert(stream._state === 'readable'); + + if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { + ReadableStreamFulfillReadRequest(stream, chunk, false); + } else { + var chunkSize = 1; + + if (controller._strategySize !== undefined) { + var strategySize = controller._strategySize; + + try { + chunkSize = strategySize(chunk); + } catch (chunkSizeE) { + ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); + throw chunkSizeE; + } + } + + try { + EnqueueValueWithSize(controller, chunk, chunkSize); + } catch (enqueueE) { + ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); + throw enqueueE; + } + } + + ReadableStreamDefaultControllerCallPullIfNeeded(controller); + return undefined; + } + + function ReadableStreamDefaultControllerError(controller, e) { + var stream = controller._controlledReadableStream; + assert(stream._state === 'readable'); + ResetQueue(controller); + ReadableStreamError(stream, e); + } + + function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) { + if (controller._controlledReadableStream._state === 'readable') { + ReadableStreamDefaultControllerError(controller, e); + } + } + + function ReadableStreamDefaultControllerGetDesiredSize(controller) { + var stream = controller._controlledReadableStream; + var state = stream._state; + + if (state === 'errored') { + return null; + } + + if (state === 'closed') { + return 0; + } + + return controller._strategyHWM - controller._queueTotalSize; + } + + var ReadableStreamBYOBRequest = function () { + function ReadableStreamBYOBRequest(controller, view) { + _classCallCheck(this, ReadableStreamBYOBRequest); + + this._associatedReadableByteStreamController = controller; + this._view = view; + } + + _createClass(ReadableStreamBYOBRequest, [{ + key: 'respond', + value: function respond(bytesWritten) { + if (IsReadableStreamBYOBRequest(this) === false) { + throw byobRequestBrandCheckException('respond'); + } + + if (this._associatedReadableByteStreamController === undefined) { + throw new TypeError('This BYOB request has been invalidated'); + } + + ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten); + } + }, { + key: 'respondWithNewView', + value: function respondWithNewView(view) { + if (IsReadableStreamBYOBRequest(this) === false) { + throw byobRequestBrandCheckException('respond'); + } + + if (this._associatedReadableByteStreamController === undefined) { + throw new TypeError('This BYOB request has been invalidated'); + } + + if (!ArrayBuffer.isView(view)) { + throw new TypeError('You can only respond with array buffer views'); + } + + ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view); + } + }, { + key: 'view', + get: function get() { + return this._view; + } + }]); + + return ReadableStreamBYOBRequest; + }(); + + var ReadableByteStreamController = function () { + function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) { + _classCallCheck(this, ReadableByteStreamController); + + if (IsReadableStream(stream) === false) { + throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source'); + } + + if (stream._readableStreamController !== undefined) { + throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source'); + } + + this._controlledReadableStream = stream; + this._underlyingByteSource = underlyingByteSource; + this._pullAgain = false; + this._pulling = false; + ReadableByteStreamControllerClearPendingPullIntos(this); + this._queue = this._queueTotalSize = undefined; + ResetQueue(this); + this._closeRequested = false; + this._started = false; + this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark); + var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize; + + if (autoAllocateChunkSize !== undefined) { + if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) { + throw new RangeError('autoAllocateChunkSize must be a positive integer'); + } + } + + this._autoAllocateChunkSize = autoAllocateChunkSize; + this._pendingPullIntos = []; + var controller = this; + var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]); + Promise.resolve(startResult).then(function () { + controller._started = true; + assert(controller._pulling === false); + assert(controller._pullAgain === false); + ReadableByteStreamControllerCallPullIfNeeded(controller); + }, function (r) { + if (stream._state === 'readable') { + ReadableByteStreamControllerError(controller, r); + } + }).catch(rethrowAssertionErrorRejection); + } + + _createClass(ReadableByteStreamController, [{ + key: 'close', + value: function close() { + if (IsReadableByteStreamController(this) === false) { + throw byteStreamControllerBrandCheckException('close'); + } + + if (this._closeRequested === true) { + throw new TypeError('The stream has already been closed; do not close it again!'); + } + + var state = this._controlledReadableStream._state; + + if (state !== 'readable') { + throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); + } + + ReadableByteStreamControllerClose(this); + } + }, { + key: 'enqueue', + value: function enqueue(chunk) { + if (IsReadableByteStreamController(this) === false) { + throw byteStreamControllerBrandCheckException('enqueue'); + } + + if (this._closeRequested === true) { + throw new TypeError('stream is closed or draining'); + } + + var state = this._controlledReadableStream._state; + + if (state !== 'readable') { + throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); + } + + if (!ArrayBuffer.isView(chunk)) { + throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController'); + } + + ReadableByteStreamControllerEnqueue(this, chunk); + } + }, { + key: 'error', + value: function error(e) { + if (IsReadableByteStreamController(this) === false) { + throw byteStreamControllerBrandCheckException('error'); + } + + var stream = this._controlledReadableStream; + + if (stream._state !== 'readable') { + throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); + } + + ReadableByteStreamControllerError(this, e); + } + }, { + key: '__cancelSteps', + value: function __cancelSteps(reason) { + if (this._pendingPullIntos.length > 0) { + var firstDescriptor = this._pendingPullIntos[0]; + firstDescriptor.bytesFilled = 0; + } + + ResetQueue(this); + return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]); + } + }, { + key: '__pullSteps', + value: function __pullSteps() { + var stream = this._controlledReadableStream; + assert(ReadableStreamHasDefaultReader(stream) === true); + + if (this._queueTotalSize > 0) { + assert(ReadableStreamGetNumReadRequests(stream) === 0); + + var entry = this._queue.shift(); + + this._queueTotalSize -= entry.byteLength; + ReadableByteStreamControllerHandleQueueDrain(this); + var view = void 0; + + try { + view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength); + } catch (viewE) { + return Promise.reject(viewE); + } + + return Promise.resolve(CreateIterResultObject(view, false)); + } + + var autoAllocateChunkSize = this._autoAllocateChunkSize; + + if (autoAllocateChunkSize !== undefined) { + var buffer = void 0; + + try { + buffer = new ArrayBuffer(autoAllocateChunkSize); + } catch (bufferE) { + return Promise.reject(bufferE); + } + + var pullIntoDescriptor = { + buffer: buffer, + byteOffset: 0, + byteLength: autoAllocateChunkSize, + bytesFilled: 0, + elementSize: 1, + ctor: Uint8Array, + readerType: 'default' + }; + + this._pendingPullIntos.push(pullIntoDescriptor); + } + + var promise = ReadableStreamAddReadRequest(stream); + ReadableByteStreamControllerCallPullIfNeeded(this); + return promise; + } + }, { + key: 'byobRequest', + get: function get() { + if (IsReadableByteStreamController(this) === false) { + throw byteStreamControllerBrandCheckException('byobRequest'); + } + + if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) { + var firstDescriptor = this._pendingPullIntos[0]; + var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled); + this._byobRequest = new ReadableStreamBYOBRequest(this, view); + } + + return this._byobRequest; + } + }, { + key: 'desiredSize', + get: function get() { + if (IsReadableByteStreamController(this) === false) { + throw byteStreamControllerBrandCheckException('desiredSize'); + } + + return ReadableByteStreamControllerGetDesiredSize(this); + } + }]); + + return ReadableByteStreamController; + }(); + + function IsReadableByteStreamController(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) { + return false; + } + + return true; + } + + function IsReadableStreamBYOBRequest(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) { + return false; + } + + return true; + } + + function ReadableByteStreamControllerCallPullIfNeeded(controller) { + var shouldPull = ReadableByteStreamControllerShouldCallPull(controller); + + if (shouldPull === false) { + return undefined; + } + + if (controller._pulling === true) { + controller._pullAgain = true; + return undefined; + } + + assert(controller._pullAgain === false); + controller._pulling = true; + var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]); + pullPromise.then(function () { + controller._pulling = false; + + if (controller._pullAgain === true) { + controller._pullAgain = false; + ReadableByteStreamControllerCallPullIfNeeded(controller); + } + }, function (e) { + if (controller._controlledReadableStream._state === 'readable') { + ReadableByteStreamControllerError(controller, e); + } + }).catch(rethrowAssertionErrorRejection); + return undefined; + } + + function ReadableByteStreamControllerClearPendingPullIntos(controller) { + ReadableByteStreamControllerInvalidateBYOBRequest(controller); + controller._pendingPullIntos = []; + } + + function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) { + assert(stream._state !== 'errored', 'state must not be errored'); + var done = false; + + if (stream._state === 'closed') { + assert(pullIntoDescriptor.bytesFilled === 0); + done = true; + } + + var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); + + if (pullIntoDescriptor.readerType === 'default') { + ReadableStreamFulfillReadRequest(stream, filledView, done); + } else { + assert(pullIntoDescriptor.readerType === 'byob'); + ReadableStreamFulfillReadIntoRequest(stream, filledView, done); + } + } + + function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) { + var bytesFilled = pullIntoDescriptor.bytesFilled; + var elementSize = pullIntoDescriptor.elementSize; + assert(bytesFilled <= pullIntoDescriptor.byteLength); + assert(bytesFilled % elementSize === 0); + return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize); + } + + function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) { + controller._queue.push({ + buffer: buffer, + byteOffset: byteOffset, + byteLength: byteLength + }); + + controller._queueTotalSize += byteLength; + } + + function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) { + var elementSize = pullIntoDescriptor.elementSize; + var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize; + var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled); + var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy; + var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize; + var totalBytesToCopyRemaining = maxBytesToCopy; + var ready = false; + + if (maxAlignedBytes > currentAlignedBytes) { + totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled; + ready = true; + } + + var queue = controller._queue; + + while (totalBytesToCopyRemaining > 0) { + var headOfQueue = queue[0]; + var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength); + var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; + ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy); + + if (headOfQueue.byteLength === bytesToCopy) { + queue.shift(); + } else { + headOfQueue.byteOffset += bytesToCopy; + headOfQueue.byteLength -= bytesToCopy; + } + + controller._queueTotalSize -= bytesToCopy; + ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor); + totalBytesToCopyRemaining -= bytesToCopy; + } + + if (ready === false) { + assert(controller._queueTotalSize === 0, 'queue must be empty'); + assert(pullIntoDescriptor.bytesFilled > 0); + assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize); + } + + return ready; + } + + function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) { + assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor); + ReadableByteStreamControllerInvalidateBYOBRequest(controller); + pullIntoDescriptor.bytesFilled += size; + } + + function ReadableByteStreamControllerHandleQueueDrain(controller) { + assert(controller._controlledReadableStream._state === 'readable'); + + if (controller._queueTotalSize === 0 && controller._closeRequested === true) { + ReadableStreamClose(controller._controlledReadableStream); + } else { + ReadableByteStreamControllerCallPullIfNeeded(controller); + } + } + + function ReadableByteStreamControllerInvalidateBYOBRequest(controller) { + if (controller._byobRequest === undefined) { + return; + } + + controller._byobRequest._associatedReadableByteStreamController = undefined; + controller._byobRequest._view = undefined; + controller._byobRequest = undefined; + } + + function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) { + assert(controller._closeRequested === false); + + while (controller._pendingPullIntos.length > 0) { + if (controller._queueTotalSize === 0) { + return; + } + + var pullIntoDescriptor = controller._pendingPullIntos[0]; + + if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { + ReadableByteStreamControllerShiftPendingPullInto(controller); + ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); + } + } + } + + function ReadableByteStreamControllerPullInto(controller, view) { + var stream = controller._controlledReadableStream; + var elementSize = 1; + + if (view.constructor !== DataView) { + elementSize = view.constructor.BYTES_PER_ELEMENT; + } + + var ctor = view.constructor; + var pullIntoDescriptor = { + buffer: view.buffer, + byteOffset: view.byteOffset, + byteLength: view.byteLength, + bytesFilled: 0, + elementSize: elementSize, + ctor: ctor, + readerType: 'byob' + }; + + if (controller._pendingPullIntos.length > 0) { + pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); + + controller._pendingPullIntos.push(pullIntoDescriptor); + + return ReadableStreamAddReadIntoRequest(stream); + } + + if (stream._state === 'closed') { + var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0); + return Promise.resolve(CreateIterResultObject(emptyView, true)); + } + + if (controller._queueTotalSize > 0) { + if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { + var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); + ReadableByteStreamControllerHandleQueueDrain(controller); + return Promise.resolve(CreateIterResultObject(filledView, false)); + } + + if (controller._closeRequested === true) { + var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); + ReadableByteStreamControllerError(controller, e); + return Promise.reject(e); + } + } + + pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); + + controller._pendingPullIntos.push(pullIntoDescriptor); + + var promise = ReadableStreamAddReadIntoRequest(stream); + ReadableByteStreamControllerCallPullIfNeeded(controller); + return promise; + } + + function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) { + firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer); + assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0'); + var stream = controller._controlledReadableStream; + + if (ReadableStreamHasBYOBReader(stream) === true) { + while (ReadableStreamGetNumReadIntoRequests(stream) > 0) { + var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller); + ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor); + } + } + } + + function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) { + if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) { + throw new RangeError('bytesWritten out of range'); + } + + ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor); + + if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) { + return; + } + + ReadableByteStreamControllerShiftPendingPullInto(controller); + var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize; + + if (remainderSize > 0) { + var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; + var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end); + ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength); + } + + pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); + pullIntoDescriptor.bytesFilled -= remainderSize; + ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); + ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); + } + + function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) { + var firstDescriptor = controller._pendingPullIntos[0]; + var stream = controller._controlledReadableStream; + + if (stream._state === 'closed') { + if (bytesWritten !== 0) { + throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream'); + } + + ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor); + } else { + assert(stream._state === 'readable'); + ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor); + } + } + + function ReadableByteStreamControllerShiftPendingPullInto(controller) { + var descriptor = controller._pendingPullIntos.shift(); + + ReadableByteStreamControllerInvalidateBYOBRequest(controller); + return descriptor; + } + + function ReadableByteStreamControllerShouldCallPull(controller) { + var stream = controller._controlledReadableStream; + + if (stream._state !== 'readable') { + return false; + } + + if (controller._closeRequested === true) { + return false; + } + + if (controller._started === false) { + return false; + } + + if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { + return true; + } + + if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) { + return true; + } + + if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) { + return true; + } + + return false; + } + + function ReadableByteStreamControllerClose(controller) { + var stream = controller._controlledReadableStream; + assert(controller._closeRequested === false); + assert(stream._state === 'readable'); + + if (controller._queueTotalSize > 0) { + controller._closeRequested = true; + return; + } + + if (controller._pendingPullIntos.length > 0) { + var firstPendingPullInto = controller._pendingPullIntos[0]; + + if (firstPendingPullInto.bytesFilled > 0) { + var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); + ReadableByteStreamControllerError(controller, e); + throw e; + } + } + + ReadableStreamClose(stream); + } + + function ReadableByteStreamControllerEnqueue(controller, chunk) { + var stream = controller._controlledReadableStream; + assert(controller._closeRequested === false); + assert(stream._state === 'readable'); + var buffer = chunk.buffer; + var byteOffset = chunk.byteOffset; + var byteLength = chunk.byteLength; + var transferredBuffer = TransferArrayBuffer(buffer); + + if (ReadableStreamHasDefaultReader(stream) === true) { + if (ReadableStreamGetNumReadRequests(stream) === 0) { + ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); + } else { + assert(controller._queue.length === 0); + var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength); + ReadableStreamFulfillReadRequest(stream, transferredView, false); + } + } else if (ReadableStreamHasBYOBReader(stream) === true) { + ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); + ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); + } else { + assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked'); + ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); + } + } + + function ReadableByteStreamControllerError(controller, e) { + var stream = controller._controlledReadableStream; + assert(stream._state === 'readable'); + ReadableByteStreamControllerClearPendingPullIntos(controller); + ResetQueue(controller); + ReadableStreamError(stream, e); + } + + function ReadableByteStreamControllerGetDesiredSize(controller) { + var stream = controller._controlledReadableStream; + var state = stream._state; + + if (state === 'errored') { + return null; + } + + if (state === 'closed') { + return 0; + } + + return controller._strategyHWM - controller._queueTotalSize; + } + + function ReadableByteStreamControllerRespond(controller, bytesWritten) { + bytesWritten = Number(bytesWritten); + + if (IsFiniteNonNegativeNumber(bytesWritten) === false) { + throw new RangeError('bytesWritten must be a finite'); + } + + assert(controller._pendingPullIntos.length > 0); + ReadableByteStreamControllerRespondInternal(controller, bytesWritten); + } + + function ReadableByteStreamControllerRespondWithNewView(controller, view) { + assert(controller._pendingPullIntos.length > 0); + var firstDescriptor = controller._pendingPullIntos[0]; + + if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) { + throw new RangeError('The region specified by view does not match byobRequest'); + } + + if (firstDescriptor.byteLength !== view.byteLength) { + throw new RangeError('The buffer of view has different capacity than byobRequest'); + } + + firstDescriptor.buffer = view.buffer; + ReadableByteStreamControllerRespondInternal(controller, view.byteLength); + } + + function streamBrandCheckException(name) { + return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream'); + } + + function readerLockException(name) { + return new TypeError('Cannot ' + name + ' a stream using a released reader'); + } + + function defaultReaderBrandCheckException(name) { + return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader'); + } + + function defaultReaderClosedPromiseInitialize(reader) { + reader._closedPromise = new Promise(function (resolve, reject) { + reader._closedPromise_resolve = resolve; + reader._closedPromise_reject = reject; + }); + } + + function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) { + reader._closedPromise = Promise.reject(reason); + reader._closedPromise_resolve = undefined; + reader._closedPromise_reject = undefined; + } + + function defaultReaderClosedPromiseInitializeAsResolved(reader) { + reader._closedPromise = Promise.resolve(undefined); + reader._closedPromise_resolve = undefined; + reader._closedPromise_reject = undefined; + } + + function defaultReaderClosedPromiseReject(reader, reason) { + assert(reader._closedPromise_resolve !== undefined); + assert(reader._closedPromise_reject !== undefined); + + reader._closedPromise_reject(reason); + + reader._closedPromise_resolve = undefined; + reader._closedPromise_reject = undefined; + } + + function defaultReaderClosedPromiseResetToRejected(reader, reason) { + assert(reader._closedPromise_resolve === undefined); + assert(reader._closedPromise_reject === undefined); + reader._closedPromise = Promise.reject(reason); + } + + function defaultReaderClosedPromiseResolve(reader) { + assert(reader._closedPromise_resolve !== undefined); + assert(reader._closedPromise_reject !== undefined); + + reader._closedPromise_resolve(undefined); + + reader._closedPromise_resolve = undefined; + reader._closedPromise_reject = undefined; + } + + function byobReaderBrandCheckException(name) { + return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader'); + } + + function defaultControllerBrandCheckException(name) { + return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController'); + } + + function byobRequestBrandCheckException(name) { + return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest'); + } + + function byteStreamControllerBrandCheckException(name) { + return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController'); + } + + function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) { + try { + Promise.prototype.then.call(promise, undefined, function () {}); + } catch (e) {} + } +}, function (module, exports, __w_pdfjs_require__) { + "use strict"; + + var transformStream = __w_pdfjs_require__(6); + + var readableStream = __w_pdfjs_require__(4); + + var writableStream = __w_pdfjs_require__(2); + + exports.TransformStream = transformStream.TransformStream; + exports.ReadableStream = readableStream.ReadableStream; + exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed; + exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose; + exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue; + exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError; + exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize; + exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter; + exports.IsWritableStream = writableStream.IsWritableStream; + exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked; + exports.WritableStream = writableStream.WritableStream; + exports.WritableStreamAbort = writableStream.WritableStreamAbort; + exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError; + exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation; + exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease; + exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite; +}, function (module, exports, __w_pdfjs_require__) { + "use strict"; + + var _createClass = function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + var _require = __w_pdfjs_require__(1), + assert = _require.assert; + + var _require2 = __w_pdfjs_require__(0), + InvokeOrNoop = _require2.InvokeOrNoop, + PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback, + PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop, + typeIsObject = _require2.typeIsObject; + + var _require3 = __w_pdfjs_require__(4), + ReadableStream = _require3.ReadableStream, + ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose, + ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue, + ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError, + ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize; + + var _require4 = __w_pdfjs_require__(2), + WritableStream = _require4.WritableStream, + WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError; + + function TransformStreamCloseReadable(transformStream) { + if (transformStream._errored === true) { + throw new TypeError('TransformStream is already errored'); + } + + if (transformStream._readableClosed === true) { + throw new TypeError('Readable side is already closed'); + } + + TransformStreamCloseReadableInternal(transformStream); + } + + function TransformStreamEnqueueToReadable(transformStream, chunk) { + if (transformStream._errored === true) { + throw new TypeError('TransformStream is already errored'); + } + + if (transformStream._readableClosed === true) { + throw new TypeError('Readable side is already closed'); + } + + var controller = transformStream._readableController; + + try { + ReadableStreamDefaultControllerEnqueue(controller, chunk); + } catch (e) { + transformStream._readableClosed = true; + TransformStreamErrorIfNeeded(transformStream, e); + throw transformStream._storedError; + } + + var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); + var maybeBackpressure = desiredSize <= 0; + + if (maybeBackpressure === true && transformStream._backpressure === false) { + TransformStreamSetBackpressure(transformStream, true); + } + } + + function TransformStreamError(transformStream, e) { + if (transformStream._errored === true) { + throw new TypeError('TransformStream is already errored'); + } + + TransformStreamErrorInternal(transformStream, e); + } + + function TransformStreamCloseReadableInternal(transformStream) { + assert(transformStream._errored === false); + assert(transformStream._readableClosed === false); + + try { + ReadableStreamDefaultControllerClose(transformStream._readableController); + } catch (e) { + assert(false); + } + + transformStream._readableClosed = true; + } + + function TransformStreamErrorIfNeeded(transformStream, e) { + if (transformStream._errored === false) { + TransformStreamErrorInternal(transformStream, e); + } + } + + function TransformStreamErrorInternal(transformStream, e) { + assert(transformStream._errored === false); + transformStream._errored = true; + transformStream._storedError = e; + + if (transformStream._writableDone === false) { + WritableStreamDefaultControllerError(transformStream._writableController, e); + } + + if (transformStream._readableClosed === false) { + ReadableStreamDefaultControllerError(transformStream._readableController, e); + } + } + + function TransformStreamReadableReadyPromise(transformStream) { + assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); + + if (transformStream._backpressure === false) { + return Promise.resolve(); + } + + assert(transformStream._backpressure === true, '_backpressure should have been initialized'); + return transformStream._backpressureChangePromise; + } + + function TransformStreamSetBackpressure(transformStream, backpressure) { + assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed'); + + if (transformStream._backpressureChangePromise !== undefined) { + transformStream._backpressureChangePromise_resolve(backpressure); + } + + transformStream._backpressureChangePromise = new Promise(function (resolve) { + transformStream._backpressureChangePromise_resolve = resolve; + }); + + transformStream._backpressureChangePromise.then(function (resolution) { + assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed'); + }); + + transformStream._backpressure = backpressure; + } + + function TransformStreamDefaultTransform(chunk, transformStreamController) { + var transformStream = transformStreamController._controlledTransformStream; + TransformStreamEnqueueToReadable(transformStream, chunk); + return Promise.resolve(); + } + + function TransformStreamTransform(transformStream, chunk) { + assert(transformStream._errored === false); + assert(transformStream._transforming === false); + assert(transformStream._backpressure === false); + transformStream._transforming = true; + var transformer = transformStream._transformer; + var controller = transformStream._transformStreamController; + var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]); + return transformPromise.then(function () { + transformStream._transforming = false; + return TransformStreamReadableReadyPromise(transformStream); + }, function (e) { + TransformStreamErrorIfNeeded(transformStream, e); + return Promise.reject(e); + }); + } + + function IsTransformStreamDefaultController(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) { + return false; + } + + return true; + } + + function IsTransformStream(x) { + if (!typeIsObject(x)) { + return false; + } + + if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) { + return false; + } + + return true; + } + + var TransformStreamSink = function () { + function TransformStreamSink(transformStream, startPromise) { + _classCallCheck(this, TransformStreamSink); + + this._transformStream = transformStream; + this._startPromise = startPromise; + } + + _createClass(TransformStreamSink, [{ + key: 'start', + value: function start(c) { + var transformStream = this._transformStream; + transformStream._writableController = c; + return this._startPromise.then(function () { + return TransformStreamReadableReadyPromise(transformStream); + }); + } + }, { + key: 'write', + value: function write(chunk) { + var transformStream = this._transformStream; + return TransformStreamTransform(transformStream, chunk); + } + }, { + key: 'abort', + value: function abort() { + var transformStream = this._transformStream; + transformStream._writableDone = true; + TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted')); + } + }, { + key: 'close', + value: function close() { + var transformStream = this._transformStream; + assert(transformStream._transforming === false); + transformStream._writableDone = true; + var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]); + return flushPromise.then(function () { + if (transformStream._errored === true) { + return Promise.reject(transformStream._storedError); + } + + if (transformStream._readableClosed === false) { + TransformStreamCloseReadableInternal(transformStream); + } + + return Promise.resolve(); + }).catch(function (r) { + TransformStreamErrorIfNeeded(transformStream, r); + return Promise.reject(transformStream._storedError); + }); + } + }]); + + return TransformStreamSink; + }(); + + var TransformStreamSource = function () { + function TransformStreamSource(transformStream, startPromise) { + _classCallCheck(this, TransformStreamSource); + + this._transformStream = transformStream; + this._startPromise = startPromise; + } + + _createClass(TransformStreamSource, [{ + key: 'start', + value: function start(c) { + var transformStream = this._transformStream; + transformStream._readableController = c; + return this._startPromise.then(function () { + assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); + + if (transformStream._backpressure === true) { + return Promise.resolve(); + } + + assert(transformStream._backpressure === false, '_backpressure should have been initialized'); + return transformStream._backpressureChangePromise; + }); + } + }, { + key: 'pull', + value: function pull() { + var transformStream = this._transformStream; + assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false'); + assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); + TransformStreamSetBackpressure(transformStream, false); + return transformStream._backpressureChangePromise; + } + }, { + key: 'cancel', + value: function cancel() { + var transformStream = this._transformStream; + transformStream._readableClosed = true; + TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled')); + } + }]); + + return TransformStreamSource; + }(); + + var TransformStreamDefaultController = function () { + function TransformStreamDefaultController(transformStream) { + _classCallCheck(this, TransformStreamDefaultController); + + if (IsTransformStream(transformStream) === false) { + throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance'); + } + + if (transformStream._transformStreamController !== undefined) { + throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor'); + } + + this._controlledTransformStream = transformStream; + } + + _createClass(TransformStreamDefaultController, [{ + key: 'enqueue', + value: function enqueue(chunk) { + if (IsTransformStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('enqueue'); + } + + TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk); + } + }, { + key: 'close', + value: function close() { + if (IsTransformStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('close'); + } + + TransformStreamCloseReadable(this._controlledTransformStream); + } + }, { + key: 'error', + value: function error(reason) { + if (IsTransformStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('error'); + } + + TransformStreamError(this._controlledTransformStream, reason); + } + }, { + key: 'desiredSize', + get: function get() { + if (IsTransformStreamDefaultController(this) === false) { + throw defaultControllerBrandCheckException('desiredSize'); + } + + var transformStream = this._controlledTransformStream; + var readableController = transformStream._readableController; + return ReadableStreamDefaultControllerGetDesiredSize(readableController); + } + }]); + + return TransformStreamDefaultController; + }(); + + var TransformStream = function () { + function TransformStream() { + var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + _classCallCheck(this, TransformStream); + + this._transformer = transformer; + var readableStrategy = transformer.readableStrategy, + writableStrategy = transformer.writableStrategy; + this._transforming = false; + this._errored = false; + this._storedError = undefined; + this._writableController = undefined; + this._readableController = undefined; + this._transformStreamController = undefined; + this._writableDone = false; + this._readableClosed = false; + this._backpressure = undefined; + this._backpressureChangePromise = undefined; + this._backpressureChangePromise_resolve = undefined; + this._transformStreamController = new TransformStreamDefaultController(this); + var startPromise_resolve = void 0; + var startPromise = new Promise(function (resolve) { + startPromise_resolve = resolve; + }); + var source = new TransformStreamSource(this, startPromise); + this._readable = new ReadableStream(source, readableStrategy); + var sink = new TransformStreamSink(this, startPromise); + this._writable = new WritableStream(sink, writableStrategy); + assert(this._writableController !== undefined); + assert(this._readableController !== undefined); + var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController); + TransformStreamSetBackpressure(this, desiredSize <= 0); + var transformStream = this; + var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]); + startPromise_resolve(startResult); + startPromise.catch(function (e) { + if (transformStream._errored === false) { + transformStream._errored = true; + transformStream._storedError = e; + } + }); + } + + _createClass(TransformStream, [{ + key: 'readable', + get: function get() { + if (IsTransformStream(this) === false) { + throw streamBrandCheckException('readable'); + } + + return this._readable; + } + }, { + key: 'writable', + get: function get() { + if (IsTransformStream(this) === false) { + throw streamBrandCheckException('writable'); + } + + return this._writable; + } + }]); + + return TransformStream; + }(); + + module.exports = { + TransformStream: TransformStream + }; + + function defaultControllerBrandCheckException(name) { + return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController'); + } + + function streamBrandCheckException(name) { + return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream'); + } +}, function (module, exports, __w_pdfjs_require__) { + module.exports = __w_pdfjs_require__(5); +}])); + +/***/ }), +/* 149 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +{ + var isURLSupported = false; + + try { + if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) { + var u = new URL('b', 'http://a'); + u.pathname = 'c%20d'; + isURLSupported = u.href === 'http://a/c%20d'; + } + } catch (ex) {} + + if (isURLSupported) { + exports.URL = URL; + } else { + var PolyfillURL = __w_pdfjs_require__(150).URL; + + var OriginalURL = __w_pdfjs_require__(8).URL; + + if (OriginalURL) { + PolyfillURL.createObjectURL = function (blob) { + return OriginalURL.createObjectURL.apply(OriginalURL, arguments); + }; + + PolyfillURL.revokeObjectURL = function (url) { + OriginalURL.revokeObjectURL(url); + }; + } + + exports.URL = PolyfillURL; + } +} + +/***/ }), +/* 150 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +(function URLConstructorClosure() { + 'use strict'; + + var relative = Object.create(null); + relative['ftp'] = 21; + relative['file'] = 0; + relative['gopher'] = 70; + relative['http'] = 80; + relative['https'] = 443; + relative['ws'] = 80; + relative['wss'] = 443; + var relativePathDotMapping = Object.create(null); + relativePathDotMapping['%2e'] = '.'; + relativePathDotMapping['.%2e'] = '..'; + relativePathDotMapping['%2e.'] = '..'; + relativePathDotMapping['%2e%2e'] = '..'; + + function isRelativeScheme(scheme) { + return relative[scheme] !== undefined; + } + + function invalid() { + clear.call(this); + this._isInvalid = true; + } + + function IDNAToASCII(h) { + if (h === '') { + invalid.call(this); + } + + return h.toLowerCase(); + } + + function percentEscape(c) { + var unicode = c.charCodeAt(0); + + if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) { + return c; + } + + return encodeURIComponent(c); + } + + function percentEscapeQuery(c) { + var unicode = c.charCodeAt(0); + + if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) { + return c; + } + + return encodeURIComponent(c); + } + + var EOF, + ALPHA = /[a-zA-Z]/, + ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/; + + function parse(input, stateOverride, base) { + function err(message) { + errors.push(message); + } + + var state = stateOverride || 'scheme start', + cursor = 0, + buffer = '', + seenAt = false, + seenBracket = false, + errors = []; + + loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) { + var c = input[cursor]; + + switch (state) { + case 'scheme start': + if (c && ALPHA.test(c)) { + buffer += c.toLowerCase(); + state = 'scheme'; + } else if (!stateOverride) { + buffer = ''; + state = 'no scheme'; + continue; + } else { + err('Invalid scheme.'); + break loop; + } + + break; + + case 'scheme': + if (c && ALPHANUMERIC.test(c)) { + buffer += c.toLowerCase(); + } else if (c === ':') { + this._scheme = buffer; + buffer = ''; + + if (stateOverride) { + break loop; + } + + if (isRelativeScheme(this._scheme)) { + this._isRelative = true; + } + + if (this._scheme === 'file') { + state = 'relative'; + } else if (this._isRelative && base && base._scheme === this._scheme) { + state = 'relative or authority'; + } else if (this._isRelative) { + state = 'authority first slash'; + } else { + state = 'scheme data'; + } + } else if (!stateOverride) { + buffer = ''; + cursor = 0; + state = 'no scheme'; + continue; + } else if (c === EOF) { + break loop; + } else { + err('Code point not allowed in scheme: ' + c); + break loop; + } + + break; + + case 'scheme data': + if (c === '?') { + this._query = '?'; + state = 'query'; + } else if (c === '#') { + this._fragment = '#'; + state = 'fragment'; + } else { + if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { + this._schemeData += percentEscape(c); + } + } + + break; + + case 'no scheme': + if (!base || !isRelativeScheme(base._scheme)) { + err('Missing scheme.'); + invalid.call(this); + } else { + state = 'relative'; + continue; + } + + break; + + case 'relative or authority': + if (c === '/' && input[cursor + 1] === '/') { + state = 'authority ignore slashes'; + } else { + err('Expected /, got: ' + c); + state = 'relative'; + continue; + } + + break; + + case 'relative': + this._isRelative = true; + + if (this._scheme !== 'file') { + this._scheme = base._scheme; + } + + if (c === EOF) { + this._host = base._host; + this._port = base._port; + this._path = base._path.slice(); + this._query = base._query; + this._username = base._username; + this._password = base._password; + break loop; + } else if (c === '/' || c === '\\') { + if (c === '\\') { + err('\\ is an invalid code point.'); + } + + state = 'relative slash'; + } else if (c === '?') { + this._host = base._host; + this._port = base._port; + this._path = base._path.slice(); + this._query = '?'; + this._username = base._username; + this._password = base._password; + state = 'query'; + } else if (c === '#') { + this._host = base._host; + this._port = base._port; + this._path = base._path.slice(); + this._query = base._query; + this._fragment = '#'; + this._username = base._username; + this._password = base._password; + state = 'fragment'; + } else { + var nextC = input[cursor + 1]; + var nextNextC = input[cursor + 2]; + + if (this._scheme !== 'file' || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\' && nextNextC !== '?' && nextNextC !== '#') { + this._host = base._host; + this._port = base._port; + this._username = base._username; + this._password = base._password; + this._path = base._path.slice(); + + this._path.pop(); + } + + state = 'relative path'; + continue; + } + + break; + + case 'relative slash': + if (c === '/' || c === '\\') { + if (c === '\\') { + err('\\ is an invalid code point.'); + } + + if (this._scheme === 'file') { + state = 'file host'; + } else { + state = 'authority ignore slashes'; + } + } else { + if (this._scheme !== 'file') { + this._host = base._host; + this._port = base._port; + this._username = base._username; + this._password = base._password; + } + + state = 'relative path'; + continue; + } + + break; + + case 'authority first slash': + if (c === '/') { + state = 'authority second slash'; + } else { + err('Expected \'/\', got: ' + c); + state = 'authority ignore slashes'; + continue; + } + + break; + + case 'authority second slash': + state = 'authority ignore slashes'; + + if (c !== '/') { + err('Expected \'/\', got: ' + c); + continue; + } + + break; + + case 'authority ignore slashes': + if (c !== '/' && c !== '\\') { + state = 'authority'; + continue; + } else { + err('Expected authority, got: ' + c); + } + + break; + + case 'authority': + if (c === '@') { + if (seenAt) { + err('@ already seen.'); + buffer += '%40'; + } + + seenAt = true; + + for (var i = 0; i < buffer.length; i++) { + var cp = buffer[i]; + + if (cp === '\t' || cp === '\n' || cp === '\r') { + err('Invalid whitespace in authority.'); + continue; + } + + if (cp === ':' && this._password === null) { + this._password = ''; + continue; + } + + var tempC = percentEscape(cp); + + if (this._password !== null) { + this._password += tempC; + } else { + this._username += tempC; + } + } + + buffer = ''; + } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { + cursor -= buffer.length; + buffer = ''; + state = 'host'; + continue; + } else { + buffer += c; + } + + break; + + case 'file host': + if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { + if (buffer.length === 2 && ALPHA.test(buffer[0]) && (buffer[1] === ':' || buffer[1] === '|')) { + state = 'relative path'; + } else if (buffer.length === 0) { + state = 'relative path start'; + } else { + this._host = IDNAToASCII.call(this, buffer); + buffer = ''; + state = 'relative path start'; + } + + continue; + } else if (c === '\t' || c === '\n' || c === '\r') { + err('Invalid whitespace in file host.'); + } else { + buffer += c; + } + + break; + + case 'host': + case 'hostname': + if (c === ':' && !seenBracket) { + this._host = IDNAToASCII.call(this, buffer); + buffer = ''; + state = 'port'; + + if (stateOverride === 'hostname') { + break loop; + } + } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { + this._host = IDNAToASCII.call(this, buffer); + buffer = ''; + state = 'relative path start'; + + if (stateOverride) { + break loop; + } + + continue; + } else if (c !== '\t' && c !== '\n' && c !== '\r') { + if (c === '[') { + seenBracket = true; + } else if (c === ']') { + seenBracket = false; + } + + buffer += c; + } else { + err('Invalid code point in host/hostname: ' + c); + } + + break; + + case 'port': + if (/[0-9]/.test(c)) { + buffer += c; + } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#' || stateOverride) { + if (buffer !== '') { + var temp = parseInt(buffer, 10); + + if (temp !== relative[this._scheme]) { + this._port = temp + ''; + } + + buffer = ''; + } + + if (stateOverride) { + break loop; + } + + state = 'relative path start'; + continue; + } else if (c === '\t' || c === '\n' || c === '\r') { + err('Invalid code point in port: ' + c); + } else { + invalid.call(this); + } + + break; + + case 'relative path start': + if (c === '\\') { + err('\'\\\' not allowed in path.'); + } + + state = 'relative path'; + + if (c !== '/' && c !== '\\') { + continue; + } + + break; + + case 'relative path': + if (c === EOF || c === '/' || c === '\\' || !stateOverride && (c === '?' || c === '#')) { + if (c === '\\') { + err('\\ not allowed in relative path.'); + } + + var tmp; + + if (tmp = relativePathDotMapping[buffer.toLowerCase()]) { + buffer = tmp; + } + + if (buffer === '..') { + this._path.pop(); + + if (c !== '/' && c !== '\\') { + this._path.push(''); + } + } else if (buffer === '.' && c !== '/' && c !== '\\') { + this._path.push(''); + } else if (buffer !== '.') { + if (this._scheme === 'file' && this._path.length === 0 && buffer.length === 2 && ALPHA.test(buffer[0]) && buffer[1] === '|') { + buffer = buffer[0] + ':'; + } + + this._path.push(buffer); + } + + buffer = ''; + + if (c === '?') { + this._query = '?'; + state = 'query'; + } else if (c === '#') { + this._fragment = '#'; + state = 'fragment'; + } + } else if (c !== '\t' && c !== '\n' && c !== '\r') { + buffer += percentEscape(c); + } + + break; + + case 'query': + if (!stateOverride && c === '#') { + this._fragment = '#'; + state = 'fragment'; + } else if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { + this._query += percentEscapeQuery(c); + } + + break; + + case 'fragment': + if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { + this._fragment += c; + } + + break; + } + + cursor++; + } + } + + function clear() { + this._scheme = ''; + this._schemeData = ''; + this._username = ''; + this._password = null; + this._host = ''; + this._port = ''; + this._path = []; + this._query = ''; + this._fragment = ''; + this._isInvalid = false; + this._isRelative = false; + } + + function JURL(url, base) { + if (base !== undefined && !(base instanceof JURL)) { + base = new JURL(String(base)); + } + + this._url = url; + clear.call(this); + var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, ''); + parse.call(this, input, null, base); + } + + JURL.prototype = { + toString: function toString() { + return this.href; + }, + + get href() { + if (this._isInvalid) { + return this._url; + } + + var authority = ''; + + if (this._username !== '' || this._password !== null) { + authority = this._username + (this._password !== null ? ':' + this._password : '') + '@'; + } + + return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment; + }, + + set href(value) { + clear.call(this); + parse.call(this, value); + }, + + get protocol() { + return this._scheme + ':'; + }, + + set protocol(value) { + if (this._isInvalid) { + return; + } + + parse.call(this, value + ':', 'scheme start'); + }, + + get host() { + return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host; + }, + + set host(value) { + if (this._isInvalid || !this._isRelative) { + return; + } + + parse.call(this, value, 'host'); + }, + + get hostname() { + return this._host; + }, + + set hostname(value) { + if (this._isInvalid || !this._isRelative) { + return; + } + + parse.call(this, value, 'hostname'); + }, + + get port() { + return this._port; + }, + + set port(value) { + if (this._isInvalid || !this._isRelative) { + return; + } + + parse.call(this, value, 'port'); + }, + + get pathname() { + return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData; + }, + + set pathname(value) { + if (this._isInvalid || !this._isRelative) { + return; + } + + this._path = []; + parse.call(this, value, 'relative path start'); + }, + + get search() { + return this._isInvalid || !this._query || this._query === '?' ? '' : this._query; + }, + + set search(value) { + if (this._isInvalid || !this._isRelative) { + return; + } + + this._query = '?'; + + if (value[0] === '?') { + value = value.slice(1); + } + + parse.call(this, value, 'query'); + }, + + get hash() { + return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment; + }, + + set hash(value) { + if (this._isInvalid) { + return; + } + + this._fragment = '#'; + + if (value[0] === '#') { + value = value.slice(1); + } + + parse.call(this, value, 'fragment'); + }, + + get origin() { + var host; + + if (this._isInvalid || !this._scheme) { + return ''; + } + + switch (this._scheme) { + case 'data': + case 'file': + case 'javascript': + case 'mailto': + return 'null'; + + case 'blob': + try { + return new JURL(this._schemeData).origin || 'null'; + } catch (_) {} + + return 'null'; + } + + host = this.host; + + if (!host) { + return ''; + } + + return this._scheme + '://' + host; + } + + }; + exports.URL = JURL; +})(); + +/***/ }), +/* 151 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.NetworkPdfManager = exports.LocalPdfManager = void 0; + +var _regenerator = _interopRequireDefault(__w_pdfjs_require__(2)); + +var _util = __w_pdfjs_require__(6); + +var _chunked_stream = __w_pdfjs_require__(152); + +var _document = __w_pdfjs_require__(153); + +var _stream = __w_pdfjs_require__(157); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var BasePdfManager = +/*#__PURE__*/ +function () { + function BasePdfManager() { + _classCallCheck(this, BasePdfManager); + + if (this.constructor === BasePdfManager) { + (0, _util.unreachable)('Cannot initialize BasePdfManager.'); + } + } + + _createClass(BasePdfManager, [{ + key: "onLoadedStream", + value: function onLoadedStream() { + (0, _util.unreachable)('Abstract method `onLoadedStream` called'); + } + }, { + key: "ensureDoc", + value: function ensureDoc(prop, args) { + return this.ensure(this.pdfDocument, prop, args); + } + }, { + key: "ensureXRef", + value: function ensureXRef(prop, args) { + return this.ensure(this.pdfDocument.xref, prop, args); + } + }, { + key: "ensureCatalog", + value: function ensureCatalog(prop, args) { + return this.ensure(this.pdfDocument.catalog, prop, args); + } + }, { + key: "getPage", + value: function getPage(pageIndex) { + return this.pdfDocument.getPage(pageIndex); + } + }, { + key: "fontFallback", + value: function fontFallback(id, handler) { + return this.pdfDocument.fontFallback(id, handler); + } + }, { + key: "cleanup", + value: function cleanup() { + return this.pdfDocument.cleanup(); + } + }, { + key: "ensure", + value: function () { + var _ensure = _asyncToGenerator( + /*#__PURE__*/ + _regenerator.default.mark(function _callee(obj, prop, args) { + return _regenerator.default.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + (0, _util.unreachable)('Abstract method `ensure` called'); + + case 1: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function ensure(_x, _x2, _x3) { + return _ensure.apply(this, arguments); + } + + return ensure; + }() + }, { + key: "requestRange", + value: function requestRange(begin, end) { + (0, _util.unreachable)('Abstract method `requestRange` called'); + } + }, { + key: "requestLoadedStream", + value: function requestLoadedStream() { + (0, _util.unreachable)('Abstract method `requestLoadedStream` called'); + } + }, { + key: "sendProgressiveData", + value: function sendProgressiveData(chunk) { + (0, _util.unreachable)('Abstract method `sendProgressiveData` called'); + } + }, { + key: "updatePassword", + value: function updatePassword(password) { + this._password = password; + } + }, { + key: "terminate", + value: function terminate() { + (0, _util.unreachable)('Abstract method `terminate` called'); + } + }, { + key: "docId", + get: function get() { + return this._docId; + } + }, { + key: "password", + get: function get() { + return this._password; + } + }, { + key: "docBaseUrl", + get: function get() { + var docBaseUrl = null; + + if (this._docBaseUrl) { + var absoluteUrl = (0, _util.createValidAbsoluteUrl)(this._docBaseUrl); + + if (absoluteUrl) { + docBaseUrl = absoluteUrl.href; + } else { + (0, _util.warn)("Invalid absolute docBaseUrl: \"".concat(this._docBaseUrl, "\".")); + } + } + + return (0, _util.shadow)(this, 'docBaseUrl', docBaseUrl); + } + }]); + + return BasePdfManager; +}(); + +var LocalPdfManager = +/*#__PURE__*/ +function (_BasePdfManager) { + _inherits(LocalPdfManager, _BasePdfManager); + + function LocalPdfManager(docId, data, password, evaluatorOptions, docBaseUrl) { + var _this; + + _classCallCheck(this, LocalPdfManager); + + _this = _possibleConstructorReturn(this, _getPrototypeOf(LocalPdfManager).call(this)); + _this._docId = docId; + _this._password = password; + _this._docBaseUrl = docBaseUrl; + _this.evaluatorOptions = evaluatorOptions; + var stream = new _stream.Stream(data); + _this.pdfDocument = new _document.PDFDocument(_assertThisInitialized(_assertThisInitialized(_this)), stream); + _this._loadedStreamPromise = Promise.resolve(stream); + return _this; + } + + _createClass(LocalPdfManager, [{ + key: "ensure", + value: function () { + var _ensure2 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator.default.mark(function _callee2(obj, prop, args) { + var value; + return _regenerator.default.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + value = obj[prop]; + + if (!(typeof value === 'function')) { + _context2.next = 3; + break; + } + + return _context2.abrupt("return", value.apply(obj, args)); + + case 3: + return _context2.abrupt("return", value); + + case 4: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function ensure(_x4, _x5, _x6) { + return _ensure2.apply(this, arguments); + } + + return ensure; + }() + }, { + key: "requestRange", + value: function requestRange(begin, end) { + return Promise.resolve(); + } + }, { + key: "requestLoadedStream", + value: function requestLoadedStream() {} + }, { + key: "onLoadedStream", + value: function onLoadedStream() { + return this._loadedStreamPromise; + } + }, { + key: "terminate", + value: function terminate() {} + }]); + + return LocalPdfManager; +}(BasePdfManager); + +exports.LocalPdfManager = LocalPdfManager; + +var NetworkPdfManager = +/*#__PURE__*/ +function (_BasePdfManager2) { + _inherits(NetworkPdfManager, _BasePdfManager2); + + function NetworkPdfManager(docId, pdfNetworkStream, args, evaluatorOptions, docBaseUrl) { + var _this2; + + _classCallCheck(this, NetworkPdfManager); + + _this2 = _possibleConstructorReturn(this, _getPrototypeOf(NetworkPdfManager).call(this)); + _this2._docId = docId; + _this2._password = args.password; + _this2._docBaseUrl = docBaseUrl; + _this2.msgHandler = args.msgHandler; + _this2.evaluatorOptions = evaluatorOptions; + _this2.streamManager = new _chunked_stream.ChunkedStreamManager(pdfNetworkStream, { + msgHandler: args.msgHandler, + length: args.length, + disableAutoFetch: args.disableAutoFetch, + rangeChunkSize: args.rangeChunkSize + }); + _this2.pdfDocument = new _document.PDFDocument(_assertThisInitialized(_assertThisInitialized(_this2)), _this2.streamManager.getStream()); + return _this2; + } + + _createClass(NetworkPdfManager, [{ + key: "ensure", + value: function () { + var _ensure3 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator.default.mark(function _callee3(obj, prop, args) { + var value; + return _regenerator.default.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + _context3.prev = 0; + value = obj[prop]; + + if (!(typeof value === 'function')) { + _context3.next = 4; + break; + } + + return _context3.abrupt("return", value.apply(obj, args)); + + case 4: + return _context3.abrupt("return", value); + + case 7: + _context3.prev = 7; + _context3.t0 = _context3["catch"](0); + + if (_context3.t0 instanceof _util.MissingDataException) { + _context3.next = 11; + break; + } + + throw _context3.t0; + + case 11: + _context3.next = 13; + return this.requestRange(_context3.t0.begin, _context3.t0.end); + + case 13: + return _context3.abrupt("return", this.ensure(obj, prop, args)); + + case 14: + case "end": + return _context3.stop(); + } + } + }, _callee3, this, [[0, 7]]); + })); + + function ensure(_x7, _x8, _x9) { + return _ensure3.apply(this, arguments); + } + + return ensure; + }() + }, { + key: "requestRange", + value: function requestRange(begin, end) { + return this.streamManager.requestRange(begin, end); + } + }, { + key: "requestLoadedStream", + value: function requestLoadedStream() { + this.streamManager.requestAllChunks(); + } + }, { + key: "sendProgressiveData", + value: function sendProgressiveData(chunk) { + this.streamManager.onReceiveData({ + chunk: chunk + }); + } + }, { + key: "onLoadedStream", + value: function onLoadedStream() { + return this.streamManager.onLoadedStream(); + } + }, { + key: "terminate", + value: function terminate() { + this.streamManager.abort(); + } + }]); + + return NetworkPdfManager; +}(BasePdfManager); + +exports.NetworkPdfManager = NetworkPdfManager; + +/***/ }), +/* 152 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ChunkedStreamManager = exports.ChunkedStream = void 0; + +var _util = __w_pdfjs_require__(6); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var ChunkedStream = +/*#__PURE__*/ +function () { + function ChunkedStream(length, chunkSize, manager) { + _classCallCheck(this, ChunkedStream); + + this.bytes = new Uint8Array(length); + this.start = 0; + this.pos = 0; + this.end = length; + this.chunkSize = chunkSize; + this.loadedChunks = []; + this.numChunksLoaded = 0; + this.numChunks = Math.ceil(length / chunkSize); + this.manager = manager; + this.progressiveDataLength = 0; + this.lastSuccessfulEnsureByteChunk = -1; + } + + _createClass(ChunkedStream, [{ + key: "getMissingChunks", + value: function getMissingChunks() { + var chunks = []; + + for (var chunk = 0, n = this.numChunks; chunk < n; ++chunk) { + if (!this.loadedChunks[chunk]) { + chunks.push(chunk); + } + } + + return chunks; + } + }, { + key: "getBaseStreams", + value: function getBaseStreams() { + return [this]; + } + }, { + key: "allChunksLoaded", + value: function allChunksLoaded() { + return this.numChunksLoaded === this.numChunks; + } + }, { + key: "onReceiveData", + value: function onReceiveData(begin, chunk) { + var chunkSize = this.chunkSize; + + if (begin % chunkSize !== 0) { + throw new Error("Bad begin offset: ".concat(begin)); + } + + var end = begin + chunk.byteLength; + + if (end % chunkSize !== 0 && end !== this.bytes.length) { + throw new Error("Bad end offset: ".concat(end)); + } + + this.bytes.set(new Uint8Array(chunk), begin); + var beginChunk = Math.floor(begin / chunkSize); + var endChunk = Math.floor((end - 1) / chunkSize) + 1; + + for (var curChunk = beginChunk; curChunk < endChunk; ++curChunk) { + if (!this.loadedChunks[curChunk]) { + this.loadedChunks[curChunk] = true; + ++this.numChunksLoaded; + } + } + } + }, { + key: "onReceiveProgressiveData", + value: function onReceiveProgressiveData(data) { + var position = this.progressiveDataLength; + var beginChunk = Math.floor(position / this.chunkSize); + this.bytes.set(new Uint8Array(data), position); + position += data.byteLength; + this.progressiveDataLength = position; + var endChunk = position >= this.end ? this.numChunks : Math.floor(position / this.chunkSize); + + for (var curChunk = beginChunk; curChunk < endChunk; ++curChunk) { + if (!this.loadedChunks[curChunk]) { + this.loadedChunks[curChunk] = true; + ++this.numChunksLoaded; + } + } + } + }, { + key: "ensureByte", + value: function ensureByte(pos) { + var chunk = Math.floor(pos / this.chunkSize); + + if (chunk === this.lastSuccessfulEnsureByteChunk) { + return; + } + + if (!this.loadedChunks[chunk]) { + throw new _util.MissingDataException(pos, pos + 1); + } + + this.lastSuccessfulEnsureByteChunk = chunk; + } + }, { + key: "ensureRange", + value: function ensureRange(begin, end) { + if (begin >= end) { + return; + } + + if (end <= this.progressiveDataLength) { + return; + } + + var chunkSize = this.chunkSize; + var beginChunk = Math.floor(begin / chunkSize); + var endChunk = Math.floor((end - 1) / chunkSize) + 1; + + for (var chunk = beginChunk; chunk < endChunk; ++chunk) { + if (!this.loadedChunks[chunk]) { + throw new _util.MissingDataException(begin, end); + } + } + } + }, { + key: "nextEmptyChunk", + value: function nextEmptyChunk(beginChunk) { + var numChunks = this.numChunks; + + for (var i = 0; i < numChunks; ++i) { + var chunk = (beginChunk + i) % numChunks; + + if (!this.loadedChunks[chunk]) { + return chunk; + } + } + + return null; + } + }, { + key: "hasChunk", + value: function hasChunk(chunk) { + return !!this.loadedChunks[chunk]; + } + }, { + key: "getByte", + value: function getByte() { + var pos = this.pos; + + if (pos >= this.end) { + return -1; + } + + this.ensureByte(pos); + return this.bytes[this.pos++]; + } + }, { + key: "getUint16", + value: function getUint16() { + var b0 = this.getByte(); + var b1 = this.getByte(); + + if (b0 === -1 || b1 === -1) { + return -1; + } + + return (b0 << 8) + b1; + } + }, { + key: "getInt32", + value: function getInt32() { + var b0 = this.getByte(); + var b1 = this.getByte(); + var b2 = this.getByte(); + var b3 = this.getByte(); + return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3; + } + }, { + key: "getBytes", + value: function getBytes(length) { + var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var bytes = this.bytes; + var pos = this.pos; + var strEnd = this.end; + + if (!length) { + this.ensureRange(pos, strEnd); + + var _subarray = bytes.subarray(pos, strEnd); + + return forceClamped ? new Uint8ClampedArray(_subarray) : _subarray; + } + + var end = pos + length; + + if (end > strEnd) { + end = strEnd; + } + + this.ensureRange(pos, end); + this.pos = end; + var subarray = bytes.subarray(pos, end); + return forceClamped ? new Uint8ClampedArray(subarray) : subarray; + } + }, { + key: "peekByte", + value: function peekByte() { + var peekedByte = this.getByte(); + this.pos--; + return peekedByte; + } + }, { + key: "peekBytes", + value: function peekBytes(length) { + var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var bytes = this.getBytes(length, forceClamped); + this.pos -= bytes.length; + return bytes; + } + }, { + key: "getByteRange", + value: function getByteRange(begin, end) { + this.ensureRange(begin, end); + return this.bytes.subarray(begin, end); + } + }, { + key: "skip", + value: function skip(n) { + if (!n) { + n = 1; + } + + this.pos += n; + } + }, { + key: "reset", + value: function reset() { + this.pos = this.start; + } + }, { + key: "moveStart", + value: function moveStart() { + this.start = this.pos; + } + }, { + key: "makeSubStream", + value: function makeSubStream(start, length, dict) { + this.ensureRange(start, start + length); + + function ChunkedStreamSubstream() {} + + ChunkedStreamSubstream.prototype = Object.create(this); + + ChunkedStreamSubstream.prototype.getMissingChunks = function () { + var chunkSize = this.chunkSize; + var beginChunk = Math.floor(this.start / chunkSize); + var endChunk = Math.floor((this.end - 1) / chunkSize) + 1; + var missingChunks = []; + + for (var chunk = beginChunk; chunk < endChunk; ++chunk) { + if (!this.loadedChunks[chunk]) { + missingChunks.push(chunk); + } + } + + return missingChunks; + }; + + var subStream = new ChunkedStreamSubstream(); + subStream.pos = subStream.start = start; + subStream.end = start + length || this.end; + subStream.dict = dict; + return subStream; + } + }, { + key: "length", + get: function get() { + return this.end - this.start; + } + }, { + key: "isEmpty", + get: function get() { + return this.length === 0; + } + }]); + + return ChunkedStream; +}(); + +exports.ChunkedStream = ChunkedStream; + +var ChunkedStreamManager = +/*#__PURE__*/ +function () { + function ChunkedStreamManager(pdfNetworkStream, args) { + _classCallCheck(this, ChunkedStreamManager); + + this.length = args.length; + this.chunkSize = args.rangeChunkSize; + this.stream = new ChunkedStream(this.length, this.chunkSize, this); + this.pdfNetworkStream = pdfNetworkStream; + this.disableAutoFetch = args.disableAutoFetch; + this.msgHandler = args.msgHandler; + this.currRequestId = 0; + this.chunksNeededByRequest = Object.create(null); + this.requestsByChunk = Object.create(null); + this.promisesByRequest = Object.create(null); + this.progressiveDataLength = 0; + this.aborted = false; + this._loadedStreamCapability = (0, _util.createPromiseCapability)(); + } + + _createClass(ChunkedStreamManager, [{ + key: "onLoadedStream", + value: function onLoadedStream() { + return this._loadedStreamCapability.promise; + } + }, { + key: "sendRequest", + value: function sendRequest(begin, end) { + var _this = this; + + var rangeReader = this.pdfNetworkStream.getRangeReader(begin, end); + + if (!rangeReader.isStreamingSupported) { + rangeReader.onProgress = this.onProgress.bind(this); + } + + var chunks = [], + loaded = 0; + var promise = new Promise(function (resolve, reject) { + var readChunk = function readChunk(chunk) { + try { + if (!chunk.done) { + var data = chunk.value; + chunks.push(data); + loaded += (0, _util.arrayByteLength)(data); + + if (rangeReader.isStreamingSupported) { + _this.onProgress({ + loaded: loaded + }); + } + + rangeReader.read().then(readChunk, reject); + return; + } + + var chunkData = (0, _util.arraysToBytes)(chunks); + chunks = null; + resolve(chunkData); + } catch (e) { + reject(e); + } + }; + + rangeReader.read().then(readChunk, reject); + }); + promise.then(function (data) { + if (_this.aborted) { + return; + } + + _this.onReceiveData({ + chunk: data, + begin: begin + }); + }); + } + }, { + key: "requestAllChunks", + value: function requestAllChunks() { + var missingChunks = this.stream.getMissingChunks(); + + this._requestChunks(missingChunks); + + return this._loadedStreamCapability.promise; + } + }, { + key: "_requestChunks", + value: function _requestChunks(chunks) { + var requestId = this.currRequestId++; + var chunksNeeded = Object.create(null); + this.chunksNeededByRequest[requestId] = chunksNeeded; + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = chunks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var _chunk = _step.value; + + if (!this.stream.hasChunk(_chunk)) { + chunksNeeded[_chunk] = true; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + if ((0, _util.isEmptyObj)(chunksNeeded)) { + return Promise.resolve(); + } + + var capability = (0, _util.createPromiseCapability)(); + this.promisesByRequest[requestId] = capability; + var chunksToRequest = []; + + for (var chunk in chunksNeeded) { + chunk = chunk | 0; + + if (!(chunk in this.requestsByChunk)) { + this.requestsByChunk[chunk] = []; + chunksToRequest.push(chunk); + } + + this.requestsByChunk[chunk].push(requestId); + } + + if (!chunksToRequest.length) { + return capability.promise; + } + + var groupedChunksToRequest = this.groupChunks(chunksToRequest); + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = groupedChunksToRequest[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var groupedChunk = _step2.value; + var begin = groupedChunk.beginChunk * this.chunkSize; + var end = Math.min(groupedChunk.endChunk * this.chunkSize, this.length); + this.sendRequest(begin, end); + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return != null) { + _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + + return capability.promise; + } + }, { + key: "getStream", + value: function getStream() { + return this.stream; + } + }, { + key: "requestRange", + value: function requestRange(begin, end) { + end = Math.min(end, this.length); + var beginChunk = this.getBeginChunk(begin); + var endChunk = this.getEndChunk(end); + var chunks = []; + + for (var chunk = beginChunk; chunk < endChunk; ++chunk) { + chunks.push(chunk); + } + + return this._requestChunks(chunks); + } + }, { + key: "requestRanges", + value: function requestRanges() { + var ranges = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var chunksToRequest = []; + var _iteratorNormalCompletion3 = true; + var _didIteratorError3 = false; + var _iteratorError3 = undefined; + + try { + for (var _iterator3 = ranges[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { + var range = _step3.value; + var beginChunk = this.getBeginChunk(range.begin); + var endChunk = this.getEndChunk(range.end); + + for (var chunk = beginChunk; chunk < endChunk; ++chunk) { + if (!chunksToRequest.includes(chunk)) { + chunksToRequest.push(chunk); + } + } + } + } catch (err) { + _didIteratorError3 = true; + _iteratorError3 = err; + } finally { + try { + if (!_iteratorNormalCompletion3 && _iterator3.return != null) { + _iterator3.return(); + } + } finally { + if (_didIteratorError3) { + throw _iteratorError3; + } + } + } + + chunksToRequest.sort(function (a, b) { + return a - b; + }); + return this._requestChunks(chunksToRequest); + } + }, { + key: "groupChunks", + value: function groupChunks(chunks) { + var groupedChunks = []; + var beginChunk = -1; + var prevChunk = -1; + + for (var i = 0, ii = chunks.length; i < ii; ++i) { + var chunk = chunks[i]; + + if (beginChunk < 0) { + beginChunk = chunk; + } + + if (prevChunk >= 0 && prevChunk + 1 !== chunk) { + groupedChunks.push({ + beginChunk: beginChunk, + endChunk: prevChunk + 1 + }); + beginChunk = chunk; + } + + if (i + 1 === chunks.length) { + groupedChunks.push({ + beginChunk: beginChunk, + endChunk: chunk + 1 + }); + } + + prevChunk = chunk; + } + + return groupedChunks; + } + }, { + key: "onProgress", + value: function onProgress(args) { + this.msgHandler.send('DocProgress', { + loaded: this.stream.numChunksLoaded * this.chunkSize + args.loaded, + total: this.length + }); + } + }, { + key: "onReceiveData", + value: function onReceiveData(args) { + var chunk = args.chunk; + var isProgressive = args.begin === undefined; + var begin = isProgressive ? this.progressiveDataLength : args.begin; + var end = begin + chunk.byteLength; + var beginChunk = Math.floor(begin / this.chunkSize); + var endChunk = end < this.length ? Math.floor(end / this.chunkSize) : Math.ceil(end / this.chunkSize); + + if (isProgressive) { + this.stream.onReceiveProgressiveData(chunk); + this.progressiveDataLength = end; + } else { + this.stream.onReceiveData(begin, chunk); + } + + if (this.stream.allChunksLoaded()) { + this._loadedStreamCapability.resolve(this.stream); + } + + var loadedRequests = []; + + for (var _chunk2 = beginChunk; _chunk2 < endChunk; ++_chunk2) { + var requestIds = this.requestsByChunk[_chunk2] || []; + delete this.requestsByChunk[_chunk2]; + var _iteratorNormalCompletion4 = true; + var _didIteratorError4 = false; + var _iteratorError4 = undefined; + + try { + for (var _iterator4 = requestIds[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { + var requestId = _step4.value; + var chunksNeeded = this.chunksNeededByRequest[requestId]; + + if (_chunk2 in chunksNeeded) { + delete chunksNeeded[_chunk2]; + } + + if (!(0, _util.isEmptyObj)(chunksNeeded)) { + continue; + } + + loadedRequests.push(requestId); + } + } catch (err) { + _didIteratorError4 = true; + _iteratorError4 = err; + } finally { + try { + if (!_iteratorNormalCompletion4 && _iterator4.return != null) { + _iterator4.return(); + } + } finally { + if (_didIteratorError4) { + throw _iteratorError4; + } + } + } + } + + if (!this.disableAutoFetch && (0, _util.isEmptyObj)(this.requestsByChunk)) { + var nextEmptyChunk; + + if (this.stream.numChunksLoaded === 1) { + var lastChunk = this.stream.numChunks - 1; + + if (!this.stream.hasChunk(lastChunk)) { + nextEmptyChunk = lastChunk; + } + } else { + nextEmptyChunk = this.stream.nextEmptyChunk(endChunk); + } + + if (Number.isInteger(nextEmptyChunk)) { + this._requestChunks([nextEmptyChunk]); + } + } + + for (var _i = 0; _i < loadedRequests.length; _i++) { + var _requestId = loadedRequests[_i]; + var capability = this.promisesByRequest[_requestId]; + delete this.promisesByRequest[_requestId]; + capability.resolve(); + } + + this.msgHandler.send('DocProgress', { + loaded: this.stream.numChunksLoaded * this.chunkSize, + total: this.length + }); + } + }, { + key: "onError", + value: function onError(err) { + this._loadedStreamCapability.reject(err); + } + }, { + key: "getBeginChunk", + value: function getBeginChunk(begin) { + return Math.floor(begin / this.chunkSize); + } + }, { + key: "getEndChunk", + value: function getEndChunk(end) { + return Math.floor((end - 1) / this.chunkSize) + 1; + } + }, { + key: "abort", + value: function abort() { + this.aborted = true; + + if (this.pdfNetworkStream) { + this.pdfNetworkStream.cancelAllRequests('abort'); + } + + for (var requestId in this.promisesByRequest) { + this.promisesByRequest[requestId].reject(new Error('Request was aborted')); + } + } + }]); + + return ChunkedStreamManager; +}(); + +exports.ChunkedStreamManager = ChunkedStreamManager; + +/***/ }), +/* 153 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFDocument = exports.Page = void 0; + +var _util = __w_pdfjs_require__(6); + +var _obj = __w_pdfjs_require__(154); + +var _primitives = __w_pdfjs_require__(155); + +var _stream2 = __w_pdfjs_require__(157); + +var _annotation = __w_pdfjs_require__(169); + +var _crypto = __w_pdfjs_require__(167); + +var _parser = __w_pdfjs_require__(156); + +var _operator_list = __w_pdfjs_require__(170); + +var _evaluator = __w_pdfjs_require__(171); + +var _function = __w_pdfjs_require__(185); + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } + +function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var DEFAULT_USER_UNIT = 1.0; +var LETTER_SIZE_MEDIABOX = [0, 0, 612, 792]; + +function isAnnotationRenderable(annotation, intent) { + return intent === 'display' && annotation.viewable || intent === 'print' && annotation.printable; +} + +var Page = +/*#__PURE__*/ +function () { + function Page(_ref) { + var pdfManager = _ref.pdfManager, + xref = _ref.xref, + pageIndex = _ref.pageIndex, + pageDict = _ref.pageDict, + ref = _ref.ref, + fontCache = _ref.fontCache, + builtInCMapCache = _ref.builtInCMapCache, + pdfFunctionFactory = _ref.pdfFunctionFactory; + + _classCallCheck(this, Page); + + this.pdfManager = pdfManager; + this.pageIndex = pageIndex; + this.pageDict = pageDict; + this.xref = xref; + this.ref = ref; + this.fontCache = fontCache; + this.builtInCMapCache = builtInCMapCache; + this.pdfFunctionFactory = pdfFunctionFactory; + this.evaluatorOptions = pdfManager.evaluatorOptions; + this.resourcesPromise = null; + var uniquePrefix = "p".concat(this.pageIndex, "_"); + var idCounters = { + obj: 0 + }; + this.idFactory = { + createObjId: function createObjId() { + return uniquePrefix + ++idCounters.obj; + } + }; + } + + _createClass(Page, [{ + key: "_getInheritableProperty", + value: function _getInheritableProperty(key) { + var getArray = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var value = (0, _util.getInheritableProperty)({ + dict: this.pageDict, + key: key, + getArray: getArray, + stopWhenFound: false + }); + + if (!Array.isArray(value)) { + return value; + } + + if (value.length === 1 || !(0, _primitives.isDict)(value[0])) { + return value[0]; + } + + return _primitives.Dict.merge(this.xref, value); + } + }, { + key: "getContentStream", + value: function getContentStream() { + var content = this.content; + var stream; + + if (Array.isArray(content)) { + var xref = this.xref; + var streams = []; + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = content[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var _stream = _step.value; + streams.push(xref.fetchIfRef(_stream)); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + stream = new _stream2.StreamsSequenceStream(streams); + } else if ((0, _primitives.isStream)(content)) { + stream = content; + } else { + stream = new _stream2.NullStream(); + } + + return stream; + } + }, { + key: "loadResources", + value: function loadResources(keys) { + var _this = this; + + if (!this.resourcesPromise) { + this.resourcesPromise = this.pdfManager.ensure(this, 'resources'); + } + + return this.resourcesPromise.then(function () { + var objectLoader = new _obj.ObjectLoader(_this.resources, keys, _this.xref); + return objectLoader.load(); + }); + } + }, { + key: "getOperatorList", + value: function getOperatorList(_ref2) { + var _this2 = this; + + var handler = _ref2.handler, + task = _ref2.task, + intent = _ref2.intent, + renderInteractiveForms = _ref2.renderInteractiveForms; + var contentStreamPromise = this.pdfManager.ensure(this, 'getContentStream'); + var resourcesPromise = this.loadResources(['ExtGState', 'ColorSpace', 'Pattern', 'Shading', 'XObject', 'Font']); + var partialEvaluator = new _evaluator.PartialEvaluator({ + pdfManager: this.pdfManager, + xref: this.xref, + handler: handler, + pageIndex: this.pageIndex, + idFactory: this.idFactory, + fontCache: this.fontCache, + builtInCMapCache: this.builtInCMapCache, + options: this.evaluatorOptions, + pdfFunctionFactory: this.pdfFunctionFactory + }); + var dataPromises = Promise.all([contentStreamPromise, resourcesPromise]); + var pageListPromise = dataPromises.then(function (_ref3) { + var _ref4 = _slicedToArray(_ref3, 1), + contentStream = _ref4[0]; + + var opList = new _operator_list.OperatorList(intent, handler, _this2.pageIndex); + handler.send('StartRenderPage', { + transparency: partialEvaluator.hasBlendModes(_this2.resources), + pageIndex: _this2.pageIndex, + intent: intent + }); + return partialEvaluator.getOperatorList({ + stream: contentStream, + task: task, + resources: _this2.resources, + operatorList: opList + }).then(function () { + return opList; + }); + }); + return Promise.all([pageListPromise, this._parsedAnnotations]).then(function (_ref5) { + var _ref6 = _slicedToArray(_ref5, 2), + pageOpList = _ref6[0], + annotations = _ref6[1]; + + if (annotations.length === 0) { + pageOpList.flush(true); + return pageOpList; + } + + var opListPromises = []; + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = annotations[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var annotation = _step2.value; + + if (isAnnotationRenderable(annotation, intent)) { + opListPromises.push(annotation.getOperatorList(partialEvaluator, task, renderInteractiveForms)); + } + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return != null) { + _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + + return Promise.all(opListPromises).then(function (opLists) { + pageOpList.addOp(_util.OPS.beginAnnotations, []); + var _iteratorNormalCompletion3 = true; + var _didIteratorError3 = false; + var _iteratorError3 = undefined; + + try { + for (var _iterator3 = opLists[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { + var opList = _step3.value; + pageOpList.addOpList(opList); + } + } catch (err) { + _didIteratorError3 = true; + _iteratorError3 = err; + } finally { + try { + if (!_iteratorNormalCompletion3 && _iterator3.return != null) { + _iterator3.return(); + } + } finally { + if (_didIteratorError3) { + throw _iteratorError3; + } + } + } + + pageOpList.addOp(_util.OPS.endAnnotations, []); + pageOpList.flush(true); + return pageOpList; + }); + }); + } + }, { + key: "extractTextContent", + value: function extractTextContent(_ref7) { + var _this3 = this; + + var handler = _ref7.handler, + task = _ref7.task, + normalizeWhitespace = _ref7.normalizeWhitespace, + sink = _ref7.sink, + combineTextItems = _ref7.combineTextItems; + var contentStreamPromise = this.pdfManager.ensure(this, 'getContentStream'); + var resourcesPromise = this.loadResources(['ExtGState', 'XObject', 'Font']); + var dataPromises = Promise.all([contentStreamPromise, resourcesPromise]); + return dataPromises.then(function (_ref8) { + var _ref9 = _slicedToArray(_ref8, 1), + contentStream = _ref9[0]; + + var partialEvaluator = new _evaluator.PartialEvaluator({ + pdfManager: _this3.pdfManager, + xref: _this3.xref, + handler: handler, + pageIndex: _this3.pageIndex, + idFactory: _this3.idFactory, + fontCache: _this3.fontCache, + builtInCMapCache: _this3.builtInCMapCache, + options: _this3.evaluatorOptions, + pdfFunctionFactory: _this3.pdfFunctionFactory + }); + return partialEvaluator.getTextContent({ + stream: contentStream, + task: task, + resources: _this3.resources, + normalizeWhitespace: normalizeWhitespace, + combineTextItems: combineTextItems, + sink: sink + }); + }); + } + }, { + key: "getAnnotationsData", + value: function getAnnotationsData(intent) { + return this._parsedAnnotations.then(function (annotations) { + var annotationsData = []; + + for (var i = 0, ii = annotations.length; i < ii; i++) { + if (!intent || isAnnotationRenderable(annotations[i], intent)) { + annotationsData.push(annotations[i].data); + } + } + + return annotationsData; + }); + } + }, { + key: "content", + get: function get() { + return this.pageDict.get('Contents'); + } + }, { + key: "resources", + get: function get() { + return (0, _util.shadow)(this, 'resources', this._getInheritableProperty('Resources') || _primitives.Dict.empty); + } + }, { + key: "mediaBox", + get: function get() { + var mediaBox = this._getInheritableProperty('MediaBox', true); + + if (!Array.isArray(mediaBox) || mediaBox.length !== 4) { + return (0, _util.shadow)(this, 'mediaBox', LETTER_SIZE_MEDIABOX); + } + + return (0, _util.shadow)(this, 'mediaBox', mediaBox); + } + }, { + key: "cropBox", + get: function get() { + var cropBox = this._getInheritableProperty('CropBox', true); + + if (!Array.isArray(cropBox) || cropBox.length !== 4) { + return (0, _util.shadow)(this, 'cropBox', this.mediaBox); + } + + return (0, _util.shadow)(this, 'cropBox', cropBox); + } + }, { + key: "userUnit", + get: function get() { + var obj = this.pageDict.get('UserUnit'); + + if (!(0, _util.isNum)(obj) || obj <= 0) { + obj = DEFAULT_USER_UNIT; + } + + return (0, _util.shadow)(this, 'userUnit', obj); + } + }, { + key: "view", + get: function get() { + var mediaBox = this.mediaBox, + cropBox = this.cropBox; + + if (mediaBox === cropBox) { + return (0, _util.shadow)(this, 'view', mediaBox); + } + + var intersection = _util.Util.intersect(cropBox, mediaBox); + + return (0, _util.shadow)(this, 'view', intersection || mediaBox); + } + }, { + key: "rotate", + get: function get() { + var rotate = this._getInheritableProperty('Rotate') || 0; + + if (rotate % 90 !== 0) { + rotate = 0; + } else if (rotate >= 360) { + rotate = rotate % 360; + } else if (rotate < 0) { + rotate = (rotate % 360 + 360) % 360; + } + + return (0, _util.shadow)(this, 'rotate', rotate); + } + }, { + key: "annotations", + get: function get() { + return (0, _util.shadow)(this, 'annotations', this._getInheritableProperty('Annots') || []); + } + }, { + key: "_parsedAnnotations", + get: function get() { + var _this4 = this; + + var parsedAnnotations = this.pdfManager.ensure(this, 'annotations').then(function () { + var annotationRefs = _this4.annotations; + var annotationPromises = []; + + for (var i = 0, ii = annotationRefs.length; i < ii; i++) { + annotationPromises.push(_annotation.AnnotationFactory.create(_this4.xref, annotationRefs[i], _this4.pdfManager, _this4.idFactory)); + } + + return Promise.all(annotationPromises).then(function (annotations) { + return annotations.filter(function isDefined(annotation) { + return !!annotation; + }); + }, function (reason) { + (0, _util.warn)("_parsedAnnotations: \"".concat(reason, "\".")); + return []; + }); + }); + return (0, _util.shadow)(this, '_parsedAnnotations', parsedAnnotations); + } + }]); + + return Page; +}(); + +exports.Page = Page; +var FINGERPRINT_FIRST_BYTES = 1024; +var EMPTY_FINGERPRINT = '\x00\x00\x00\x00\x00\x00\x00' + '\x00\x00\x00\x00\x00\x00\x00\x00\x00'; + +function find(stream, needle, limit, backwards) { + var pos = stream.pos; + var end = stream.end; + + if (pos + limit > end) { + limit = end - pos; + } + + var strBuf = []; + + for (var i = 0; i < limit; ++i) { + strBuf.push(String.fromCharCode(stream.getByte())); + } + + var str = strBuf.join(''); + stream.pos = pos; + var index = backwards ? str.lastIndexOf(needle) : str.indexOf(needle); + + if (index === -1) { + return false; + } + + stream.pos += index; + return true; +} + +var PDFDocument = +/*#__PURE__*/ +function () { + function PDFDocument(pdfManager, arg) { + _classCallCheck(this, PDFDocument); + + var stream; + + if ((0, _primitives.isStream)(arg)) { + stream = arg; + } else if ((0, _util.isArrayBuffer)(arg)) { + stream = new _stream2.Stream(arg); + } else { + throw new Error('PDFDocument: Unknown argument type'); + } + + if (stream.length <= 0) { + throw new Error('PDFDocument: Stream must have data'); + } + + this.pdfManager = pdfManager; + this.stream = stream; + this.xref = new _obj.XRef(stream, pdfManager); + this.pdfFunctionFactory = new _function.PDFFunctionFactory({ + xref: this.xref, + isEvalSupported: pdfManager.evaluatorOptions.isEvalSupported + }); + this._pagePromises = []; + } + + _createClass(PDFDocument, [{ + key: "parse", + value: function parse(recoveryMode) { + this.setup(recoveryMode); + var version = this.catalog.catDict.get('Version'); + + if ((0, _primitives.isName)(version)) { + this.pdfFormatVersion = version.name; + } + + try { + this.acroForm = this.catalog.catDict.get('AcroForm'); + + if (this.acroForm) { + this.xfa = this.acroForm.get('XFA'); + var fields = this.acroForm.get('Fields'); + + if ((!fields || !Array.isArray(fields) || fields.length === 0) && !this.xfa) { + this.acroForm = null; + } + } + } catch (ex) { + if (ex instanceof _util.MissingDataException) { + throw ex; + } + + (0, _util.info)('Cannot fetch AcroForm entry; assuming no AcroForms are present'); + this.acroForm = null; + } + } + }, { + key: "checkHeader", + value: function checkHeader() { + var stream = this.stream; + stream.reset(); + + if (!find(stream, '%PDF-', 1024)) { + return; + } + + stream.moveStart(); + var MAX_PDF_VERSION_LENGTH = 12; + var version = '', + ch; + + while ((ch = stream.getByte()) > 0x20) { + if (version.length >= MAX_PDF_VERSION_LENGTH) { + break; + } + + version += String.fromCharCode(ch); + } + + if (!this.pdfFormatVersion) { + this.pdfFormatVersion = version.substring(5); + } + } + }, { + key: "parseStartXRef", + value: function parseStartXRef() { + this.xref.setStartXRef(this.startXRef); + } + }, { + key: "setup", + value: function setup(recoveryMode) { + this.xref.parse(recoveryMode); + this.catalog = new _obj.Catalog(this.pdfManager, this.xref); + } + }, { + key: "_getLinearizationPage", + value: function _getLinearizationPage(pageIndex) { + var catalog = this.catalog, + linearization = this.linearization; + (0, _util.assert)(linearization && linearization.pageFirst === pageIndex); + var ref = new _primitives.Ref(linearization.objectNumberFirst, 0); + return this.xref.fetchAsync(ref).then(function (obj) { + if ((0, _primitives.isDict)(obj, 'Page') || (0, _primitives.isDict)(obj) && !obj.has('Type') && obj.has('Contents')) { + if (ref && !catalog.pageKidsCountCache.has(ref)) { + catalog.pageKidsCountCache.put(ref, 1); + } + + return [obj, ref]; + } + + throw new _util.FormatError('The Linearization dictionary doesn\'t point ' + 'to a valid Page dictionary.'); + }).catch(function (reason) { + (0, _util.info)(reason); + return catalog.getPageDict(pageIndex); + }); + } + }, { + key: "getPage", + value: function getPage(pageIndex) { + var _this5 = this; + + if (this._pagePromises[pageIndex] !== undefined) { + return this._pagePromises[pageIndex]; + } + + var catalog = this.catalog, + linearization = this.linearization; + var promise = linearization && linearization.pageFirst === pageIndex ? this._getLinearizationPage(pageIndex) : catalog.getPageDict(pageIndex); + return this._pagePromises[pageIndex] = promise.then(function (_ref10) { + var _ref11 = _slicedToArray(_ref10, 2), + pageDict = _ref11[0], + ref = _ref11[1]; + + return new Page({ + pdfManager: _this5.pdfManager, + xref: _this5.xref, + pageIndex: pageIndex, + pageDict: pageDict, + ref: ref, + fontCache: catalog.fontCache, + builtInCMapCache: catalog.builtInCMapCache, + pdfFunctionFactory: _this5.pdfFunctionFactory + }); + }); + } + }, { + key: "checkFirstPage", + value: function checkFirstPage() { + var _this6 = this; + + return this.getPage(0).catch(function (reason) { + if (reason instanceof _util.XRefEntryException) { + _this6._pagePromises.length = 0; + + _this6.cleanup(); + + throw new _util.XRefParseException(); + } + }); + } + }, { + key: "fontFallback", + value: function fontFallback(id, handler) { + return this.catalog.fontFallback(id, handler); + } + }, { + key: "cleanup", + value: function cleanup() { + return this.catalog.cleanup(); + } + }, { + key: "linearization", + get: function get() { + var linearization = null; + + try { + linearization = _parser.Linearization.create(this.stream); + } catch (err) { + if (err instanceof _util.MissingDataException) { + throw err; + } + + (0, _util.info)(err); + } + + return (0, _util.shadow)(this, 'linearization', linearization); + } + }, { + key: "startXRef", + get: function get() { + var stream = this.stream; + var startXRef = 0; + + if (this.linearization) { + stream.reset(); + + if (find(stream, 'endobj', 1024)) { + startXRef = stream.pos + 6; + } + } else { + var step = 1024; + var startXRefLength = 'startxref'.length; + var found = false, + pos = stream.end; + + while (!found && pos > 0) { + pos -= step - startXRefLength; + + if (pos < 0) { + pos = 0; + } + + stream.pos = pos; + found = find(stream, 'startxref', step, true); + } + + if (found) { + stream.skip(9); + var ch; + + do { + ch = stream.getByte(); + } while ((0, _util.isSpace)(ch)); + + var str = ''; + + while (ch >= 0x20 && ch <= 0x39) { + str += String.fromCharCode(ch); + ch = stream.getByte(); + } + + startXRef = parseInt(str, 10); + + if (isNaN(startXRef)) { + startXRef = 0; + } + } + } + + return (0, _util.shadow)(this, 'startXRef', startXRef); + } + }, { + key: "numPages", + get: function get() { + var linearization = this.linearization; + var num = linearization ? linearization.numPages : this.catalog.numPages; + return (0, _util.shadow)(this, 'numPages', num); + } + }, { + key: "documentInfo", + get: function get() { + var DocumentInfoValidators = { + Title: _util.isString, + Author: _util.isString, + Subject: _util.isString, + Keywords: _util.isString, + Creator: _util.isString, + Producer: _util.isString, + CreationDate: _util.isString, + ModDate: _util.isString, + Trapped: _primitives.isName + }; + var docInfo = { + PDFFormatVersion: this.pdfFormatVersion, + IsLinearized: !!this.linearization, + IsAcroFormPresent: !!this.acroForm, + IsXFAPresent: !!this.xfa + }; + var infoDict; + + try { + infoDict = this.xref.trailer.get('Info'); + } catch (err) { + if (err instanceof _util.MissingDataException) { + throw err; + } + + (0, _util.info)('The document information dictionary is invalid.'); + } + + if ((0, _primitives.isDict)(infoDict)) { + var _iteratorNormalCompletion4 = true; + var _didIteratorError4 = false; + var _iteratorError4 = undefined; + + try { + for (var _iterator4 = infoDict.getKeys()[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { + var key = _step4.value; + var value = infoDict.get(key); + + if (DocumentInfoValidators[key]) { + if (DocumentInfoValidators[key](value)) { + docInfo[key] = typeof value !== 'string' ? value : (0, _util.stringToPDFString)(value); + } else { + (0, _util.info)("Bad value in document info for \"".concat(key, "\".")); + } + } else if (typeof key === 'string') { + var customValue = void 0; + + if ((0, _util.isString)(value)) { + customValue = (0, _util.stringToPDFString)(value); + } else if ((0, _primitives.isName)(value) || (0, _util.isNum)(value) || (0, _util.isBool)(value)) { + customValue = value; + } else { + (0, _util.info)("Unsupported value in document info for (custom) \"".concat(key, "\".")); + continue; + } + + if (!docInfo['Custom']) { + docInfo['Custom'] = Object.create(null); + } + + docInfo['Custom'][key] = customValue; + } + } + } catch (err) { + _didIteratorError4 = true; + _iteratorError4 = err; + } finally { + try { + if (!_iteratorNormalCompletion4 && _iterator4.return != null) { + _iterator4.return(); + } + } finally { + if (_didIteratorError4) { + throw _iteratorError4; + } + } + } + } + + return (0, _util.shadow)(this, 'documentInfo', docInfo); + } + }, { + key: "fingerprint", + get: function get() { + var hash; + var idArray = this.xref.trailer.get('ID'); + + if (Array.isArray(idArray) && idArray[0] && (0, _util.isString)(idArray[0]) && idArray[0] !== EMPTY_FINGERPRINT) { + hash = (0, _util.stringToBytes)(idArray[0]); + } else { + if (this.stream.ensureRange) { + this.stream.ensureRange(0, Math.min(FINGERPRINT_FIRST_BYTES, this.stream.end)); + } + + hash = (0, _crypto.calculateMD5)(this.stream.bytes.subarray(0, FINGERPRINT_FIRST_BYTES), 0, FINGERPRINT_FIRST_BYTES); + } + + var fingerprint = ''; + + for (var i = 0, ii = hash.length; i < ii; i++) { + var hex = hash[i].toString(16); + fingerprint += hex.length === 1 ? '0' + hex : hex; + } + + return (0, _util.shadow)(this, 'fingerprint', fingerprint); + } + }]); + + return PDFDocument; +}(); + +exports.PDFDocument = PDFDocument; + +/***/ }), +/* 154 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.FileSpec = exports.XRef = exports.ObjectLoader = exports.Catalog = void 0; + +var _regenerator = _interopRequireDefault(__w_pdfjs_require__(2)); + +var _util = __w_pdfjs_require__(6); + +var _primitives = __w_pdfjs_require__(155); + +var _parser = __w_pdfjs_require__(156); + +var _chunked_stream = __w_pdfjs_require__(152); + +var _crypto = __w_pdfjs_require__(167); + +var _colorspace = __w_pdfjs_require__(168); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } + +function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function fetchDestination(dest) { + return (0, _primitives.isDict)(dest) ? dest.get('D') : dest; +} + +var Catalog = +/*#__PURE__*/ +function () { + function Catalog(pdfManager, xref) { + _classCallCheck(this, Catalog); + + this.pdfManager = pdfManager; + this.xref = xref; + this.catDict = xref.getCatalogObj(); + + if (!(0, _primitives.isDict)(this.catDict)) { + throw new _util.FormatError('Catalog object is not a dictionary.'); + } + + this.fontCache = new _primitives.RefSetCache(); + this.builtInCMapCache = new Map(); + this.pageKidsCountCache = new _primitives.RefSetCache(); + } + + _createClass(Catalog, [{ + key: "_readDocumentOutline", + value: function _readDocumentOutline() { + var obj = this.catDict.get('Outlines'); + + if (!(0, _primitives.isDict)(obj)) { + return null; + } + + obj = obj.getRaw('First'); + + if (!(0, _primitives.isRef)(obj)) { + return null; + } + + var root = { + items: [] + }; + var queue = [{ + obj: obj, + parent: root + }]; + var processed = new _primitives.RefSet(); + processed.put(obj); + var xref = this.xref, + blackColor = new Uint8ClampedArray(3); + + while (queue.length > 0) { + var i = queue.shift(); + var outlineDict = xref.fetchIfRef(i.obj); + + if (outlineDict === null) { + continue; + } + + if (!outlineDict.has('Title')) { + throw new _util.FormatError('Invalid outline item encountered.'); + } + + var data = { + url: null, + dest: null + }; + Catalog.parseDestDictionary({ + destDict: outlineDict, + resultObj: data, + docBaseUrl: this.pdfManager.docBaseUrl + }); + var title = outlineDict.get('Title'); + var flags = outlineDict.get('F') || 0; + var color = outlineDict.getArray('C'); + var rgbColor = blackColor; + + if (Array.isArray(color) && color.length === 3 && (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)) { + rgbColor = _colorspace.ColorSpace.singletons.rgb.getRgb(color, 0); + } + + var outlineItem = { + dest: data.dest, + url: data.url, + unsafeUrl: data.unsafeUrl, + newWindow: data.newWindow, + title: (0, _util.stringToPDFString)(title), + color: rgbColor, + count: outlineDict.get('Count'), + bold: !!(flags & 2), + italic: !!(flags & 1), + items: [] + }; + i.parent.items.push(outlineItem); + obj = outlineDict.getRaw('First'); + + if ((0, _primitives.isRef)(obj) && !processed.has(obj)) { + queue.push({ + obj: obj, + parent: outlineItem + }); + processed.put(obj); + } + + obj = outlineDict.getRaw('Next'); + + if ((0, _primitives.isRef)(obj) && !processed.has(obj)) { + queue.push({ + obj: obj, + parent: i.parent + }); + processed.put(obj); + } + } + + return root.items.length > 0 ? root.items : null; + } + }, { + key: "_readPermissions", + value: function _readPermissions() { + var encrypt = this.xref.trailer.get('Encrypt'); + + if (!(0, _primitives.isDict)(encrypt)) { + return null; + } + + var flags = encrypt.get('P'); + + if (!(0, _util.isNum)(flags)) { + return null; + } + + flags += Math.pow(2, 32); + var permissions = []; + + for (var key in _util.PermissionFlag) { + var value = _util.PermissionFlag[key]; + + if (flags & value) { + permissions.push(value); + } + } + + return permissions; + } + }, { + key: "getDestination", + value: function getDestination(destinationId) { + var obj = this._readDests(); + + if (obj instanceof NameTree || obj instanceof _primitives.Dict) { + return fetchDestination(obj.get(destinationId) || null); + } + + return null; + } + }, { + key: "_readDests", + value: function _readDests() { + var obj = this.catDict.get('Names'); + + if (obj && obj.has('Dests')) { + return new NameTree(obj.getRaw('Dests'), this.xref); + } else if (this.catDict.has('Dests')) { + return this.catDict.get('Dests'); + } + } + }, { + key: "_readPageLabels", + value: function _readPageLabels() { + var obj = this.catDict.getRaw('PageLabels'); + + if (!obj) { + return null; + } + + var pageLabels = new Array(this.numPages); + var style = null, + prefix = ''; + var numberTree = new NumberTree(obj, this.xref); + var nums = numberTree.getAll(); + var currentLabel = '', + currentIndex = 1; + + for (var i = 0, ii = this.numPages; i < ii; i++) { + if (i in nums) { + var labelDict = nums[i]; + + if (!(0, _primitives.isDict)(labelDict)) { + throw new _util.FormatError('PageLabel is not a dictionary.'); + } + + if (labelDict.has('Type') && !(0, _primitives.isName)(labelDict.get('Type'), 'PageLabel')) { + throw new _util.FormatError('Invalid type in PageLabel dictionary.'); + } + + if (labelDict.has('S')) { + var s = labelDict.get('S'); + + if (!(0, _primitives.isName)(s)) { + throw new _util.FormatError('Invalid style in PageLabel dictionary.'); + } + + style = s.name; + } else { + style = null; + } + + if (labelDict.has('P')) { + var p = labelDict.get('P'); + + if (!(0, _util.isString)(p)) { + throw new _util.FormatError('Invalid prefix in PageLabel dictionary.'); + } + + prefix = (0, _util.stringToPDFString)(p); + } else { + prefix = ''; + } + + if (labelDict.has('St')) { + var st = labelDict.get('St'); + + if (!(Number.isInteger(st) && st >= 1)) { + throw new _util.FormatError('Invalid start in PageLabel dictionary.'); + } + + currentIndex = st; + } else { + currentIndex = 1; + } + } + + switch (style) { + case 'D': + currentLabel = currentIndex; + break; + + case 'R': + case 'r': + currentLabel = (0, _util.toRomanNumerals)(currentIndex, style === 'r'); + break; + + case 'A': + case 'a': + var LIMIT = 26; + var A_UPPER_CASE = 0x41, + A_LOWER_CASE = 0x61; + var baseCharCode = style === 'a' ? A_LOWER_CASE : A_UPPER_CASE; + var letterIndex = currentIndex - 1; + var character = String.fromCharCode(baseCharCode + letterIndex % LIMIT); + var charBuf = []; + + for (var j = 0, jj = letterIndex / LIMIT | 0; j <= jj; j++) { + charBuf.push(character); + } + + currentLabel = charBuf.join(''); + break; + + default: + if (style) { + throw new _util.FormatError("Invalid style \"".concat(style, "\" in PageLabel dictionary.")); + } + + currentLabel = ''; + } + + pageLabels[i] = prefix + currentLabel; + currentIndex++; + } + + return pageLabels; + } + }, { + key: "fontFallback", + value: function fontFallback(id, handler) { + var promises = []; + this.fontCache.forEach(function (promise) { + promises.push(promise); + }); + return Promise.all(promises).then(function (translatedFonts) { + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = translatedFonts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var translatedFont = _step.value; + + if (translatedFont.loadedName === id) { + translatedFont.fallback(handler); + return; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + }); + } + }, { + key: "cleanup", + value: function cleanup() { + var _this = this; + + this.pageKidsCountCache.clear(); + var promises = []; + this.fontCache.forEach(function (promise) { + promises.push(promise); + }); + return Promise.all(promises).then(function (translatedFonts) { + for (var i = 0, ii = translatedFonts.length; i < ii; i++) { + var font = translatedFonts[i].dict; + delete font.translated; + } + + _this.fontCache.clear(); + + _this.builtInCMapCache.clear(); + }); + } + }, { + key: "getPageDict", + value: function getPageDict(pageIndex) { + var capability = (0, _util.createPromiseCapability)(); + var nodesToVisit = [this.catDict.getRaw('Pages')]; + var xref = this.xref, + pageKidsCountCache = this.pageKidsCountCache; + var count, + currentPageIndex = 0; + + function next() { + var _loop = function _loop() { + var currentNode = nodesToVisit.pop(); + + if ((0, _primitives.isRef)(currentNode)) { + count = pageKidsCountCache.get(currentNode); + + if (count > 0 && currentPageIndex + count < pageIndex) { + currentPageIndex += count; + return "continue"; + } + + xref.fetchAsync(currentNode).then(function (obj) { + if ((0, _primitives.isDict)(obj, 'Page') || (0, _primitives.isDict)(obj) && !obj.has('Kids')) { + if (pageIndex === currentPageIndex) { + if (currentNode && !pageKidsCountCache.has(currentNode)) { + pageKidsCountCache.put(currentNode, 1); + } + + capability.resolve([obj, currentNode]); + } else { + currentPageIndex++; + next(); + } + + return; + } + + nodesToVisit.push(obj); + next(); + }, capability.reject); + return { + v: void 0 + }; + } + + if (!(0, _primitives.isDict)(currentNode)) { + capability.reject(new _util.FormatError('Page dictionary kid reference points to wrong type of object.')); + return { + v: void 0 + }; + } + + count = currentNode.get('Count'); + + if (Number.isInteger(count) && count >= 0) { + var objId = currentNode.objId; + + if (objId && !pageKidsCountCache.has(objId)) { + pageKidsCountCache.put(objId, count); + } + + if (currentPageIndex + count <= pageIndex) { + currentPageIndex += count; + return "continue"; + } + } + + var kids = currentNode.get('Kids'); + + if (!Array.isArray(kids)) { + if ((0, _primitives.isName)(currentNode.get('Type'), 'Page') || !currentNode.has('Type') && currentNode.has('Contents')) { + if (currentPageIndex === pageIndex) { + capability.resolve([currentNode, null]); + return { + v: void 0 + }; + } + + currentPageIndex++; + return "continue"; + } + + capability.reject(new _util.FormatError('Page dictionary kids object is not an array.')); + return { + v: void 0 + }; + } + + for (var last = kids.length - 1; last >= 0; last--) { + nodesToVisit.push(kids[last]); + } + }; + + while (nodesToVisit.length) { + var _ret = _loop(); + + switch (_ret) { + case "continue": + continue; + + default: + if (_typeof(_ret) === "object") return _ret.v; + } + } + + capability.reject(new Error("Page index ".concat(pageIndex, " not found."))); + } + + next(); + return capability.promise; + } + }, { + key: "getPageIndex", + value: function getPageIndex(pageRef) { + var xref = this.xref; + + function pagesBeforeRef(kidRef) { + var total = 0, + parentRef; + return xref.fetchAsync(kidRef).then(function (node) { + if ((0, _primitives.isRefsEqual)(kidRef, pageRef) && !(0, _primitives.isDict)(node, 'Page') && !((0, _primitives.isDict)(node) && !node.has('Type') && node.has('Contents'))) { + throw new _util.FormatError('The reference does not point to a /Page dictionary.'); + } + + if (!node) { + return null; + } + + if (!(0, _primitives.isDict)(node)) { + throw new _util.FormatError('Node must be a dictionary.'); + } + + parentRef = node.getRaw('Parent'); + return node.getAsync('Parent'); + }).then(function (parent) { + if (!parent) { + return null; + } + + if (!(0, _primitives.isDict)(parent)) { + throw new _util.FormatError('Parent must be a dictionary.'); + } + + return parent.getAsync('Kids'); + }).then(function (kids) { + if (!kids) { + return null; + } + + var kidPromises = []; + var found = false; + + for (var i = 0, ii = kids.length; i < ii; i++) { + var kid = kids[i]; + + if (!(0, _primitives.isRef)(kid)) { + throw new _util.FormatError('Kid must be a reference.'); + } + + if ((0, _primitives.isRefsEqual)(kid, kidRef)) { + found = true; + break; + } + + kidPromises.push(xref.fetchAsync(kid).then(function (kid) { + if (!(0, _primitives.isDict)(kid)) { + throw new _util.FormatError('Kid node must be a dictionary.'); + } + + if (kid.has('Count')) { + total += kid.get('Count'); + } else { + total++; + } + })); + } + + if (!found) { + throw new _util.FormatError('Kid reference not found in parent\'s kids.'); + } + + return Promise.all(kidPromises).then(function () { + return [total, parentRef]; + }); + }); + } + + var total = 0; + + function next(ref) { + return pagesBeforeRef(ref).then(function (args) { + if (!args) { + return total; + } + + var _args = _slicedToArray(args, 2), + count = _args[0], + parentRef = _args[1]; + + total += count; + return next(parentRef); + }); + } + + return next(pageRef); + } + }, { + key: "metadata", + get: function get() { + var streamRef = this.catDict.getRaw('Metadata'); + + if (!(0, _primitives.isRef)(streamRef)) { + return (0, _util.shadow)(this, 'metadata', null); + } + + var suppressEncryption = !(this.xref.encrypt && this.xref.encrypt.encryptMetadata); + var stream = this.xref.fetch(streamRef, suppressEncryption); + var metadata; + + if (stream && (0, _primitives.isDict)(stream.dict)) { + var type = stream.dict.get('Type'); + var subtype = stream.dict.get('Subtype'); + + if ((0, _primitives.isName)(type, 'Metadata') && (0, _primitives.isName)(subtype, 'XML')) { + try { + metadata = (0, _util.stringToUTF8String)((0, _util.bytesToString)(stream.getBytes())); + } catch (e) { + if (e instanceof _util.MissingDataException) { + throw e; + } + + (0, _util.info)('Skipping invalid metadata.'); + } + } + } + + return (0, _util.shadow)(this, 'metadata', metadata); + } + }, { + key: "toplevelPagesDict", + get: function get() { + var pagesObj = this.catDict.get('Pages'); + + if (!(0, _primitives.isDict)(pagesObj)) { + throw new _util.FormatError('Invalid top-level pages dictionary.'); + } + + return (0, _util.shadow)(this, 'toplevelPagesDict', pagesObj); + } + }, { + key: "documentOutline", + get: function get() { + var obj = null; + + try { + obj = this._readDocumentOutline(); + } catch (ex) { + if (ex instanceof _util.MissingDataException) { + throw ex; + } + + (0, _util.warn)('Unable to read document outline.'); + } + + return (0, _util.shadow)(this, 'documentOutline', obj); + } + }, { + key: "permissions", + get: function get() { + var permissions = null; + + try { + permissions = this._readPermissions(); + } catch (ex) { + if (ex instanceof _util.MissingDataException) { + throw ex; + } + + (0, _util.warn)('Unable to read permissions.'); + } + + return (0, _util.shadow)(this, 'permissions', permissions); + } + }, { + key: "numPages", + get: function get() { + var obj = this.toplevelPagesDict.get('Count'); + + if (!Number.isInteger(obj)) { + throw new _util.FormatError('Page count in top-level pages dictionary is not an integer.'); + } + + return (0, _util.shadow)(this, 'numPages', obj); + } + }, { + key: "destinations", + get: function get() { + var obj = this._readDests(), + dests = Object.create(null); + + if (obj instanceof NameTree) { + var names = obj.getAll(); + + for (var name in names) { + dests[name] = fetchDestination(names[name]); + } + } else if (obj instanceof _primitives.Dict) { + obj.forEach(function (key, value) { + if (value) { + dests[key] = fetchDestination(value); + } + }); + } + + return (0, _util.shadow)(this, 'destinations', dests); + } + }, { + key: "pageLabels", + get: function get() { + var obj = null; + + try { + obj = this._readPageLabels(); + } catch (ex) { + if (ex instanceof _util.MissingDataException) { + throw ex; + } + + (0, _util.warn)('Unable to read page labels.'); + } + + return (0, _util.shadow)(this, 'pageLabels', obj); + } + }, { + key: "pageMode", + get: function get() { + var obj = this.catDict.get('PageMode'); + var pageMode = 'UseNone'; + + if ((0, _primitives.isName)(obj)) { + switch (obj.name) { + case 'UseNone': + case 'UseOutlines': + case 'UseThumbs': + case 'FullScreen': + case 'UseOC': + case 'UseAttachments': + pageMode = obj.name; + } + } + + return (0, _util.shadow)(this, 'pageMode', pageMode); + } + }, { + key: "openActionDestination", + get: function get() { + var obj = this.catDict.get('OpenAction'); + var openActionDest = null; + + if ((0, _primitives.isDict)(obj)) { + var destDict = new _primitives.Dict(this.xref); + destDict.set('A', obj); + var resultObj = { + url: null, + dest: null + }; + Catalog.parseDestDictionary({ + destDict: destDict, + resultObj: resultObj + }); + + if (Array.isArray(resultObj.dest)) { + openActionDest = resultObj.dest; + } + } else if (Array.isArray(obj)) { + openActionDest = obj; + } + + return (0, _util.shadow)(this, 'openActionDestination', openActionDest); + } + }, { + key: "attachments", + get: function get() { + var obj = this.catDict.get('Names'); + var attachments = null; + + if (obj && obj.has('EmbeddedFiles')) { + var nameTree = new NameTree(obj.getRaw('EmbeddedFiles'), this.xref); + var names = nameTree.getAll(); + + for (var name in names) { + var fs = new FileSpec(names[name], this.xref); + + if (!attachments) { + attachments = Object.create(null); + } + + attachments[(0, _util.stringToPDFString)(name)] = fs.serializable; + } + } + + return (0, _util.shadow)(this, 'attachments', attachments); + } + }, { + key: "javaScript", + get: function get() { + var obj = this.catDict.get('Names'); + var javaScript = null; + + function appendIfJavaScriptDict(jsDict) { + var type = jsDict.get('S'); + + if (!(0, _primitives.isName)(type, 'JavaScript')) { + return; + } + + var js = jsDict.get('JS'); + + if ((0, _primitives.isStream)(js)) { + js = (0, _util.bytesToString)(js.getBytes()); + } else if (!(0, _util.isString)(js)) { + return; + } + + if (!javaScript) { + javaScript = []; + } + + javaScript.push((0, _util.stringToPDFString)(js)); + } + + if (obj && obj.has('JavaScript')) { + var nameTree = new NameTree(obj.getRaw('JavaScript'), this.xref); + var names = nameTree.getAll(); + + for (var name in names) { + var jsDict = names[name]; + + if ((0, _primitives.isDict)(jsDict)) { + appendIfJavaScriptDict(jsDict); + } + } + } + + var openActionDict = this.catDict.get('OpenAction'); + + if ((0, _primitives.isDict)(openActionDict, 'Action')) { + var actionType = openActionDict.get('S'); + + if ((0, _primitives.isName)(actionType, 'Named')) { + var action = openActionDict.get('N'); + + if ((0, _primitives.isName)(action, 'Print')) { + if (!javaScript) { + javaScript = []; + } + + javaScript.push('print({});'); + } + } else { + appendIfJavaScriptDict(openActionDict); + } + } + + return (0, _util.shadow)(this, 'javaScript', javaScript); + } + }], [{ + key: "parseDestDictionary", + value: function parseDestDictionary(params) { + function addDefaultProtocolToUrl(url) { + return url.startsWith('www.') ? "http://".concat(url) : url; + } + + function tryConvertUrlEncoding(url) { + try { + return (0, _util.stringToUTF8String)(url); + } catch (e) { + return url; + } + } + + var destDict = params.destDict; + + if (!(0, _primitives.isDict)(destDict)) { + (0, _util.warn)('parseDestDictionary: `destDict` must be a dictionary.'); + return; + } + + var resultObj = params.resultObj; + + if (_typeof(resultObj) !== 'object') { + (0, _util.warn)('parseDestDictionary: `resultObj` must be an object.'); + return; + } + + var docBaseUrl = params.docBaseUrl || null; + var action = destDict.get('A'), + url, + dest; + + if (!(0, _primitives.isDict)(action) && destDict.has('Dest')) { + action = destDict.get('Dest'); + } + + if ((0, _primitives.isDict)(action)) { + var actionType = action.get('S'); + + if (!(0, _primitives.isName)(actionType)) { + (0, _util.warn)('parseDestDictionary: Invalid type in Action dictionary.'); + return; + } + + var actionName = actionType.name; + + switch (actionName) { + case 'URI': + url = action.get('URI'); + + if ((0, _primitives.isName)(url)) { + url = '/' + url.name; + } else if ((0, _util.isString)(url)) { + url = addDefaultProtocolToUrl(url); + } + + break; + + case 'GoTo': + dest = action.get('D'); + break; + + case 'Launch': + case 'GoToR': + var urlDict = action.get('F'); + + if ((0, _primitives.isDict)(urlDict)) { + url = urlDict.get('F') || null; + } else if ((0, _util.isString)(urlDict)) { + url = urlDict; + } + + var remoteDest = action.get('D'); + + if (remoteDest) { + if ((0, _primitives.isName)(remoteDest)) { + remoteDest = remoteDest.name; + } + + if ((0, _util.isString)(url)) { + var baseUrl = url.split('#')[0]; + + if ((0, _util.isString)(remoteDest)) { + url = baseUrl + '#' + remoteDest; + } else if (Array.isArray(remoteDest)) { + url = baseUrl + '#' + JSON.stringify(remoteDest); + } + } + } + + var newWindow = action.get('NewWindow'); + + if ((0, _util.isBool)(newWindow)) { + resultObj.newWindow = newWindow; + } + + break; + + case 'Named': + var namedAction = action.get('N'); + + if ((0, _primitives.isName)(namedAction)) { + resultObj.action = namedAction.name; + } + + break; + + case 'JavaScript': + var jsAction = action.get('JS'); + var js; + + if ((0, _primitives.isStream)(jsAction)) { + js = (0, _util.bytesToString)(jsAction.getBytes()); + } else if ((0, _util.isString)(jsAction)) { + js = jsAction; + } + + if (js) { + var URL_OPEN_METHODS = ['app.launchURL', 'window.open']; + var regex = new RegExp('^\\s*(' + URL_OPEN_METHODS.join('|').split('.').join('\\.') + ')\\((?:\'|\")([^\'\"]*)(?:\'|\")(?:,\\s*(\\w+)\\)|\\))', 'i'); + var jsUrl = regex.exec((0, _util.stringToPDFString)(js)); + + if (jsUrl && jsUrl[2]) { + url = jsUrl[2]; + + if (jsUrl[3] === 'true' && jsUrl[1] === 'app.launchURL') { + resultObj.newWindow = true; + } + + break; + } + } + + default: + (0, _util.warn)("parseDestDictionary: unsupported action type \"".concat(actionName, "\".")); + break; + } + } else if (destDict.has('Dest')) { + dest = destDict.get('Dest'); + } + + if ((0, _util.isString)(url)) { + url = tryConvertUrlEncoding(url); + var absoluteUrl = (0, _util.createValidAbsoluteUrl)(url, docBaseUrl); + + if (absoluteUrl) { + resultObj.url = absoluteUrl.href; + } + + resultObj.unsafeUrl = url; + } + + if (dest) { + if ((0, _primitives.isName)(dest)) { + dest = dest.name; + } + + if ((0, _util.isString)(dest) || Array.isArray(dest)) { + resultObj.dest = dest; + } + } + } + }]); + + return Catalog; +}(); + +exports.Catalog = Catalog; + +var XRef = function XRefClosure() { + function XRef(stream, pdfManager) { + this.stream = stream; + this.pdfManager = pdfManager; + this.entries = []; + this.xrefstms = Object.create(null); + this.cache = []; + this.stats = { + streamTypes: [], + fontTypes: [] + }; + } + + XRef.prototype = { + setStartXRef: function XRef_setStartXRef(startXRef) { + this.startXRefQueue = [startXRef]; + }, + parse: function XRef_parse(recoveryMode) { + var trailerDict; + + if (!recoveryMode) { + trailerDict = this.readXRef(); + } else { + (0, _util.warn)('Indexing all PDF objects'); + trailerDict = this.indexObjects(); + } + + trailerDict.assignXref(this); + this.trailer = trailerDict; + var encrypt; + + try { + encrypt = trailerDict.get('Encrypt'); + } catch (ex) { + if (ex instanceof _util.MissingDataException) { + throw ex; + } + + (0, _util.warn)("XRef.parse - Invalid \"Encrypt\" reference: \"".concat(ex, "\".")); + } + + if ((0, _primitives.isDict)(encrypt)) { + var ids = trailerDict.get('ID'); + var fileId = ids && ids.length ? ids[0] : ''; + encrypt.suppressEncryption = true; + this.encrypt = new _crypto.CipherTransformFactory(encrypt, fileId, this.pdfManager.password); + } + + var root; + + try { + root = trailerDict.get('Root'); + } catch (ex) { + if (ex instanceof _util.MissingDataException) { + throw ex; + } + + (0, _util.warn)("XRef.parse - Invalid \"Root\" reference: \"".concat(ex, "\".")); + } + + if ((0, _primitives.isDict)(root) && root.has('Pages')) { + this.root = root; + } else { + if (!recoveryMode) { + throw new _util.XRefParseException(); + } + + throw new _util.FormatError('Invalid root reference'); + } + }, + processXRefTable: function XRef_processXRefTable(parser) { + if (!('tableState' in this)) { + this.tableState = { + entryNum: 0, + streamPos: parser.lexer.stream.pos, + parserBuf1: parser.buf1, + parserBuf2: parser.buf2 + }; + } + + var obj = this.readXRefTable(parser); + + if (!(0, _primitives.isCmd)(obj, 'trailer')) { + throw new _util.FormatError('Invalid XRef table: could not find trailer dictionary'); + } + + var dict = parser.getObj(); + + if (!(0, _primitives.isDict)(dict) && dict.dict) { + dict = dict.dict; + } + + if (!(0, _primitives.isDict)(dict)) { + throw new _util.FormatError('Invalid XRef table: could not parse trailer dictionary'); + } + + delete this.tableState; + return dict; + }, + readXRefTable: function XRef_readXRefTable(parser) { + var stream = parser.lexer.stream; + var tableState = this.tableState; + stream.pos = tableState.streamPos; + parser.buf1 = tableState.parserBuf1; + parser.buf2 = tableState.parserBuf2; + var obj; + + while (true) { + if (!('firstEntryNum' in tableState) || !('entryCount' in tableState)) { + if ((0, _primitives.isCmd)(obj = parser.getObj(), 'trailer')) { + break; + } + + tableState.firstEntryNum = obj; + tableState.entryCount = parser.getObj(); + } + + var first = tableState.firstEntryNum; + var count = tableState.entryCount; + + if (!Number.isInteger(first) || !Number.isInteger(count)) { + throw new _util.FormatError('Invalid XRef table: wrong types in subsection header'); + } + + for (var i = tableState.entryNum; i < count; i++) { + tableState.streamPos = stream.pos; + tableState.entryNum = i; + tableState.parserBuf1 = parser.buf1; + tableState.parserBuf2 = parser.buf2; + var entry = {}; + entry.offset = parser.getObj(); + entry.gen = parser.getObj(); + var type = parser.getObj(); + + if ((0, _primitives.isCmd)(type, 'f')) { + entry.free = true; + } else if ((0, _primitives.isCmd)(type, 'n')) { + entry.uncompressed = true; + } + + if (!Number.isInteger(entry.offset) || !Number.isInteger(entry.gen) || !(entry.free || entry.uncompressed)) { + throw new _util.FormatError("Invalid entry in XRef subsection: ".concat(first, ", ").concat(count)); + } + + if (i === 0 && entry.free && first === 1) { + first = 0; + } + + if (!this.entries[i + first]) { + this.entries[i + first] = entry; + } + } + + tableState.entryNum = 0; + tableState.streamPos = stream.pos; + tableState.parserBuf1 = parser.buf1; + tableState.parserBuf2 = parser.buf2; + delete tableState.firstEntryNum; + delete tableState.entryCount; + } + + if (this.entries[0] && !this.entries[0].free) { + throw new _util.FormatError('Invalid XRef table: unexpected first object'); + } + + return obj; + }, + processXRefStream: function XRef_processXRefStream(stream) { + if (!('streamState' in this)) { + var streamParameters = stream.dict; + var byteWidths = streamParameters.get('W'); + var range = streamParameters.get('Index'); + + if (!range) { + range = [0, streamParameters.get('Size')]; + } + + this.streamState = { + entryRanges: range, + byteWidths: byteWidths, + entryNum: 0, + streamPos: stream.pos + }; + } + + this.readXRefStream(stream); + delete this.streamState; + return stream.dict; + }, + readXRefStream: function XRef_readXRefStream(stream) { + var i, j; + var streamState = this.streamState; + stream.pos = streamState.streamPos; + var byteWidths = streamState.byteWidths; + var typeFieldWidth = byteWidths[0]; + var offsetFieldWidth = byteWidths[1]; + var generationFieldWidth = byteWidths[2]; + var entryRanges = streamState.entryRanges; + + while (entryRanges.length > 0) { + var first = entryRanges[0]; + var n = entryRanges[1]; + + if (!Number.isInteger(first) || !Number.isInteger(n)) { + throw new _util.FormatError("Invalid XRef range fields: ".concat(first, ", ").concat(n)); + } + + if (!Number.isInteger(typeFieldWidth) || !Number.isInteger(offsetFieldWidth) || !Number.isInteger(generationFieldWidth)) { + throw new _util.FormatError("Invalid XRef entry fields length: ".concat(first, ", ").concat(n)); + } + + for (i = streamState.entryNum; i < n; ++i) { + streamState.entryNum = i; + streamState.streamPos = stream.pos; + var type = 0, + offset = 0, + generation = 0; + + for (j = 0; j < typeFieldWidth; ++j) { + type = type << 8 | stream.getByte(); + } + + if (typeFieldWidth === 0) { + type = 1; + } + + for (j = 0; j < offsetFieldWidth; ++j) { + offset = offset << 8 | stream.getByte(); + } + + for (j = 0; j < generationFieldWidth; ++j) { + generation = generation << 8 | stream.getByte(); + } + + var entry = {}; + entry.offset = offset; + entry.gen = generation; + + switch (type) { + case 0: + entry.free = true; + break; + + case 1: + entry.uncompressed = true; + break; + + case 2: + break; + + default: + throw new _util.FormatError("Invalid XRef entry type: ".concat(type)); + } + + if (!this.entries[first + i]) { + this.entries[first + i] = entry; + } + } + + streamState.entryNum = 0; + streamState.streamPos = stream.pos; + entryRanges.splice(0, 2); + } + }, + indexObjects: function XRef_indexObjects() { + var TAB = 0x9, + LF = 0xA, + CR = 0xD, + SPACE = 0x20; + var PERCENT = 0x25, + LT = 0x3C; + + function readToken(data, offset) { + var token = '', + ch = data[offset]; + + while (ch !== LF && ch !== CR && ch !== LT) { + if (++offset >= data.length) { + break; + } + + token += String.fromCharCode(ch); + ch = data[offset]; + } + + return token; + } + + function skipUntil(data, offset, what) { + var length = what.length, + dataLength = data.length; + var skipped = 0; + + while (offset < dataLength) { + var i = 0; + + while (i < length && data[offset + i] === what[i]) { + ++i; + } + + if (i >= length) { + break; + } + + offset++; + skipped++; + } + + return skipped; + } + + var objRegExp = /^(\d+)\s+(\d+)\s+obj\b/; + var endobjRegExp = /\bendobj[\b\s]$/; + var nestedObjRegExp = /\s+(\d+\s+\d+\s+obj[\b\s<])$/; + var CHECK_CONTENT_LENGTH = 25; + var trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]); + var startxrefBytes = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]); + var objBytes = new Uint8Array([111, 98, 106]); + var xrefBytes = new Uint8Array([47, 88, 82, 101, 102]); + this.entries.length = 0; + var stream = this.stream; + stream.pos = 0; + var buffer = stream.getBytes(); + var position = stream.start, + length = buffer.length; + var trailers = [], + xrefStms = []; + + while (position < length) { + var ch = buffer[position]; + + if (ch === TAB || ch === LF || ch === CR || ch === SPACE) { + ++position; + continue; + } + + if (ch === PERCENT) { + do { + ++position; + + if (position >= length) { + break; + } + + ch = buffer[position]; + } while (ch !== LF && ch !== CR); + + continue; + } + + var token = readToken(buffer, position); + var m; + + if (token.startsWith('xref') && (token.length === 4 || /\s/.test(token[4]))) { + position += skipUntil(buffer, position, trailerBytes); + trailers.push(position); + position += skipUntil(buffer, position, startxrefBytes); + } else if (m = objRegExp.exec(token)) { + var num = m[1] | 0, + gen = m[2] | 0; + + if (typeof this.entries[num] === 'undefined') { + this.entries[num] = { + offset: position - stream.start, + gen: gen, + uncompressed: true + }; + } + + var contentLength = void 0, + startPos = position + token.length; + + while (startPos < buffer.length) { + var endPos = startPos + skipUntil(buffer, startPos, objBytes) + 4; + contentLength = endPos - position; + var checkPos = Math.max(endPos - CHECK_CONTENT_LENGTH, startPos); + var tokenStr = (0, _util.bytesToString)(buffer.subarray(checkPos, endPos)); + + if (endobjRegExp.test(tokenStr)) { + break; + } else { + var objToken = nestedObjRegExp.exec(tokenStr); + + if (objToken && objToken[1]) { + (0, _util.warn)('indexObjects: Found new "obj" inside of another "obj", ' + 'caused by missing "endobj" -- trying to recover.'); + contentLength -= objToken[1].length; + break; + } + } + + startPos = endPos; + } + + var content = buffer.subarray(position, position + contentLength); + var xrefTagOffset = skipUntil(content, 0, xrefBytes); + + if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) { + xrefStms.push(position - stream.start); + this.xrefstms[position - stream.start] = 1; + } + + position += contentLength; + } else if (token.startsWith('trailer') && (token.length === 7 || /\s/.test(token[7]))) { + trailers.push(position); + position += skipUntil(buffer, position, startxrefBytes); + } else { + position += token.length + 1; + } + } + + var i, ii; + + for (i = 0, ii = xrefStms.length; i < ii; ++i) { + this.startXRefQueue.push(xrefStms[i]); + this.readXRef(true); + } + + var trailerDict; + + for (i = 0, ii = trailers.length; i < ii; ++i) { + stream.pos = trailers[i]; + var parser = new _parser.Parser(new _parser.Lexer(stream), true, this, true); + var obj = parser.getObj(); + + if (!(0, _primitives.isCmd)(obj, 'trailer')) { + continue; + } + + var dict = parser.getObj(); + + if (!(0, _primitives.isDict)(dict)) { + continue; + } + + var rootDict = void 0; + + try { + rootDict = dict.get('Root'); + } catch (ex) { + if (ex instanceof _util.MissingDataException) { + throw ex; + } + + continue; + } + + if (!(0, _primitives.isDict)(rootDict) || !rootDict.has('Pages')) { + continue; + } + + if (dict.has('ID')) { + return dict; + } + + trailerDict = dict; + } + + if (trailerDict) { + return trailerDict; + } + + throw new _util.InvalidPDFException('Invalid PDF structure'); + }, + readXRef: function XRef_readXRef(recoveryMode) { + var stream = this.stream; + var startXRefParsedCache = Object.create(null); + + try { + while (this.startXRefQueue.length) { + var startXRef = this.startXRefQueue[0]; + + if (startXRefParsedCache[startXRef]) { + (0, _util.warn)('readXRef - skipping XRef table since it was already parsed.'); + this.startXRefQueue.shift(); + continue; + } + + startXRefParsedCache[startXRef] = true; + stream.pos = startXRef + stream.start; + var parser = new _parser.Parser(new _parser.Lexer(stream), true, this); + var obj = parser.getObj(); + var dict; + + if ((0, _primitives.isCmd)(obj, 'xref')) { + dict = this.processXRefTable(parser); + + if (!this.topDict) { + this.topDict = dict; + } + + obj = dict.get('XRefStm'); + + if (Number.isInteger(obj)) { + var pos = obj; + + if (!(pos in this.xrefstms)) { + this.xrefstms[pos] = 1; + this.startXRefQueue.push(pos); + } + } + } else if (Number.isInteger(obj)) { + if (!Number.isInteger(parser.getObj()) || !(0, _primitives.isCmd)(parser.getObj(), 'obj') || !(0, _primitives.isStream)(obj = parser.getObj())) { + throw new _util.FormatError('Invalid XRef stream'); + } + + dict = this.processXRefStream(obj); + + if (!this.topDict) { + this.topDict = dict; + } + + if (!dict) { + throw new _util.FormatError('Failed to read XRef stream'); + } + } else { + throw new _util.FormatError('Invalid XRef stream header'); + } + + obj = dict.get('Prev'); + + if (Number.isInteger(obj)) { + this.startXRefQueue.push(obj); + } else if ((0, _primitives.isRef)(obj)) { + this.startXRefQueue.push(obj.num); + } + + this.startXRefQueue.shift(); + } + + return this.topDict; + } catch (e) { + if (e instanceof _util.MissingDataException) { + throw e; + } + + (0, _util.info)('(while reading XRef): ' + e); + } + + if (recoveryMode) { + return; + } + + throw new _util.XRefParseException(); + }, + getEntry: function XRef_getEntry(i) { + var xrefEntry = this.entries[i]; + + if (xrefEntry && !xrefEntry.free && xrefEntry.offset) { + return xrefEntry; + } + + return null; + }, + fetchIfRef: function XRef_fetchIfRef(obj, suppressEncryption) { + if (!(0, _primitives.isRef)(obj)) { + return obj; + } + + return this.fetch(obj, suppressEncryption); + }, + fetch: function XRef_fetch(ref, suppressEncryption) { + if (!(0, _primitives.isRef)(ref)) { + throw new Error('ref object is not a reference'); + } + + var num = ref.num; + + if (num in this.cache) { + var cacheEntry = this.cache[num]; + + if (cacheEntry instanceof _primitives.Dict && !cacheEntry.objId) { + cacheEntry.objId = ref.toString(); + } + + return cacheEntry; + } + + var xrefEntry = this.getEntry(num); + + if (xrefEntry === null) { + return this.cache[num] = null; + } + + if (xrefEntry.uncompressed) { + xrefEntry = this.fetchUncompressed(ref, xrefEntry, suppressEncryption); + } else { + xrefEntry = this.fetchCompressed(ref, xrefEntry, suppressEncryption); + } + + if ((0, _primitives.isDict)(xrefEntry)) { + xrefEntry.objId = ref.toString(); + } else if ((0, _primitives.isStream)(xrefEntry)) { + xrefEntry.dict.objId = ref.toString(); + } + + return xrefEntry; + }, + fetchUncompressed: function fetchUncompressed(ref, xrefEntry) { + var suppressEncryption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var gen = ref.gen; + var num = ref.num; + + if (xrefEntry.gen !== gen) { + throw new _util.XRefEntryException("Inconsistent generation in XRef: ".concat(ref)); + } + + var stream = this.stream.makeSubStream(xrefEntry.offset + this.stream.start); + var parser = new _parser.Parser(new _parser.Lexer(stream), true, this); + var obj1 = parser.getObj(); + var obj2 = parser.getObj(); + var obj3 = parser.getObj(); + + if (!Number.isInteger(obj1)) { + obj1 = parseInt(obj1, 10); + } + + if (!Number.isInteger(obj2)) { + obj2 = parseInt(obj2, 10); + } + + if (obj1 !== num || obj2 !== gen || !(0, _primitives.isCmd)(obj3)) { + throw new _util.XRefEntryException("Bad (uncompressed) XRef entry: ".concat(ref)); + } + + if (obj3.cmd !== 'obj') { + if (obj3.cmd.startsWith('obj')) { + num = parseInt(obj3.cmd.substring(3), 10); + + if (!Number.isNaN(num)) { + return num; + } + } + + throw new _util.XRefEntryException("Bad (uncompressed) XRef entry: ".concat(ref)); + } + + if (this.encrypt && !suppressEncryption) { + xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num, gen)); + } else { + xrefEntry = parser.getObj(); + } + + if (!(0, _primitives.isStream)(xrefEntry)) { + this.cache[num] = xrefEntry; + } + + return xrefEntry; + }, + fetchCompressed: function fetchCompressed(ref, xrefEntry) { + var suppressEncryption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var tableOffset = xrefEntry.offset; + var stream = this.fetch(new _primitives.Ref(tableOffset, 0)); + + if (!(0, _primitives.isStream)(stream)) { + throw new _util.FormatError('bad ObjStm stream'); + } + + var first = stream.dict.get('First'); + var n = stream.dict.get('N'); + + if (!Number.isInteger(first) || !Number.isInteger(n)) { + throw new _util.FormatError('invalid first and n parameters for ObjStm stream'); + } + + var parser = new _parser.Parser(new _parser.Lexer(stream), false, this); + parser.allowStreams = true; + var i, + entries = [], + num, + nums = []; + + for (i = 0; i < n; ++i) { + num = parser.getObj(); + + if (!Number.isInteger(num)) { + throw new _util.FormatError("invalid object number in the ObjStm stream: ".concat(num)); + } + + nums.push(num); + var offset = parser.getObj(); + + if (!Number.isInteger(offset)) { + throw new _util.FormatError("invalid object offset in the ObjStm stream: ".concat(offset)); + } + } + + for (i = 0; i < n; ++i) { + entries.push(parser.getObj()); + + if ((0, _primitives.isCmd)(parser.buf1, 'endobj')) { + parser.shift(); + } + + num = nums[i]; + var entry = this.entries[num]; + + if (entry && entry.offset === tableOffset && entry.gen === i) { + this.cache[num] = entries[i]; + } + } + + xrefEntry = entries[xrefEntry.gen]; + + if (xrefEntry === undefined) { + throw new _util.XRefEntryException("Bad (compressed) XRef entry: ".concat(ref)); + } + + return xrefEntry; + }, + fetchIfRefAsync: function () { + var _fetchIfRefAsync = _asyncToGenerator( + /*#__PURE__*/ + _regenerator.default.mark(function _callee(obj, suppressEncryption) { + return _regenerator.default.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + if ((0, _primitives.isRef)(obj)) { + _context.next = 2; + break; + } + + return _context.abrupt("return", obj); + + case 2: + return _context.abrupt("return", this.fetchAsync(obj, suppressEncryption)); + + case 3: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function fetchIfRefAsync(_x, _x2) { + return _fetchIfRefAsync.apply(this, arguments); + } + + return fetchIfRefAsync; + }(), + fetchAsync: function () { + var _fetchAsync = _asyncToGenerator( + /*#__PURE__*/ + _regenerator.default.mark(function _callee2(ref, suppressEncryption) { + return _regenerator.default.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + _context2.prev = 0; + return _context2.abrupt("return", this.fetch(ref, suppressEncryption)); + + case 4: + _context2.prev = 4; + _context2.t0 = _context2["catch"](0); + + if (_context2.t0 instanceof _util.MissingDataException) { + _context2.next = 8; + break; + } + + throw _context2.t0; + + case 8: + _context2.next = 10; + return this.pdfManager.requestRange(_context2.t0.begin, _context2.t0.end); + + case 10: + return _context2.abrupt("return", this.fetchAsync(ref, suppressEncryption)); + + case 11: + case "end": + return _context2.stop(); + } + } + }, _callee2, this, [[0, 4]]); + })); + + function fetchAsync(_x3, _x4) { + return _fetchAsync.apply(this, arguments); + } + + return fetchAsync; + }(), + getCatalogObj: function XRef_getCatalogObj() { + return this.root; + } + }; + return XRef; +}(); + +exports.XRef = XRef; + +var NameOrNumberTree = +/*#__PURE__*/ +function () { + function NameOrNumberTree(root, xref, type) { + _classCallCheck(this, NameOrNumberTree); + + if (this.constructor === NameOrNumberTree) { + (0, _util.unreachable)('Cannot initialize NameOrNumberTree.'); + } + + this.root = root; + this.xref = xref; + this._type = type; + } + + _createClass(NameOrNumberTree, [{ + key: "getAll", + value: function getAll() { + var dict = Object.create(null); + + if (!this.root) { + return dict; + } + + var xref = this.xref; + var processed = new _primitives.RefSet(); + processed.put(this.root); + var queue = [this.root]; + + while (queue.length > 0) { + var obj = xref.fetchIfRef(queue.shift()); + + if (!(0, _primitives.isDict)(obj)) { + continue; + } + + if (obj.has('Kids')) { + var kids = obj.get('Kids'); + + for (var i = 0, ii = kids.length; i < ii; i++) { + var kid = kids[i]; + + if (processed.has(kid)) { + throw new _util.FormatError("Duplicate entry in \"".concat(this._type, "\" tree.")); + } + + queue.push(kid); + processed.put(kid); + } + + continue; + } + + var entries = obj.get(this._type); + + if (Array.isArray(entries)) { + for (var _i2 = 0, _ii = entries.length; _i2 < _ii; _i2 += 2) { + dict[xref.fetchIfRef(entries[_i2])] = xref.fetchIfRef(entries[_i2 + 1]); + } + } + } + + return dict; + } + }, { + key: "get", + value: function get(key) { + if (!this.root) { + return null; + } + + var xref = this.xref; + var kidsOrEntries = xref.fetchIfRef(this.root); + var loopCount = 0; + var MAX_LEVELS = 10; + + while (kidsOrEntries.has('Kids')) { + if (++loopCount > MAX_LEVELS) { + (0, _util.warn)("Search depth limit reached for \"".concat(this._type, "\" tree.")); + return null; + } + + var kids = kidsOrEntries.get('Kids'); + + if (!Array.isArray(kids)) { + return null; + } + + var l = 0, + r = kids.length - 1; + + while (l <= r) { + var m = l + r >> 1; + var kid = xref.fetchIfRef(kids[m]); + var limits = kid.get('Limits'); + + if (key < xref.fetchIfRef(limits[0])) { + r = m - 1; + } else if (key > xref.fetchIfRef(limits[1])) { + l = m + 1; + } else { + kidsOrEntries = xref.fetchIfRef(kids[m]); + break; + } + } + + if (l > r) { + return null; + } + } + + var entries = kidsOrEntries.get(this._type); + + if (Array.isArray(entries)) { + var _l = 0, + _r = entries.length - 2; + + while (_l <= _r) { + var tmp = _l + _r >> 1, + _m = tmp + (tmp & 1); + + var currentKey = xref.fetchIfRef(entries[_m]); + + if (key < currentKey) { + _r = _m - 2; + } else if (key > currentKey) { + _l = _m + 2; + } else { + return xref.fetchIfRef(entries[_m + 1]); + } + } + + (0, _util.info)("Falling back to an exhaustive search, for key \"".concat(key, "\", ") + "in \"".concat(this._type, "\" tree.")); + + for (var _m2 = 0, mm = entries.length; _m2 < mm; _m2 += 2) { + var _currentKey = xref.fetchIfRef(entries[_m2]); + + if (_currentKey === key) { + (0, _util.warn)("The \"".concat(key, "\" key was found at an incorrect, ") + "i.e. out-of-order, position in \"".concat(this._type, "\" tree.")); + return xref.fetchIfRef(entries[_m2 + 1]); + } + } + } + + return null; + } + }]); + + return NameOrNumberTree; +}(); + +var NameTree = +/*#__PURE__*/ +function (_NameOrNumberTree) { + _inherits(NameTree, _NameOrNumberTree); + + function NameTree(root, xref) { + _classCallCheck(this, NameTree); + + return _possibleConstructorReturn(this, _getPrototypeOf(NameTree).call(this, root, xref, 'Names')); + } + + return NameTree; +}(NameOrNumberTree); + +var NumberTree = +/*#__PURE__*/ +function (_NameOrNumberTree2) { + _inherits(NumberTree, _NameOrNumberTree2); + + function NumberTree(root, xref) { + _classCallCheck(this, NumberTree); + + return _possibleConstructorReturn(this, _getPrototypeOf(NumberTree).call(this, root, xref, 'Nums')); + } + + return NumberTree; +}(NameOrNumberTree); + +var FileSpec = function FileSpecClosure() { + function FileSpec(root, xref) { + if (!root || !(0, _primitives.isDict)(root)) { + return; + } + + this.xref = xref; + this.root = root; + + if (root.has('FS')) { + this.fs = root.get('FS'); + } + + this.description = root.has('Desc') ? (0, _util.stringToPDFString)(root.get('Desc')) : ''; + + if (root.has('RF')) { + (0, _util.warn)('Related file specifications are not supported'); + } + + this.contentAvailable = true; + + if (!root.has('EF')) { + this.contentAvailable = false; + (0, _util.warn)('Non-embedded file specifications are not supported'); + } + } + + function pickPlatformItem(dict) { + if (dict.has('UF')) { + return dict.get('UF'); + } else if (dict.has('F')) { + return dict.get('F'); + } else if (dict.has('Unix')) { + return dict.get('Unix'); + } else if (dict.has('Mac')) { + return dict.get('Mac'); + } else if (dict.has('DOS')) { + return dict.get('DOS'); + } + + return null; + } + + FileSpec.prototype = { + get filename() { + if (!this._filename && this.root) { + var filename = pickPlatformItem(this.root) || 'unnamed'; + this._filename = (0, _util.stringToPDFString)(filename).replace(/\\\\/g, '\\').replace(/\\\//g, '/').replace(/\\/g, '/'); + } + + return this._filename; + }, + + get content() { + if (!this.contentAvailable) { + return null; + } + + if (!this.contentRef && this.root) { + this.contentRef = pickPlatformItem(this.root.get('EF')); + } + + var content = null; + + if (this.contentRef) { + var xref = this.xref; + var fileObj = xref.fetchIfRef(this.contentRef); + + if (fileObj && (0, _primitives.isStream)(fileObj)) { + content = fileObj.getBytes(); + } else { + (0, _util.warn)('Embedded file specification points to non-existing/invalid ' + 'content'); + } + } else { + (0, _util.warn)('Embedded file specification does not have a content'); + } + + return content; + }, + + get serializable() { + return { + filename: this.filename, + content: this.content + }; + } + + }; + return FileSpec; +}(); + +exports.FileSpec = FileSpec; + +var ObjectLoader = function () { + function mayHaveChildren(value) { + return (0, _primitives.isRef)(value) || (0, _primitives.isDict)(value) || Array.isArray(value) || (0, _primitives.isStream)(value); + } + + function addChildren(node, nodesToVisit) { + if ((0, _primitives.isDict)(node) || (0, _primitives.isStream)(node)) { + var dict = (0, _primitives.isDict)(node) ? node : node.dict; + var dictKeys = dict.getKeys(); + + for (var i = 0, ii = dictKeys.length; i < ii; i++) { + var rawValue = dict.getRaw(dictKeys[i]); + + if (mayHaveChildren(rawValue)) { + nodesToVisit.push(rawValue); + } + } + } else if (Array.isArray(node)) { + for (var _i3 = 0, _ii2 = node.length; _i3 < _ii2; _i3++) { + var value = node[_i3]; + + if (mayHaveChildren(value)) { + nodesToVisit.push(value); + } + } + } + } + + function ObjectLoader(dict, keys, xref) { + this.dict = dict; + this.keys = keys; + this.xref = xref; + this.refSet = null; + this.capability = null; + } + + ObjectLoader.prototype = { + load: function load() { + this.capability = (0, _util.createPromiseCapability)(); + + if (!(this.xref.stream instanceof _chunked_stream.ChunkedStream) || this.xref.stream.getMissingChunks().length === 0) { + this.capability.resolve(); + return this.capability.promise; + } + + var keys = this.keys, + dict = this.dict; + this.refSet = new _primitives.RefSet(); + var nodesToVisit = []; + + for (var i = 0, ii = keys.length; i < ii; i++) { + var rawValue = dict.getRaw(keys[i]); + + if (rawValue !== undefined) { + nodesToVisit.push(rawValue); + } + } + + this._walk(nodesToVisit); + + return this.capability.promise; + }, + _walk: function _walk(nodesToVisit) { + var _this2 = this; + + var nodesToRevisit = []; + var pendingRequests = []; + + while (nodesToVisit.length) { + var currentNode = nodesToVisit.pop(); + + if ((0, _primitives.isRef)(currentNode)) { + if (this.refSet.has(currentNode)) { + continue; + } + + try { + this.refSet.put(currentNode); + currentNode = this.xref.fetch(currentNode); + } catch (ex) { + if (!(ex instanceof _util.MissingDataException)) { + throw ex; + } + + nodesToRevisit.push(currentNode); + pendingRequests.push({ + begin: ex.begin, + end: ex.end + }); + } + } + + if (currentNode && currentNode.getBaseStreams) { + var baseStreams = currentNode.getBaseStreams(); + var foundMissingData = false; + + for (var i = 0, ii = baseStreams.length; i < ii; i++) { + var stream = baseStreams[i]; + + if (stream.getMissingChunks && stream.getMissingChunks().length) { + foundMissingData = true; + pendingRequests.push({ + begin: stream.start, + end: stream.end + }); + } + } + + if (foundMissingData) { + nodesToRevisit.push(currentNode); + } + } + + addChildren(currentNode, nodesToVisit); + } + + if (pendingRequests.length) { + this.xref.stream.manager.requestRanges(pendingRequests).then(function () { + for (var _i4 = 0, _ii3 = nodesToRevisit.length; _i4 < _ii3; _i4++) { + var node = nodesToRevisit[_i4]; + + if ((0, _primitives.isRef)(node)) { + _this2.refSet.remove(node); + } + } + + _this2._walk(nodesToRevisit); + }, this.capability.reject); + return; + } + + this.refSet = null; + this.capability.resolve(); + } + }; + return ObjectLoader; +}(); + +exports.ObjectLoader = ObjectLoader; + +/***/ }), +/* 155 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isEOF = isEOF; +exports.isCmd = isCmd; +exports.isDict = isDict; +exports.isName = isName; +exports.isRef = isRef; +exports.isRefsEqual = isRefsEqual; +exports.isStream = isStream; +exports.RefSetCache = exports.RefSet = exports.Ref = exports.Name = exports.Dict = exports.Cmd = exports.EOF = void 0; + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var EOF = {}; +exports.EOF = EOF; + +var Name = function NameClosure() { + function Name(name) { + this.name = name; + } + + Name.prototype = {}; + var nameCache = Object.create(null); + + Name.get = function Name_get(name) { + var nameValue = nameCache[name]; + return nameValue ? nameValue : nameCache[name] = new Name(name); + }; + + return Name; +}(); + +exports.Name = Name; + +var Cmd = function CmdClosure() { + function Cmd(cmd) { + this.cmd = cmd; + } + + Cmd.prototype = {}; + var cmdCache = Object.create(null); + + Cmd.get = function Cmd_get(cmd) { + var cmdValue = cmdCache[cmd]; + return cmdValue ? cmdValue : cmdCache[cmd] = new Cmd(cmd); + }; + + return Cmd; +}(); + +exports.Cmd = Cmd; + +var Dict = function DictClosure() { + var nonSerializable = function nonSerializableClosure() { + return nonSerializable; + }; + + function Dict(xref) { + this._map = Object.create(null); + this.xref = xref; + this.objId = null; + this.suppressEncryption = false; + this.__nonSerializable__ = nonSerializable; + } + + Dict.prototype = { + assignXref: function Dict_assignXref(newXref) { + this.xref = newXref; + }, + get: function Dict_get(key1, key2, key3) { + var value; + var xref = this.xref, + suppressEncryption = this.suppressEncryption; + + if (typeof (value = this._map[key1]) !== 'undefined' || key1 in this._map || typeof key2 === 'undefined') { + return xref ? xref.fetchIfRef(value, suppressEncryption) : value; + } + + if (typeof (value = this._map[key2]) !== 'undefined' || key2 in this._map || typeof key3 === 'undefined') { + return xref ? xref.fetchIfRef(value, suppressEncryption) : value; + } + + value = this._map[key3] || null; + return xref ? xref.fetchIfRef(value, suppressEncryption) : value; + }, + getAsync: function Dict_getAsync(key1, key2, key3) { + var value; + var xref = this.xref, + suppressEncryption = this.suppressEncryption; + + if (typeof (value = this._map[key1]) !== 'undefined' || key1 in this._map || typeof key2 === 'undefined') { + if (xref) { + return xref.fetchIfRefAsync(value, suppressEncryption); + } + + return Promise.resolve(value); + } + + if (typeof (value = this._map[key2]) !== 'undefined' || key2 in this._map || typeof key3 === 'undefined') { + if (xref) { + return xref.fetchIfRefAsync(value, suppressEncryption); + } + + return Promise.resolve(value); + } + + value = this._map[key3] || null; + + if (xref) { + return xref.fetchIfRefAsync(value, suppressEncryption); + } + + return Promise.resolve(value); + }, + getArray: function Dict_getArray(key1, key2, key3) { + var value = this.get(key1, key2, key3); + var xref = this.xref, + suppressEncryption = this.suppressEncryption; + + if (!Array.isArray(value) || !xref) { + return value; + } + + value = value.slice(); + + for (var i = 0, ii = value.length; i < ii; i++) { + if (!isRef(value[i])) { + continue; + } + + value[i] = xref.fetch(value[i], suppressEncryption); + } + + return value; + }, + getRaw: function Dict_getRaw(key) { + return this._map[key]; + }, + getKeys: function Dict_getKeys() { + return Object.keys(this._map); + }, + set: function Dict_set(key, value) { + this._map[key] = value; + }, + has: function Dict_has(key) { + return key in this._map; + }, + forEach: function Dict_forEach(callback) { + for (var key in this._map) { + callback(key, this.get(key)); + } + } + }; + Dict.empty = new Dict(null); + + Dict.merge = function (xref, dictArray) { + var mergedDict = new Dict(xref); + + for (var i = 0, ii = dictArray.length; i < ii; i++) { + var dict = dictArray[i]; + + if (!isDict(dict)) { + continue; + } + + for (var keyName in dict._map) { + if (mergedDict._map[keyName] !== undefined) { + continue; + } + + mergedDict._map[keyName] = dict._map[keyName]; + } + } + + return mergedDict; + }; + + return Dict; +}(); + +exports.Dict = Dict; + +var Ref = function RefClosure() { + function Ref(num, gen) { + this.num = num; + this.gen = gen; + } + + Ref.prototype = { + toString: function Ref_toString() { + if (this.gen !== 0) { + return "".concat(this.num, "R").concat(this.gen); + } + + return "".concat(this.num, "R"); + } + }; + return Ref; +}(); + +exports.Ref = Ref; + +var RefSet = function RefSetClosure() { + function RefSet() { + this.dict = Object.create(null); + } + + RefSet.prototype = { + has: function RefSet_has(ref) { + return ref.toString() in this.dict; + }, + put: function RefSet_put(ref) { + this.dict[ref.toString()] = true; + }, + remove: function RefSet_remove(ref) { + delete this.dict[ref.toString()]; + } + }; + return RefSet; +}(); + +exports.RefSet = RefSet; + +var RefSetCache = function RefSetCacheClosure() { + function RefSetCache() { + this.dict = Object.create(null); + } + + RefSetCache.prototype = { + get: function RefSetCache_get(ref) { + return this.dict[ref.toString()]; + }, + has: function RefSetCache_has(ref) { + return ref.toString() in this.dict; + }, + put: function RefSetCache_put(ref, obj) { + this.dict[ref.toString()] = obj; + }, + putAlias: function RefSetCache_putAlias(ref, aliasRef) { + this.dict[ref.toString()] = this.get(aliasRef); + }, + forEach: function RefSetCache_forEach(fn, thisArg) { + for (var i in this.dict) { + fn.call(thisArg, this.dict[i]); + } + }, + clear: function RefSetCache_clear() { + this.dict = Object.create(null); + } + }; + return RefSetCache; +}(); + +exports.RefSetCache = RefSetCache; + +function isEOF(v) { + return v === EOF; +} + +function isName(v, name) { + return v instanceof Name && (name === undefined || v.name === name); +} + +function isCmd(v, cmd) { + return v instanceof Cmd && (cmd === undefined || v.cmd === cmd); +} + +function isDict(v, type) { + return v instanceof Dict && (type === undefined || isName(v.get('Type'), type)); +} + +function isRef(v) { + return v instanceof Ref; +} + +function isRefsEqual(v1, v2) { + return v1.num === v2.num && v1.gen === v2.gen; +} + +function isStream(v) { + return _typeof(v) === 'object' && v !== null && v.getBytes !== undefined; +} + +/***/ }), +/* 156 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Parser = exports.Linearization = exports.Lexer = void 0; + +var _stream = __w_pdfjs_require__(157); + +var _util = __w_pdfjs_require__(6); + +var _primitives = __w_pdfjs_require__(155); + +var _ccitt_stream = __w_pdfjs_require__(158); + +var _jbig2_stream = __w_pdfjs_require__(160); + +var _jpeg_stream = __w_pdfjs_require__(163); + +var _jpx_stream = __w_pdfjs_require__(165); + +var MAX_LENGTH_TO_CACHE = 1000; +var MAX_ADLER32_LENGTH = 5552; + +function computeAdler32(bytes) { + var bytesLength = bytes.length; + var a = 1, + b = 0; + + for (var i = 0; i < bytesLength; ++i) { + a += bytes[i] & 0xFF; + b += a; + } + + return b % 65521 << 16 | a % 65521; +} + +var Parser = function ParserClosure() { + function Parser(lexer, allowStreams, xref, recoveryMode) { + this.lexer = lexer; + this.allowStreams = allowStreams; + this.xref = xref; + this.recoveryMode = recoveryMode || false; + this.imageCache = Object.create(null); + this.refill(); + } + + Parser.prototype = { + refill: function Parser_refill() { + this.buf1 = this.lexer.getObj(); + this.buf2 = this.lexer.getObj(); + }, + shift: function Parser_shift() { + if ((0, _primitives.isCmd)(this.buf2, 'ID')) { + this.buf1 = this.buf2; + this.buf2 = null; + } else { + this.buf1 = this.buf2; + this.buf2 = this.lexer.getObj(); + } + }, + tryShift: function Parser_tryShift() { + try { + this.shift(); + return true; + } catch (e) { + if (e instanceof _util.MissingDataException) { + throw e; + } + + return false; + } + }, + getObj: function Parser_getObj(cipherTransform) { + var buf1 = this.buf1; + this.shift(); + + if (buf1 instanceof _primitives.Cmd) { + switch (buf1.cmd) { + case 'BI': + return this.makeInlineImage(cipherTransform); + + case '[': + var array = []; + + while (!(0, _primitives.isCmd)(this.buf1, ']') && !(0, _primitives.isEOF)(this.buf1)) { + array.push(this.getObj(cipherTransform)); + } + + if ((0, _primitives.isEOF)(this.buf1)) { + if (!this.recoveryMode) { + throw new _util.FormatError('End of file inside array'); + } + + return array; + } + + this.shift(); + return array; + + case '<<': + var dict = new _primitives.Dict(this.xref); + + while (!(0, _primitives.isCmd)(this.buf1, '>>') && !(0, _primitives.isEOF)(this.buf1)) { + if (!(0, _primitives.isName)(this.buf1)) { + (0, _util.info)('Malformed dictionary: key must be a name object'); + this.shift(); + continue; + } + + var key = this.buf1.name; + this.shift(); + + if ((0, _primitives.isEOF)(this.buf1)) { + break; + } + + dict.set(key, this.getObj(cipherTransform)); + } + + if ((0, _primitives.isEOF)(this.buf1)) { + if (!this.recoveryMode) { + throw new _util.FormatError('End of file inside dictionary'); + } + + return dict; + } + + if ((0, _primitives.isCmd)(this.buf2, 'stream')) { + return this.allowStreams ? this.makeStream(dict, cipherTransform) : dict; + } + + this.shift(); + return dict; + + default: + return buf1; + } + } + + if (Number.isInteger(buf1)) { + var num = buf1; + + if (Number.isInteger(this.buf1) && (0, _primitives.isCmd)(this.buf2, 'R')) { + var ref = new _primitives.Ref(num, this.buf1); + this.shift(); + this.shift(); + return ref; + } + + return num; + } + + if ((0, _util.isString)(buf1)) { + var str = buf1; + + if (cipherTransform) { + str = cipherTransform.decryptString(str); + } + + return str; + } + + return buf1; + }, + findDefaultInlineStreamEnd: function findDefaultInlineStreamEnd(stream) { + var E = 0x45, + I = 0x49, + SPACE = 0x20, + LF = 0xA, + CR = 0xD; + var n = 10, + NUL = 0x0; + var startPos = stream.pos, + state = 0, + ch, + maybeEIPos; + + while ((ch = stream.getByte()) !== -1) { + if (state === 0) { + state = ch === E ? 1 : 0; + } else if (state === 1) { + state = ch === I ? 2 : 0; + } else { + (0, _util.assert)(state === 2); + + if (ch === SPACE || ch === LF || ch === CR) { + maybeEIPos = stream.pos; + var followingBytes = stream.peekBytes(n); + + for (var i = 0, ii = followingBytes.length; i < ii; i++) { + ch = followingBytes[i]; + + if (ch === NUL && followingBytes[i + 1] !== NUL) { + continue; + } + + if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7F)) { + state = 0; + break; + } + } + + if (state === 2) { + break; + } + } else { + state = 0; + } + } + } + + if (ch === -1) { + (0, _util.warn)('findDefaultInlineStreamEnd: ' + 'Reached the end of the stream without finding a valid EI marker'); + + if (maybeEIPos) { + (0, _util.warn)('... trying to recover by using the last "EI" occurrence.'); + stream.skip(-(stream.pos - maybeEIPos)); + } + } + + var endOffset = 4; + stream.skip(-endOffset); + ch = stream.peekByte(); + stream.skip(endOffset); + + if (!(0, _util.isSpace)(ch)) { + endOffset--; + } + + return stream.pos - endOffset - startPos; + }, + findDCTDecodeInlineStreamEnd: function Parser_findDCTDecodeInlineStreamEnd(stream) { + var startPos = stream.pos, + foundEOI = false, + b, + markerLength, + length; + + while ((b = stream.getByte()) !== -1) { + if (b !== 0xFF) { + continue; + } + + switch (stream.getByte()) { + case 0x00: + break; + + case 0xFF: + stream.skip(-1); + break; + + case 0xD9: + foundEOI = true; + break; + + case 0xC0: + case 0xC1: + case 0xC2: + case 0xC3: + case 0xC5: + case 0xC6: + case 0xC7: + case 0xC9: + case 0xCA: + case 0xCB: + case 0xCD: + case 0xCE: + case 0xCF: + case 0xC4: + case 0xCC: + case 0xDA: + case 0xDB: + case 0xDC: + case 0xDD: + case 0xDE: + case 0xDF: + case 0xE0: + case 0xE1: + case 0xE2: + case 0xE3: + case 0xE4: + case 0xE5: + case 0xE6: + case 0xE7: + case 0xE8: + case 0xE9: + case 0xEA: + case 0xEB: + case 0xEC: + case 0xED: + case 0xEE: + case 0xEF: + case 0xFE: + markerLength = stream.getUint16(); + + if (markerLength > 2) { + stream.skip(markerLength - 2); + } else { + stream.skip(-2); + } + + break; + } + + if (foundEOI) { + break; + } + } + + length = stream.pos - startPos; + + if (b === -1) { + (0, _util.warn)('Inline DCTDecode image stream: ' + 'EOI marker not found, searching for /EI/ instead.'); + stream.skip(-length); + return this.findDefaultInlineStreamEnd(stream); + } + + this.inlineStreamSkipEI(stream); + return length; + }, + findASCII85DecodeInlineStreamEnd: function Parser_findASCII85DecodeInlineStreamEnd(stream) { + var TILDE = 0x7E, + GT = 0x3E; + var startPos = stream.pos, + ch, + length; + + while ((ch = stream.getByte()) !== -1) { + if (ch === TILDE && stream.peekByte() === GT) { + stream.skip(); + break; + } + } + + length = stream.pos - startPos; + + if (ch === -1) { + (0, _util.warn)('Inline ASCII85Decode image stream: ' + 'EOD marker not found, searching for /EI/ instead.'); + stream.skip(-length); + return this.findDefaultInlineStreamEnd(stream); + } + + this.inlineStreamSkipEI(stream); + return length; + }, + findASCIIHexDecodeInlineStreamEnd: function Parser_findASCIIHexDecodeInlineStreamEnd(stream) { + var GT = 0x3E; + var startPos = stream.pos, + ch, + length; + + while ((ch = stream.getByte()) !== -1) { + if (ch === GT) { + break; + } + } + + length = stream.pos - startPos; + + if (ch === -1) { + (0, _util.warn)('Inline ASCIIHexDecode image stream: ' + 'EOD marker not found, searching for /EI/ instead.'); + stream.skip(-length); + return this.findDefaultInlineStreamEnd(stream); + } + + this.inlineStreamSkipEI(stream); + return length; + }, + inlineStreamSkipEI: function Parser_inlineStreamSkipEI(stream) { + var E = 0x45, + I = 0x49; + var state = 0, + ch; + + while ((ch = stream.getByte()) !== -1) { + if (state === 0) { + state = ch === E ? 1 : 0; + } else if (state === 1) { + state = ch === I ? 2 : 0; + } else if (state === 2) { + break; + } + } + }, + makeInlineImage: function Parser_makeInlineImage(cipherTransform) { + var lexer = this.lexer; + var stream = lexer.stream; + var dict = new _primitives.Dict(this.xref), + dictLength; + + while (!(0, _primitives.isCmd)(this.buf1, 'ID') && !(0, _primitives.isEOF)(this.buf1)) { + if (!(0, _primitives.isName)(this.buf1)) { + throw new _util.FormatError('Dictionary key must be a name object'); + } + + var key = this.buf1.name; + this.shift(); + + if ((0, _primitives.isEOF)(this.buf1)) { + break; + } + + dict.set(key, this.getObj(cipherTransform)); + } + + if (lexer.beginInlineImagePos !== -1) { + dictLength = stream.pos - lexer.beginInlineImagePos; + } + + var filter = dict.get('Filter', 'F'), + filterName; + + if ((0, _primitives.isName)(filter)) { + filterName = filter.name; + } else if (Array.isArray(filter)) { + var filterZero = this.xref.fetchIfRef(filter[0]); + + if ((0, _primitives.isName)(filterZero)) { + filterName = filterZero.name; + } + } + + var startPos = stream.pos, + length; + + if (filterName === 'DCTDecode' || filterName === 'DCT') { + length = this.findDCTDecodeInlineStreamEnd(stream); + } else if (filterName === 'ASCII85Decode' || filterName === 'A85') { + length = this.findASCII85DecodeInlineStreamEnd(stream); + } else if (filterName === 'ASCIIHexDecode' || filterName === 'AHx') { + length = this.findASCIIHexDecodeInlineStreamEnd(stream); + } else { + length = this.findDefaultInlineStreamEnd(stream); + } + + var imageStream = stream.makeSubStream(startPos, length, dict); + var cacheKey; + + if (length < MAX_LENGTH_TO_CACHE && dictLength < MAX_ADLER32_LENGTH) { + var imageBytes = imageStream.getBytes(); + imageStream.reset(); + var initialStreamPos = stream.pos; + stream.pos = lexer.beginInlineImagePos; + var dictBytes = stream.getBytes(dictLength); + stream.pos = initialStreamPos; + cacheKey = computeAdler32(imageBytes) + '_' + computeAdler32(dictBytes); + var cacheEntry = this.imageCache[cacheKey]; + + if (cacheEntry !== undefined) { + this.buf2 = _primitives.Cmd.get('EI'); + this.shift(); + cacheEntry.reset(); + return cacheEntry; + } + } + + if (cipherTransform) { + imageStream = cipherTransform.createStream(imageStream, length); + } + + imageStream = this.filter(imageStream, dict, length); + imageStream.dict = dict; + + if (cacheKey !== undefined) { + imageStream.cacheKey = 'inline_' + length + '_' + cacheKey; + this.imageCache[cacheKey] = imageStream; + } + + this.buf2 = _primitives.Cmd.get('EI'); + this.shift(); + return imageStream; + }, + _findStreamLength: function _findStreamLength(startPos, signature) { + var stream = this.lexer.stream; + stream.pos = startPos; + var SCAN_BLOCK_LENGTH = 2048; + var signatureLength = signature.length; + + while (stream.pos < stream.end) { + var scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH); + var scanLength = scanBytes.length - signatureLength; + + if (scanLength <= 0) { + break; + } + + var pos = 0; + + while (pos < scanLength) { + var j = 0; + + while (j < signatureLength && scanBytes[pos + j] === signature[j]) { + j++; + } + + if (j >= signatureLength) { + stream.pos += pos; + return stream.pos - startPos; + } + + pos++; + } + + stream.pos += scanLength; + } + + return -1; + }, + makeStream: function Parser_makeStream(dict, cipherTransform) { + var lexer = this.lexer; + var stream = lexer.stream; + lexer.skipToNextLine(); + var startPos = stream.pos - 1; + var length = dict.get('Length'); + + if (!Number.isInteger(length)) { + (0, _util.info)('Bad ' + length + ' attribute in stream'); + length = 0; + } + + stream.pos = startPos + length; + lexer.nextChar(); + + if (this.tryShift() && (0, _primitives.isCmd)(this.buf2, 'endstream')) { + this.shift(); + } else { + var ENDSTREAM_SIGNATURE = new Uint8Array([0x65, 0x6E, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6D]); + + var actualLength = this._findStreamLength(startPos, ENDSTREAM_SIGNATURE); + + if (actualLength < 0) { + var MAX_TRUNCATION = 1; + + for (var i = 1; i <= MAX_TRUNCATION; i++) { + var end = ENDSTREAM_SIGNATURE.length - i; + var TRUNCATED_SIGNATURE = ENDSTREAM_SIGNATURE.slice(0, end); + + var maybeLength = this._findStreamLength(startPos, TRUNCATED_SIGNATURE); + + if (maybeLength >= 0) { + var lastByte = stream.peekBytes(end + 1)[end]; + + if (!(0, _util.isSpace)(lastByte)) { + break; + } + + (0, _util.info)("Found \"".concat((0, _util.bytesToString)(TRUNCATED_SIGNATURE), "\" when ") + 'searching for endstream command.'); + actualLength = maybeLength; + break; + } + } + + if (actualLength < 0) { + throw new _util.FormatError('Missing endstream command.'); + } + } + + length = actualLength; + lexer.nextChar(); + this.shift(); + this.shift(); + } + + this.shift(); + stream = stream.makeSubStream(startPos, length, dict); + + if (cipherTransform) { + stream = cipherTransform.createStream(stream, length); + } + + stream = this.filter(stream, dict, length); + stream.dict = dict; + return stream; + }, + filter: function Parser_filter(stream, dict, length) { + var filter = dict.get('Filter', 'F'); + var params = dict.get('DecodeParms', 'DP'); + + if ((0, _primitives.isName)(filter)) { + if (Array.isArray(params)) { + (0, _util.warn)('/DecodeParms should not contain an Array, ' + 'when /Filter contains a Name.'); + } + + return this.makeFilter(stream, filter.name, length, params); + } + + var maybeLength = length; + + if (Array.isArray(filter)) { + var filterArray = filter; + var paramsArray = params; + + for (var i = 0, ii = filterArray.length; i < ii; ++i) { + filter = this.xref.fetchIfRef(filterArray[i]); + + if (!(0, _primitives.isName)(filter)) { + throw new _util.FormatError('Bad filter name: ' + filter); + } + + params = null; + + if (Array.isArray(paramsArray) && i in paramsArray) { + params = this.xref.fetchIfRef(paramsArray[i]); + } + + stream = this.makeFilter(stream, filter.name, maybeLength, params); + maybeLength = null; + } + } + + return stream; + }, + makeFilter: function Parser_makeFilter(stream, name, maybeLength, params) { + if (maybeLength === 0) { + (0, _util.warn)('Empty "' + name + '" stream.'); + return new _stream.NullStream(); + } + + try { + var xrefStreamStats = this.xref.stats.streamTypes; + + if (name === 'FlateDecode' || name === 'Fl') { + xrefStreamStats[_util.StreamType.FLATE] = true; + + if (params) { + return new _stream.PredictorStream(new _stream.FlateStream(stream, maybeLength), maybeLength, params); + } + + return new _stream.FlateStream(stream, maybeLength); + } + + if (name === 'LZWDecode' || name === 'LZW') { + xrefStreamStats[_util.StreamType.LZW] = true; + var earlyChange = 1; + + if (params) { + if (params.has('EarlyChange')) { + earlyChange = params.get('EarlyChange'); + } + + return new _stream.PredictorStream(new _stream.LZWStream(stream, maybeLength, earlyChange), maybeLength, params); + } + + return new _stream.LZWStream(stream, maybeLength, earlyChange); + } + + if (name === 'DCTDecode' || name === 'DCT') { + xrefStreamStats[_util.StreamType.DCT] = true; + return new _jpeg_stream.JpegStream(stream, maybeLength, stream.dict, params); + } + + if (name === 'JPXDecode' || name === 'JPX') { + xrefStreamStats[_util.StreamType.JPX] = true; + return new _jpx_stream.JpxStream(stream, maybeLength, stream.dict, params); + } + + if (name === 'ASCII85Decode' || name === 'A85') { + xrefStreamStats[_util.StreamType.A85] = true; + return new _stream.Ascii85Stream(stream, maybeLength); + } + + if (name === 'ASCIIHexDecode' || name === 'AHx') { + xrefStreamStats[_util.StreamType.AHX] = true; + return new _stream.AsciiHexStream(stream, maybeLength); + } + + if (name === 'CCITTFaxDecode' || name === 'CCF') { + xrefStreamStats[_util.StreamType.CCF] = true; + return new _ccitt_stream.CCITTFaxStream(stream, maybeLength, params); + } + + if (name === 'RunLengthDecode' || name === 'RL') { + xrefStreamStats[_util.StreamType.RL] = true; + return new _stream.RunLengthStream(stream, maybeLength); + } + + if (name === 'JBIG2Decode') { + xrefStreamStats[_util.StreamType.JBIG] = true; + return new _jbig2_stream.Jbig2Stream(stream, maybeLength, stream.dict, params); + } + + (0, _util.warn)('filter "' + name + '" not supported yet'); + return stream; + } catch (ex) { + if (ex instanceof _util.MissingDataException) { + throw ex; + } + + (0, _util.warn)('Invalid stream: \"' + ex + '\"'); + return new _stream.NullStream(); + } + } + }; + return Parser; +}(); + +exports.Parser = Parser; + +var Lexer = function LexerClosure() { + function Lexer(stream, knownCommands) { + this.stream = stream; + this.nextChar(); + this.strBuf = []; + this.knownCommands = knownCommands; + this.beginInlineImagePos = -1; + } + + var specialChars = [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + + function toHexDigit(ch) { + if (ch >= 0x30 && ch <= 0x39) { + return ch & 0x0F; + } + + if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) { + return (ch & 0x0F) + 9; + } + + return -1; + } + + Lexer.prototype = { + nextChar: function Lexer_nextChar() { + return this.currentChar = this.stream.getByte(); + }, + peekChar: function Lexer_peekChar() { + return this.stream.peekByte(); + }, + getNumber: function Lexer_getNumber() { + var ch = this.currentChar; + var eNotation = false; + var divideBy = 0; + var sign = 0; + + if (ch === 0x2D) { + sign = -1; + ch = this.nextChar(); + + if (ch === 0x2D) { + ch = this.nextChar(); + } + } else if (ch === 0x2B) { + sign = 1; + ch = this.nextChar(); + } + + if (ch === 0x0A || ch === 0x0D) { + do { + ch = this.nextChar(); + } while (ch === 0x0A || ch === 0x0D); + } + + if (ch === 0x2E) { + divideBy = 10; + ch = this.nextChar(); + } + + if (ch < 0x30 || ch > 0x39) { + if (divideBy === 10 && sign === 0 && ((0, _util.isSpace)(ch) || ch === -1)) { + (0, _util.warn)('Lexer.getNumber - treating a single decimal point as zero.'); + return 0; + } + + throw new _util.FormatError("Invalid number: ".concat(String.fromCharCode(ch), " (charCode ").concat(ch, ")")); + } + + sign = sign || 1; + var baseValue = ch - 0x30; + var powerValue = 0; + var powerValueSign = 1; + + while ((ch = this.nextChar()) >= 0) { + if (0x30 <= ch && ch <= 0x39) { + var currentDigit = ch - 0x30; + + if (eNotation) { + powerValue = powerValue * 10 + currentDigit; + } else { + if (divideBy !== 0) { + divideBy *= 10; + } + + baseValue = baseValue * 10 + currentDigit; + } + } else if (ch === 0x2E) { + if (divideBy === 0) { + divideBy = 1; + } else { + break; + } + } else if (ch === 0x2D) { + (0, _util.warn)('Badly formatted number'); + } else if (ch === 0x45 || ch === 0x65) { + ch = this.peekChar(); + + if (ch === 0x2B || ch === 0x2D) { + powerValueSign = ch === 0x2D ? -1 : 1; + this.nextChar(); + } else if (ch < 0x30 || ch > 0x39) { + break; + } + + eNotation = true; + } else { + break; + } + } + + if (divideBy !== 0) { + baseValue /= divideBy; + } + + if (eNotation) { + baseValue *= Math.pow(10, powerValueSign * powerValue); + } + + return sign * baseValue; + }, + getString: function Lexer_getString() { + var numParen = 1; + var done = false; + var strBuf = this.strBuf; + strBuf.length = 0; + var ch = this.nextChar(); + + while (true) { + var charBuffered = false; + + switch (ch | 0) { + case -1: + (0, _util.warn)('Unterminated string'); + done = true; + break; + + case 0x28: + ++numParen; + strBuf.push('('); + break; + + case 0x29: + if (--numParen === 0) { + this.nextChar(); + done = true; + } else { + strBuf.push(')'); + } + + break; + + case 0x5C: + ch = this.nextChar(); + + switch (ch) { + case -1: + (0, _util.warn)('Unterminated string'); + done = true; + break; + + case 0x6E: + strBuf.push('\n'); + break; + + case 0x72: + strBuf.push('\r'); + break; + + case 0x74: + strBuf.push('\t'); + break; + + case 0x62: + strBuf.push('\b'); + break; + + case 0x66: + strBuf.push('\f'); + break; + + case 0x5C: + case 0x28: + case 0x29: + strBuf.push(String.fromCharCode(ch)); + break; + + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + var x = ch & 0x0F; + ch = this.nextChar(); + charBuffered = true; + + if (ch >= 0x30 && ch <= 0x37) { + x = (x << 3) + (ch & 0x0F); + ch = this.nextChar(); + + if (ch >= 0x30 && ch <= 0x37) { + charBuffered = false; + x = (x << 3) + (ch & 0x0F); + } + } + + strBuf.push(String.fromCharCode(x)); + break; + + case 0x0D: + if (this.peekChar() === 0x0A) { + this.nextChar(); + } + + break; + + case 0x0A: + break; + + default: + strBuf.push(String.fromCharCode(ch)); + break; + } + + break; + + default: + strBuf.push(String.fromCharCode(ch)); + break; + } + + if (done) { + break; + } + + if (!charBuffered) { + ch = this.nextChar(); + } + } + + return strBuf.join(''); + }, + getName: function Lexer_getName() { + var ch, previousCh; + var strBuf = this.strBuf; + strBuf.length = 0; + + while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) { + if (ch === 0x23) { + ch = this.nextChar(); + + if (specialChars[ch]) { + (0, _util.warn)('Lexer_getName: ' + 'NUMBER SIGN (#) should be followed by a hexadecimal number.'); + strBuf.push('#'); + break; + } + + var x = toHexDigit(ch); + + if (x !== -1) { + previousCh = ch; + ch = this.nextChar(); + var x2 = toHexDigit(ch); + + if (x2 === -1) { + (0, _util.warn)('Lexer_getName: Illegal digit (' + String.fromCharCode(ch) + ') in hexadecimal number.'); + strBuf.push('#', String.fromCharCode(previousCh)); + + if (specialChars[ch]) { + break; + } + + strBuf.push(String.fromCharCode(ch)); + continue; + } + + strBuf.push(String.fromCharCode(x << 4 | x2)); + } else { + strBuf.push('#', String.fromCharCode(ch)); + } + } else { + strBuf.push(String.fromCharCode(ch)); + } + } + + if (strBuf.length > 127) { + (0, _util.warn)('name token is longer than allowed by the spec: ' + strBuf.length); + } + + return _primitives.Name.get(strBuf.join('')); + }, + getHexString: function Lexer_getHexString() { + var strBuf = this.strBuf; + strBuf.length = 0; + var ch = this.currentChar; + var isFirstHex = true; + var firstDigit; + var secondDigit; + + while (true) { + if (ch < 0) { + (0, _util.warn)('Unterminated hex string'); + break; + } else if (ch === 0x3E) { + this.nextChar(); + break; + } else if (specialChars[ch] === 1) { + ch = this.nextChar(); + continue; + } else { + if (isFirstHex) { + firstDigit = toHexDigit(ch); + + if (firstDigit === -1) { + (0, _util.warn)('Ignoring invalid character "' + ch + '" in hex string'); + ch = this.nextChar(); + continue; + } + } else { + secondDigit = toHexDigit(ch); + + if (secondDigit === -1) { + (0, _util.warn)('Ignoring invalid character "' + ch + '" in hex string'); + ch = this.nextChar(); + continue; + } + + strBuf.push(String.fromCharCode(firstDigit << 4 | secondDigit)); + } + + isFirstHex = !isFirstHex; + ch = this.nextChar(); + } + } + + return strBuf.join(''); + }, + getObj: function Lexer_getObj() { + var comment = false; + var ch = this.currentChar; + + while (true) { + if (ch < 0) { + return _primitives.EOF; + } + + if (comment) { + if (ch === 0x0A || ch === 0x0D) { + comment = false; + } + } else if (ch === 0x25) { + comment = true; + } else if (specialChars[ch] !== 1) { + break; + } + + ch = this.nextChar(); + } + + switch (ch | 0) { + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x2B: + case 0x2D: + case 0x2E: + return this.getNumber(); + + case 0x28: + return this.getString(); + + case 0x2F: + return this.getName(); + + case 0x5B: + this.nextChar(); + return _primitives.Cmd.get('['); + + case 0x5D: + this.nextChar(); + return _primitives.Cmd.get(']'); + + case 0x3C: + ch = this.nextChar(); + + if (ch === 0x3C) { + this.nextChar(); + return _primitives.Cmd.get('<<'); + } + + return this.getHexString(); + + case 0x3E: + ch = this.nextChar(); + + if (ch === 0x3E) { + this.nextChar(); + return _primitives.Cmd.get('>>'); + } + + return _primitives.Cmd.get('>'); + + case 0x7B: + this.nextChar(); + return _primitives.Cmd.get('{'); + + case 0x7D: + this.nextChar(); + return _primitives.Cmd.get('}'); + + case 0x29: + this.nextChar(); + throw new _util.FormatError("Illegal character: ".concat(ch)); + } + + var str = String.fromCharCode(ch); + var knownCommands = this.knownCommands; + var knownCommandFound = knownCommands && knownCommands[str] !== undefined; + + while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) { + var possibleCommand = str + String.fromCharCode(ch); + + if (knownCommandFound && knownCommands[possibleCommand] === undefined) { + break; + } + + if (str.length === 128) { + throw new _util.FormatError("Command token too long: ".concat(str.length)); + } + + str = possibleCommand; + knownCommandFound = knownCommands && knownCommands[str] !== undefined; + } + + if (str === 'true') { + return true; + } + + if (str === 'false') { + return false; + } + + if (str === 'null') { + return null; + } + + if (str === 'BI') { + this.beginInlineImagePos = this.stream.pos; + } + + return _primitives.Cmd.get(str); + }, + skipToNextLine: function Lexer_skipToNextLine() { + var ch = this.currentChar; + + while (ch >= 0) { + if (ch === 0x0D) { + ch = this.nextChar(); + + if (ch === 0x0A) { + this.nextChar(); + } + + break; + } else if (ch === 0x0A) { + this.nextChar(); + break; + } + + ch = this.nextChar(); + } + } + }; + return Lexer; +}(); + +exports.Lexer = Lexer; +var Linearization = { + create: function LinearizationCreate(stream) { + function getInt(name, allowZeroValue) { + var obj = linDict.get(name); + + if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) { + return obj; + } + + throw new Error('The "' + name + '" parameter in the linearization ' + 'dictionary is invalid.'); + } + + function getHints() { + var hints = linDict.get('H'), + hintsLength, + item; + + if (Array.isArray(hints) && ((hintsLength = hints.length) === 2 || hintsLength === 4)) { + for (var index = 0; index < hintsLength; index++) { + if (!(Number.isInteger(item = hints[index]) && item > 0)) { + throw new Error('Hint (' + index + ') in the linearization dictionary is invalid.'); + } + } + + return hints; + } + + throw new Error('Hint array in the linearization dictionary is invalid.'); + } + + var parser = new Parser(new Lexer(stream), false, null); + var obj1 = parser.getObj(); + var obj2 = parser.getObj(); + var obj3 = parser.getObj(); + var linDict = parser.getObj(); + var obj, length; + + if (!(Number.isInteger(obj1) && Number.isInteger(obj2) && (0, _primitives.isCmd)(obj3, 'obj') && (0, _primitives.isDict)(linDict) && (0, _util.isNum)(obj = linDict.get('Linearized')) && obj > 0)) { + return null; + } else if ((length = getInt('L')) !== stream.length) { + throw new Error('The "L" parameter in the linearization dictionary ' + 'does not equal the stream length.'); + } + + return { + length: length, + hints: getHints(), + objectNumberFirst: getInt('O'), + endFirst: getInt('E'), + numPages: getInt('N'), + mainXRefEntriesOffset: getInt('T'), + pageFirst: linDict.has('P') ? getInt('P', true) : 0 + }; + } +}; +exports.Linearization = Linearization; + +/***/ }), +/* 157 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.LZWStream = exports.StringStream = exports.StreamsSequenceStream = exports.Stream = exports.RunLengthStream = exports.PredictorStream = exports.NullStream = exports.FlateStream = exports.DecodeStream = exports.DecryptStream = exports.AsciiHexStream = exports.Ascii85Stream = void 0; + +var _util = __w_pdfjs_require__(6); + +var _primitives = __w_pdfjs_require__(155); + +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } + +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } + +function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } + +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } + +var Stream = function StreamClosure() { + function Stream(arrayBuffer, start, length, dict) { + this.bytes = arrayBuffer instanceof Uint8Array ? arrayBuffer : new Uint8Array(arrayBuffer); + this.start = start || 0; + this.pos = this.start; + this.end = start + length || this.bytes.length; + this.dict = dict; + } + + Stream.prototype = { + get length() { + return this.end - this.start; + }, + + get isEmpty() { + return this.length === 0; + }, + + getByte: function Stream_getByte() { + if (this.pos >= this.end) { + return -1; + } + + return this.bytes[this.pos++]; + }, + getUint16: function Stream_getUint16() { + var b0 = this.getByte(); + var b1 = this.getByte(); + + if (b0 === -1 || b1 === -1) { + return -1; + } + + return (b0 << 8) + b1; + }, + getInt32: function Stream_getInt32() { + var b0 = this.getByte(); + var b1 = this.getByte(); + var b2 = this.getByte(); + var b3 = this.getByte(); + return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3; + }, + getBytes: function getBytes(length) { + var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var bytes = this.bytes; + var pos = this.pos; + var strEnd = this.end; + + if (!length) { + var _subarray = bytes.subarray(pos, strEnd); + + return forceClamped ? new Uint8ClampedArray(_subarray) : _subarray; + } + + var end = pos + length; + + if (end > strEnd) { + end = strEnd; + } + + this.pos = end; + var subarray = bytes.subarray(pos, end); + return forceClamped ? new Uint8ClampedArray(subarray) : subarray; + }, + peekByte: function Stream_peekByte() { + var peekedByte = this.getByte(); + this.pos--; + return peekedByte; + }, + peekBytes: function peekBytes(length) { + var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var bytes = this.getBytes(length, forceClamped); + this.pos -= bytes.length; + return bytes; + }, + skip: function Stream_skip(n) { + if (!n) { + n = 1; + } + + this.pos += n; + }, + reset: function Stream_reset() { + this.pos = this.start; + }, + moveStart: function Stream_moveStart() { + this.start = this.pos; + }, + makeSubStream: function Stream_makeSubStream(start, length, dict) { + return new Stream(this.bytes.buffer, start, length, dict); + } + }; + return Stream; +}(); + +exports.Stream = Stream; + +var StringStream = function StringStreamClosure() { + function StringStream(str) { + var bytes = (0, _util.stringToBytes)(str); + Stream.call(this, bytes); + } + + StringStream.prototype = Stream.prototype; + return StringStream; +}(); + +exports.StringStream = StringStream; + +var DecodeStream = function DecodeStreamClosure() { + var emptyBuffer = new Uint8Array(0); + + function DecodeStream(maybeMinBufferLength) { + this._rawMinBufferLength = maybeMinBufferLength || 0; + this.pos = 0; + this.bufferLength = 0; + this.eof = false; + this.buffer = emptyBuffer; + this.minBufferLength = 512; + + if (maybeMinBufferLength) { + while (this.minBufferLength < maybeMinBufferLength) { + this.minBufferLength *= 2; + } + } + } + + DecodeStream.prototype = { + get isEmpty() { + while (!this.eof && this.bufferLength === 0) { + this.readBlock(); + } + + return this.bufferLength === 0; + }, + + ensureBuffer: function DecodeStream_ensureBuffer(requested) { + var buffer = this.buffer; + + if (requested <= buffer.byteLength) { + return buffer; + } + + var size = this.minBufferLength; + + while (size < requested) { + size *= 2; + } + + var buffer2 = new Uint8Array(size); + buffer2.set(buffer); + return this.buffer = buffer2; + }, + getByte: function DecodeStream_getByte() { + var pos = this.pos; + + while (this.bufferLength <= pos) { + if (this.eof) { + return -1; + } + + this.readBlock(); + } + + return this.buffer[this.pos++]; + }, + getUint16: function DecodeStream_getUint16() { + var b0 = this.getByte(); + var b1 = this.getByte(); + + if (b0 === -1 || b1 === -1) { + return -1; + } + + return (b0 << 8) + b1; + }, + getInt32: function DecodeStream_getInt32() { + var b0 = this.getByte(); + var b1 = this.getByte(); + var b2 = this.getByte(); + var b3 = this.getByte(); + return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3; + }, + getBytes: function getBytes(length) { + var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var end, + pos = this.pos; + + if (length) { + this.ensureBuffer(pos + length); + end = pos + length; + + while (!this.eof && this.bufferLength < end) { + this.readBlock(); + } + + var bufEnd = this.bufferLength; + + if (end > bufEnd) { + end = bufEnd; + } + } else { + while (!this.eof) { + this.readBlock(); + } + + end = this.bufferLength; + } + + this.pos = end; + var subarray = this.buffer.subarray(pos, end); + return forceClamped && !(subarray instanceof Uint8ClampedArray) ? new Uint8ClampedArray(subarray) : subarray; + }, + peekByte: function DecodeStream_peekByte() { + var peekedByte = this.getByte(); + this.pos--; + return peekedByte; + }, + peekBytes: function peekBytes(length) { + var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var bytes = this.getBytes(length, forceClamped); + this.pos -= bytes.length; + return bytes; + }, + makeSubStream: function DecodeStream_makeSubStream(start, length, dict) { + var end = start + length; + + while (this.bufferLength <= end && !this.eof) { + this.readBlock(); + } + + return new Stream(this.buffer, start, length, dict); + }, + skip: function DecodeStream_skip(n) { + if (!n) { + n = 1; + } + + this.pos += n; + }, + reset: function DecodeStream_reset() { + this.pos = 0; + }, + getBaseStreams: function DecodeStream_getBaseStreams() { + if (this.str && this.str.getBaseStreams) { + return this.str.getBaseStreams(); + } + + return []; + } + }; + return DecodeStream; +}(); + +exports.DecodeStream = DecodeStream; + +var StreamsSequenceStream = function StreamsSequenceStreamClosure() { + function StreamsSequenceStream(streams) { + this.streams = streams; + var maybeLength = 0; + + for (var i = 0, ii = streams.length; i < ii; i++) { + var stream = streams[i]; + + if (stream instanceof DecodeStream) { + maybeLength += stream._rawMinBufferLength; + } else { + maybeLength += stream.length; + } + } + + DecodeStream.call(this, maybeLength); + } + + StreamsSequenceStream.prototype = Object.create(DecodeStream.prototype); + + StreamsSequenceStream.prototype.readBlock = function streamSequenceStreamReadBlock() { + var streams = this.streams; + + if (streams.length === 0) { + this.eof = true; + return; + } + + var stream = streams.shift(); + var chunk = stream.getBytes(); + var bufferLength = this.bufferLength; + var newLength = bufferLength + chunk.length; + var buffer = this.ensureBuffer(newLength); + buffer.set(chunk, bufferLength); + this.bufferLength = newLength; + }; + + StreamsSequenceStream.prototype.getBaseStreams = function StreamsSequenceStream_getBaseStreams() { + var baseStreams = []; + + for (var i = 0, ii = this.streams.length; i < ii; i++) { + var stream = this.streams[i]; + + if (stream.getBaseStreams) { + baseStreams.push.apply(baseStreams, _toConsumableArray(stream.getBaseStreams())); + } + } + + return baseStreams; + }; + + return StreamsSequenceStream; +}(); + +exports.StreamsSequenceStream = StreamsSequenceStream; + +var FlateStream = function FlateStreamClosure() { + var codeLenCodeMap = new Int32Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); + var lengthDecode = new Int32Array([0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a, 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f, 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073, 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102]); + var distDecode = new Int32Array([0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d, 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1, 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01, 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001]); + var fixedLitCodeTab = [new Int32Array([0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0, 0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0, 0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0, 0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8, 0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8, 0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8, 0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4, 0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4, 0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4, 0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc, 0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec, 0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc, 0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2, 0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2, 0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2, 0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca, 0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea, 0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da, 0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6, 0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6, 0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6, 0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce, 0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee, 0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de, 0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe, 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1, 0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1, 0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1, 0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9, 0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9, 0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9, 0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5, 0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5, 0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5, 0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd, 0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed, 0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd, 0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3, 0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3, 0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3, 0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb, 0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb, 0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db, 0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7, 0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7, 0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7, 0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf, 0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef, 0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df, 0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff]), 9]; + var fixedDistCodeTab = [new Int32Array([0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c, 0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000, 0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d, 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000]), 5]; + + function FlateStream(str, maybeLength) { + this.str = str; + this.dict = str.dict; + var cmf = str.getByte(); + var flg = str.getByte(); + + if (cmf === -1 || flg === -1) { + throw new _util.FormatError("Invalid header in flate stream: ".concat(cmf, ", ").concat(flg)); + } + + if ((cmf & 0x0f) !== 0x08) { + throw new _util.FormatError("Unknown compression method in flate stream: ".concat(cmf, ", ").concat(flg)); + } + + if (((cmf << 8) + flg) % 31 !== 0) { + throw new _util.FormatError("Bad FCHECK in flate stream: ".concat(cmf, ", ").concat(flg)); + } + + if (flg & 0x20) { + throw new _util.FormatError("FDICT bit set in flate stream: ".concat(cmf, ", ").concat(flg)); + } + + this.codeSize = 0; + this.codeBuf = 0; + DecodeStream.call(this, maybeLength); + } + + FlateStream.prototype = Object.create(DecodeStream.prototype); + + FlateStream.prototype.getBits = function FlateStream_getBits(bits) { + var str = this.str; + var codeSize = this.codeSize; + var codeBuf = this.codeBuf; + var b; + + while (codeSize < bits) { + if ((b = str.getByte()) === -1) { + throw new _util.FormatError('Bad encoding in flate stream'); + } + + codeBuf |= b << codeSize; + codeSize += 8; + } + + b = codeBuf & (1 << bits) - 1; + this.codeBuf = codeBuf >> bits; + this.codeSize = codeSize -= bits; + return b; + }; + + FlateStream.prototype.getCode = function FlateStream_getCode(table) { + var str = this.str; + var codes = table[0]; + var maxLen = table[1]; + var codeSize = this.codeSize; + var codeBuf = this.codeBuf; + var b; + + while (codeSize < maxLen) { + if ((b = str.getByte()) === -1) { + break; + } + + codeBuf |= b << codeSize; + codeSize += 8; + } + + var code = codes[codeBuf & (1 << maxLen) - 1]; + var codeLen = code >> 16; + var codeVal = code & 0xffff; + + if (codeLen < 1 || codeSize < codeLen) { + throw new _util.FormatError('Bad encoding in flate stream'); + } + + this.codeBuf = codeBuf >> codeLen; + this.codeSize = codeSize - codeLen; + return codeVal; + }; + + FlateStream.prototype.generateHuffmanTable = function flateStreamGenerateHuffmanTable(lengths) { + var n = lengths.length; + var maxLen = 0; + var i; + + for (i = 0; i < n; ++i) { + if (lengths[i] > maxLen) { + maxLen = lengths[i]; + } + } + + var size = 1 << maxLen; + var codes = new Int32Array(size); + + for (var len = 1, code = 0, skip = 2; len <= maxLen; ++len, code <<= 1, skip <<= 1) { + for (var val = 0; val < n; ++val) { + if (lengths[val] === len) { + var code2 = 0; + var t = code; + + for (i = 0; i < len; ++i) { + code2 = code2 << 1 | t & 1; + t >>= 1; + } + + for (i = code2; i < size; i += skip) { + codes[i] = len << 16 | val; + } + + ++code; + } + } + } + + return [codes, maxLen]; + }; + + FlateStream.prototype.readBlock = function FlateStream_readBlock() { + var buffer, len; + var str = this.str; + var hdr = this.getBits(3); + + if (hdr & 1) { + this.eof = true; + } + + hdr >>= 1; + + if (hdr === 0) { + var b; + + if ((b = str.getByte()) === -1) { + throw new _util.FormatError('Bad block header in flate stream'); + } + + var blockLen = b; + + if ((b = str.getByte()) === -1) { + throw new _util.FormatError('Bad block header in flate stream'); + } + + blockLen |= b << 8; + + if ((b = str.getByte()) === -1) { + throw new _util.FormatError('Bad block header in flate stream'); + } + + var check = b; + + if ((b = str.getByte()) === -1) { + throw new _util.FormatError('Bad block header in flate stream'); + } + + check |= b << 8; + + if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) { + throw new _util.FormatError('Bad uncompressed block length in flate stream'); + } + + this.codeBuf = 0; + this.codeSize = 0; + var bufferLength = this.bufferLength; + buffer = this.ensureBuffer(bufferLength + blockLen); + var end = bufferLength + blockLen; + this.bufferLength = end; + + if (blockLen === 0) { + if (str.peekByte() === -1) { + this.eof = true; + } + } else { + for (var n = bufferLength; n < end; ++n) { + if ((b = str.getByte()) === -1) { + this.eof = true; + break; + } + + buffer[n] = b; + } + } + + return; + } + + var litCodeTable; + var distCodeTable; + + if (hdr === 1) { + litCodeTable = fixedLitCodeTab; + distCodeTable = fixedDistCodeTab; + } else if (hdr === 2) { + var numLitCodes = this.getBits(5) + 257; + var numDistCodes = this.getBits(5) + 1; + var numCodeLenCodes = this.getBits(4) + 4; + var codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length); + var i; + + for (i = 0; i < numCodeLenCodes; ++i) { + codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3); + } + + var codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths); + len = 0; + i = 0; + var codes = numLitCodes + numDistCodes; + var codeLengths = new Uint8Array(codes); + var bitsLength, bitsOffset, what; + + while (i < codes) { + var code = this.getCode(codeLenCodeTab); + + if (code === 16) { + bitsLength = 2; + bitsOffset = 3; + what = len; + } else if (code === 17) { + bitsLength = 3; + bitsOffset = 3; + what = len = 0; + } else if (code === 18) { + bitsLength = 7; + bitsOffset = 11; + what = len = 0; + } else { + codeLengths[i++] = len = code; + continue; + } + + var repeatLength = this.getBits(bitsLength) + bitsOffset; + + while (repeatLength-- > 0) { + codeLengths[i++] = what; + } + } + + litCodeTable = this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes)); + distCodeTable = this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes)); + } else { + throw new _util.FormatError('Unknown block type in flate stream'); + } + + buffer = this.buffer; + var limit = buffer ? buffer.length : 0; + var pos = this.bufferLength; + + while (true) { + var code1 = this.getCode(litCodeTable); + + if (code1 < 256) { + if (pos + 1 >= limit) { + buffer = this.ensureBuffer(pos + 1); + limit = buffer.length; + } + + buffer[pos++] = code1; + continue; + } + + if (code1 === 256) { + this.bufferLength = pos; + return; + } + + code1 -= 257; + code1 = lengthDecode[code1]; + var code2 = code1 >> 16; + + if (code2 > 0) { + code2 = this.getBits(code2); + } + + len = (code1 & 0xffff) + code2; + code1 = this.getCode(distCodeTable); + code1 = distDecode[code1]; + code2 = code1 >> 16; + + if (code2 > 0) { + code2 = this.getBits(code2); + } + + var dist = (code1 & 0xffff) + code2; + + if (pos + len >= limit) { + buffer = this.ensureBuffer(pos + len); + limit = buffer.length; + } + + for (var k = 0; k < len; ++k, ++pos) { + buffer[pos] = buffer[pos - dist]; + } + } + }; + + return FlateStream; +}(); + +exports.FlateStream = FlateStream; + +var PredictorStream = function PredictorStreamClosure() { + function PredictorStream(str, maybeLength, params) { + if (!(0, _primitives.isDict)(params)) { + return str; + } + + var predictor = this.predictor = params.get('Predictor') || 1; + + if (predictor <= 1) { + return str; + } + + if (predictor !== 2 && (predictor < 10 || predictor > 15)) { + throw new _util.FormatError("Unsupported predictor: ".concat(predictor)); + } + + if (predictor === 2) { + this.readBlock = this.readBlockTiff; + } else { + this.readBlock = this.readBlockPng; + } + + this.str = str; + this.dict = str.dict; + var colors = this.colors = params.get('Colors') || 1; + var bits = this.bits = params.get('BitsPerComponent') || 8; + var columns = this.columns = params.get('Columns') || 1; + this.pixBytes = colors * bits + 7 >> 3; + this.rowBytes = columns * colors * bits + 7 >> 3; + DecodeStream.call(this, maybeLength); + return this; + } + + PredictorStream.prototype = Object.create(DecodeStream.prototype); + + PredictorStream.prototype.readBlockTiff = function predictorStreamReadBlockTiff() { + var rowBytes = this.rowBytes; + var bufferLength = this.bufferLength; + var buffer = this.ensureBuffer(bufferLength + rowBytes); + var bits = this.bits; + var colors = this.colors; + var rawBytes = this.str.getBytes(rowBytes); + this.eof = !rawBytes.length; + + if (this.eof) { + return; + } + + var inbuf = 0, + outbuf = 0; + var inbits = 0, + outbits = 0; + var pos = bufferLength; + var i; + + if (bits === 1 && colors === 1) { + for (i = 0; i < rowBytes; ++i) { + var c = rawBytes[i] ^ inbuf; + c ^= c >> 1; + c ^= c >> 2; + c ^= c >> 4; + inbuf = (c & 1) << 7; + buffer[pos++] = c; + } + } else if (bits === 8) { + for (i = 0; i < colors; ++i) { + buffer[pos++] = rawBytes[i]; + } + + for (; i < rowBytes; ++i) { + buffer[pos] = buffer[pos - colors] + rawBytes[i]; + pos++; + } + } else if (bits === 16) { + var bytesPerPixel = colors * 2; + + for (i = 0; i < bytesPerPixel; ++i) { + buffer[pos++] = rawBytes[i]; + } + + for (; i < rowBytes; i += 2) { + var sum = ((rawBytes[i] & 0xFF) << 8) + (rawBytes[i + 1] & 0xFF) + ((buffer[pos - bytesPerPixel] & 0xFF) << 8) + (buffer[pos - bytesPerPixel + 1] & 0xFF); + buffer[pos++] = sum >> 8 & 0xFF; + buffer[pos++] = sum & 0xFF; + } + } else { + var compArray = new Uint8Array(colors + 1); + var bitMask = (1 << bits) - 1; + var j = 0, + k = bufferLength; + var columns = this.columns; + + for (i = 0; i < columns; ++i) { + for (var kk = 0; kk < colors; ++kk) { + if (inbits < bits) { + inbuf = inbuf << 8 | rawBytes[j++] & 0xFF; + inbits += 8; + } + + compArray[kk] = compArray[kk] + (inbuf >> inbits - bits) & bitMask; + inbits -= bits; + outbuf = outbuf << bits | compArray[kk]; + outbits += bits; + + if (outbits >= 8) { + buffer[k++] = outbuf >> outbits - 8 & 0xFF; + outbits -= 8; + } + } + } + + if (outbits > 0) { + buffer[k++] = (outbuf << 8 - outbits) + (inbuf & (1 << 8 - outbits) - 1); + } + } + + this.bufferLength += rowBytes; + }; + + PredictorStream.prototype.readBlockPng = function predictorStreamReadBlockPng() { + var rowBytes = this.rowBytes; + var pixBytes = this.pixBytes; + var predictor = this.str.getByte(); + var rawBytes = this.str.getBytes(rowBytes); + this.eof = !rawBytes.length; + + if (this.eof) { + return; + } + + var bufferLength = this.bufferLength; + var buffer = this.ensureBuffer(bufferLength + rowBytes); + var prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength); + + if (prevRow.length === 0) { + prevRow = new Uint8Array(rowBytes); + } + + var i, + j = bufferLength, + up, + c; + + switch (predictor) { + case 0: + for (i = 0; i < rowBytes; ++i) { + buffer[j++] = rawBytes[i]; + } + + break; + + case 1: + for (i = 0; i < pixBytes; ++i) { + buffer[j++] = rawBytes[i]; + } + + for (; i < rowBytes; ++i) { + buffer[j] = buffer[j - pixBytes] + rawBytes[i] & 0xFF; + j++; + } + + break; + + case 2: + for (i = 0; i < rowBytes; ++i) { + buffer[j++] = prevRow[i] + rawBytes[i] & 0xFF; + } + + break; + + case 3: + for (i = 0; i < pixBytes; ++i) { + buffer[j++] = (prevRow[i] >> 1) + rawBytes[i]; + } + + for (; i < rowBytes; ++i) { + buffer[j] = (prevRow[i] + buffer[j - pixBytes] >> 1) + rawBytes[i] & 0xFF; + j++; + } + + break; + + case 4: + for (i = 0; i < pixBytes; ++i) { + up = prevRow[i]; + c = rawBytes[i]; + buffer[j++] = up + c; + } + + for (; i < rowBytes; ++i) { + up = prevRow[i]; + var upLeft = prevRow[i - pixBytes]; + var left = buffer[j - pixBytes]; + var p = left + up - upLeft; + var pa = p - left; + + if (pa < 0) { + pa = -pa; + } + + var pb = p - up; + + if (pb < 0) { + pb = -pb; + } + + var pc = p - upLeft; + + if (pc < 0) { + pc = -pc; + } + + c = rawBytes[i]; + + if (pa <= pb && pa <= pc) { + buffer[j++] = left + c; + } else if (pb <= pc) { + buffer[j++] = up + c; + } else { + buffer[j++] = upLeft + c; + } + } + + break; + + default: + throw new _util.FormatError("Unsupported predictor: ".concat(predictor)); + } + + this.bufferLength += rowBytes; + }; + + return PredictorStream; +}(); + +exports.PredictorStream = PredictorStream; + +var DecryptStream = function DecryptStreamClosure() { + function DecryptStream(str, maybeLength, decrypt) { + this.str = str; + this.dict = str.dict; + this.decrypt = decrypt; + this.nextChunk = null; + this.initialized = false; + DecodeStream.call(this, maybeLength); + } + + var chunkSize = 512; + DecryptStream.prototype = Object.create(DecodeStream.prototype); + + DecryptStream.prototype.readBlock = function DecryptStream_readBlock() { + var chunk; + + if (this.initialized) { + chunk = this.nextChunk; + } else { + chunk = this.str.getBytes(chunkSize); + this.initialized = true; + } + + if (!chunk || chunk.length === 0) { + this.eof = true; + return; + } + + this.nextChunk = this.str.getBytes(chunkSize); + var hasMoreData = this.nextChunk && this.nextChunk.length > 0; + var decrypt = this.decrypt; + chunk = decrypt(chunk, !hasMoreData); + var bufferLength = this.bufferLength; + var i, + n = chunk.length; + var buffer = this.ensureBuffer(bufferLength + n); + + for (i = 0; i < n; i++) { + buffer[bufferLength++] = chunk[i]; + } + + this.bufferLength = bufferLength; + }; + + return DecryptStream; +}(); + +exports.DecryptStream = DecryptStream; + +var Ascii85Stream = function Ascii85StreamClosure() { + function Ascii85Stream(str, maybeLength) { + this.str = str; + this.dict = str.dict; + this.input = new Uint8Array(5); + + if (maybeLength) { + maybeLength = 0.8 * maybeLength; + } + + DecodeStream.call(this, maybeLength); + } + + Ascii85Stream.prototype = Object.create(DecodeStream.prototype); + + Ascii85Stream.prototype.readBlock = function Ascii85Stream_readBlock() { + var TILDA_CHAR = 0x7E; + var Z_LOWER_CHAR = 0x7A; + var EOF = -1; + var str = this.str; + var c = str.getByte(); + + while ((0, _util.isSpace)(c)) { + c = str.getByte(); + } + + if (c === EOF || c === TILDA_CHAR) { + this.eof = true; + return; + } + + var bufferLength = this.bufferLength, + buffer; + var i; + + if (c === Z_LOWER_CHAR) { + buffer = this.ensureBuffer(bufferLength + 4); + + for (i = 0; i < 4; ++i) { + buffer[bufferLength + i] = 0; + } + + this.bufferLength += 4; + } else { + var input = this.input; + input[0] = c; + + for (i = 1; i < 5; ++i) { + c = str.getByte(); + + while ((0, _util.isSpace)(c)) { + c = str.getByte(); + } + + input[i] = c; + + if (c === EOF || c === TILDA_CHAR) { + break; + } + } + + buffer = this.ensureBuffer(bufferLength + i - 1); + this.bufferLength += i - 1; + + if (i < 5) { + for (; i < 5; ++i) { + input[i] = 0x21 + 84; + } + + this.eof = true; + } + + var t = 0; + + for (i = 0; i < 5; ++i) { + t = t * 85 + (input[i] - 0x21); + } + + for (i = 3; i >= 0; --i) { + buffer[bufferLength + i] = t & 0xFF; + t >>= 8; + } + } + }; + + return Ascii85Stream; +}(); + +exports.Ascii85Stream = Ascii85Stream; + +var AsciiHexStream = function AsciiHexStreamClosure() { + function AsciiHexStream(str, maybeLength) { + this.str = str; + this.dict = str.dict; + this.firstDigit = -1; + + if (maybeLength) { + maybeLength = 0.5 * maybeLength; + } + + DecodeStream.call(this, maybeLength); + } + + AsciiHexStream.prototype = Object.create(DecodeStream.prototype); + + AsciiHexStream.prototype.readBlock = function AsciiHexStream_readBlock() { + var UPSTREAM_BLOCK_SIZE = 8000; + var bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE); + + if (!bytes.length) { + this.eof = true; + return; + } + + var maxDecodeLength = bytes.length + 1 >> 1; + var buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength); + var bufferLength = this.bufferLength; + var firstDigit = this.firstDigit; + + for (var i = 0, ii = bytes.length; i < ii; i++) { + var ch = bytes[i], + digit; + + if (ch >= 0x30 && ch <= 0x39) { + digit = ch & 0x0F; + } else if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) { + digit = (ch & 0x0F) + 9; + } else if (ch === 0x3E) { + this.eof = true; + break; + } else { + continue; + } + + if (firstDigit < 0) { + firstDigit = digit; + } else { + buffer[bufferLength++] = firstDigit << 4 | digit; + firstDigit = -1; + } + } + + if (firstDigit >= 0 && this.eof) { + buffer[bufferLength++] = firstDigit << 4; + firstDigit = -1; + } + + this.firstDigit = firstDigit; + this.bufferLength = bufferLength; + }; + + return AsciiHexStream; +}(); + +exports.AsciiHexStream = AsciiHexStream; + +var RunLengthStream = function RunLengthStreamClosure() { + function RunLengthStream(str, maybeLength) { + this.str = str; + this.dict = str.dict; + DecodeStream.call(this, maybeLength); + } + + RunLengthStream.prototype = Object.create(DecodeStream.prototype); + + RunLengthStream.prototype.readBlock = function RunLengthStream_readBlock() { + var repeatHeader = this.str.getBytes(2); + + if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) { + this.eof = true; + return; + } + + var buffer; + var bufferLength = this.bufferLength; + var n = repeatHeader[0]; + + if (n < 128) { + buffer = this.ensureBuffer(bufferLength + n + 1); + buffer[bufferLength++] = repeatHeader[1]; + + if (n > 0) { + var source = this.str.getBytes(n); + buffer.set(source, bufferLength); + bufferLength += n; + } + } else { + n = 257 - n; + var b = repeatHeader[1]; + buffer = this.ensureBuffer(bufferLength + n + 1); + + for (var i = 0; i < n; i++) { + buffer[bufferLength++] = b; + } + } + + this.bufferLength = bufferLength; + }; + + return RunLengthStream; +}(); + +exports.RunLengthStream = RunLengthStream; + +var LZWStream = function LZWStreamClosure() { + function LZWStream(str, maybeLength, earlyChange) { + this.str = str; + this.dict = str.dict; + this.cachedData = 0; + this.bitsCached = 0; + var maxLzwDictionarySize = 4096; + var lzwState = { + earlyChange: earlyChange, + codeLength: 9, + nextCode: 258, + dictionaryValues: new Uint8Array(maxLzwDictionarySize), + dictionaryLengths: new Uint16Array(maxLzwDictionarySize), + dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize), + currentSequence: new Uint8Array(maxLzwDictionarySize), + currentSequenceLength: 0 + }; + + for (var i = 0; i < 256; ++i) { + lzwState.dictionaryValues[i] = i; + lzwState.dictionaryLengths[i] = 1; + } + + this.lzwState = lzwState; + DecodeStream.call(this, maybeLength); + } + + LZWStream.prototype = Object.create(DecodeStream.prototype); + + LZWStream.prototype.readBits = function LZWStream_readBits(n) { + var bitsCached = this.bitsCached; + var cachedData = this.cachedData; + + while (bitsCached < n) { + var c = this.str.getByte(); + + if (c === -1) { + this.eof = true; + return null; + } + + cachedData = cachedData << 8 | c; + bitsCached += 8; + } + + this.bitsCached = bitsCached -= n; + this.cachedData = cachedData; + this.lastCode = null; + return cachedData >>> bitsCached & (1 << n) - 1; + }; + + LZWStream.prototype.readBlock = function LZWStream_readBlock() { + var blockSize = 512; + var estimatedDecodedSize = blockSize * 2, + decodedSizeDelta = blockSize; + var i, j, q; + var lzwState = this.lzwState; + + if (!lzwState) { + return; + } + + var earlyChange = lzwState.earlyChange; + var nextCode = lzwState.nextCode; + var dictionaryValues = lzwState.dictionaryValues; + var dictionaryLengths = lzwState.dictionaryLengths; + var dictionaryPrevCodes = lzwState.dictionaryPrevCodes; + var codeLength = lzwState.codeLength; + var prevCode = lzwState.prevCode; + var currentSequence = lzwState.currentSequence; + var currentSequenceLength = lzwState.currentSequenceLength; + var decodedLength = 0; + var currentBufferLength = this.bufferLength; + var buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize); + + for (i = 0; i < blockSize; i++) { + var code = this.readBits(codeLength); + var hasPrev = currentSequenceLength > 0; + + if (code < 256) { + currentSequence[0] = code; + currentSequenceLength = 1; + } else if (code >= 258) { + if (code < nextCode) { + currentSequenceLength = dictionaryLengths[code]; + + for (j = currentSequenceLength - 1, q = code; j >= 0; j--) { + currentSequence[j] = dictionaryValues[q]; + q = dictionaryPrevCodes[q]; + } + } else { + currentSequence[currentSequenceLength++] = currentSequence[0]; + } + } else if (code === 256) { + codeLength = 9; + nextCode = 258; + currentSequenceLength = 0; + continue; + } else { + this.eof = true; + delete this.lzwState; + break; + } + + if (hasPrev) { + dictionaryPrevCodes[nextCode] = prevCode; + dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1; + dictionaryValues[nextCode] = currentSequence[0]; + nextCode++; + codeLength = nextCode + earlyChange & nextCode + earlyChange - 1 ? codeLength : Math.min(Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1, 12) | 0; + } + + prevCode = code; + decodedLength += currentSequenceLength; + + if (estimatedDecodedSize < decodedLength) { + do { + estimatedDecodedSize += decodedSizeDelta; + } while (estimatedDecodedSize < decodedLength); + + buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize); + } + + for (j = 0; j < currentSequenceLength; j++) { + buffer[currentBufferLength++] = currentSequence[j]; + } + } + + lzwState.nextCode = nextCode; + lzwState.codeLength = codeLength; + lzwState.prevCode = prevCode; + lzwState.currentSequenceLength = currentSequenceLength; + this.bufferLength = currentBufferLength; + }; + + return LZWStream; +}(); + +exports.LZWStream = LZWStream; + +var NullStream = function NullStreamClosure() { + function NullStream() { + Stream.call(this, new Uint8Array(0)); + } + + NullStream.prototype = Stream.prototype; + return NullStream; +}(); + +exports.NullStream = NullStream; + +/***/ }), +/* 158 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.CCITTFaxStream = void 0; + +var _primitives = __w_pdfjs_require__(155); + +var _ccitt = __w_pdfjs_require__(159); + +var _stream = __w_pdfjs_require__(157); + +var CCITTFaxStream = function CCITTFaxStreamClosure() { + function CCITTFaxStream(str, maybeLength, params) { + this.str = str; + this.dict = str.dict; + + if (!(0, _primitives.isDict)(params)) { + params = _primitives.Dict.empty; + } + + var source = { + next: function next() { + return str.getByte(); + } + }; + this.ccittFaxDecoder = new _ccitt.CCITTFaxDecoder(source, { + K: params.get('K'), + EndOfLine: params.get('EndOfLine'), + EncodedByteAlign: params.get('EncodedByteAlign'), + Columns: params.get('Columns'), + Rows: params.get('Rows'), + EndOfBlock: params.get('EndOfBlock'), + BlackIs1: params.get('BlackIs1') + }); + + _stream.DecodeStream.call(this, maybeLength); + } + + CCITTFaxStream.prototype = Object.create(_stream.DecodeStream.prototype); + + CCITTFaxStream.prototype.readBlock = function () { + while (!this.eof) { + var c = this.ccittFaxDecoder.readNextChar(); + + if (c === -1) { + this.eof = true; + return; + } + + this.ensureBuffer(this.bufferLength + 1); + this.buffer[this.bufferLength++] = c; + } + }; + + return CCITTFaxStream; +}(); + +exports.CCITTFaxStream = CCITTFaxStream; + +/***/ }), +/* 159 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.CCITTFaxDecoder = void 0; + +var _util = __w_pdfjs_require__(6); + +var CCITTFaxDecoder = function CCITTFaxDecoder() { + var ccittEOL = -2; + var ccittEOF = -1; + var twoDimPass = 0; + var twoDimHoriz = 1; + var twoDimVert0 = 2; + var twoDimVertR1 = 3; + var twoDimVertL1 = 4; + var twoDimVertR2 = 5; + var twoDimVertL2 = 6; + var twoDimVertR3 = 7; + var twoDimVertL3 = 8; + var twoDimTable = [[-1, -1], [-1, -1], [7, twoDimVertL3], [7, twoDimVertR3], [6, twoDimVertL2], [6, twoDimVertL2], [6, twoDimVertR2], [6, twoDimVertR2], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0]]; + var whiteTable1 = [[-1, -1], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [12, 1984], [12, 2048], [12, 2112], [12, 2176], [12, 2240], [12, 2304], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [12, 2368], [12, 2432], [12, 2496], [12, 2560]]; + var whiteTable2 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [8, 29], [8, 29], [8, 30], [8, 30], [8, 45], [8, 45], [8, 46], [8, 46], [7, 22], [7, 22], [7, 22], [7, 22], [7, 23], [7, 23], [7, 23], [7, 23], [8, 47], [8, 47], [8, 48], [8, 48], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [7, 20], [7, 20], [7, 20], [7, 20], [8, 33], [8, 33], [8, 34], [8, 34], [8, 35], [8, 35], [8, 36], [8, 36], [8, 37], [8, 37], [8, 38], [8, 38], [7, 19], [7, 19], [7, 19], [7, 19], [8, 31], [8, 31], [8, 32], [8, 32], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [8, 53], [8, 53], [8, 54], [8, 54], [7, 26], [7, 26], [7, 26], [7, 26], [8, 39], [8, 39], [8, 40], [8, 40], [8, 41], [8, 41], [8, 42], [8, 42], [8, 43], [8, 43], [8, 44], [8, 44], [7, 21], [7, 21], [7, 21], [7, 21], [7, 28], [7, 28], [7, 28], [7, 28], [8, 61], [8, 61], [8, 62], [8, 62], [8, 63], [8, 63], [8, 0], [8, 0], [8, 320], [8, 320], [8, 384], [8, 384], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [7, 27], [7, 27], [7, 27], [7, 27], [8, 59], [8, 59], [8, 60], [8, 60], [9, 1472], [9, 1536], [9, 1600], [9, 1728], [7, 18], [7, 18], [7, 18], [7, 18], [7, 24], [7, 24], [7, 24], [7, 24], [8, 49], [8, 49], [8, 50], [8, 50], [8, 51], [8, 51], [8, 52], [8, 52], [7, 25], [7, 25], [7, 25], [7, 25], [8, 55], [8, 55], [8, 56], [8, 56], [8, 57], [8, 57], [8, 58], [8, 58], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [8, 448], [8, 448], [8, 512], [8, 512], [9, 704], [9, 768], [8, 640], [8, 640], [8, 576], [8, 576], [9, 832], [9, 896], [9, 960], [9, 1024], [9, 1088], [9, 1152], [9, 1216], [9, 1280], [9, 1344], [9, 1408], [7, 256], [7, 256], [7, 256], [7, 256], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7]]; + var blackTable1 = [[-1, -1], [-1, -1], [12, ccittEOL], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [11, 1792], [11, 1792], [12, 1984], [12, 1984], [12, 2048], [12, 2048], [12, 2112], [12, 2112], [12, 2176], [12, 2176], [12, 2240], [12, 2240], [12, 2304], [12, 2304], [11, 1856], [11, 1856], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [11, 1920], [11, 1920], [12, 2368], [12, 2368], [12, 2432], [12, 2432], [12, 2496], [12, 2496], [12, 2560], [12, 2560], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [12, 52], [12, 52], [13, 640], [13, 704], [13, 768], [13, 832], [12, 55], [12, 55], [12, 56], [12, 56], [13, 1280], [13, 1344], [13, 1408], [13, 1472], [12, 59], [12, 59], [12, 60], [12, 60], [13, 1536], [13, 1600], [11, 24], [11, 24], [11, 24], [11, 24], [11, 25], [11, 25], [11, 25], [11, 25], [13, 1664], [13, 1728], [12, 320], [12, 320], [12, 384], [12, 384], [12, 448], [12, 448], [13, 512], [13, 576], [12, 53], [12, 53], [12, 54], [12, 54], [13, 896], [13, 960], [13, 1024], [13, 1088], [13, 1152], [13, 1216], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64]]; + var blackTable2 = [[8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [11, 23], [11, 23], [12, 50], [12, 51], [12, 44], [12, 45], [12, 46], [12, 47], [12, 57], [12, 58], [12, 61], [12, 256], [10, 16], [10, 16], [10, 16], [10, 16], [10, 17], [10, 17], [10, 17], [10, 17], [12, 48], [12, 49], [12, 62], [12, 63], [12, 30], [12, 31], [12, 32], [12, 33], [12, 40], [12, 41], [11, 22], [11, 22], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [12, 128], [12, 192], [12, 26], [12, 27], [12, 28], [12, 29], [11, 19], [11, 19], [11, 20], [11, 20], [12, 34], [12, 35], [12, 36], [12, 37], [12, 38], [12, 39], [11, 21], [11, 21], [12, 42], [12, 43], [10, 0], [10, 0], [10, 0], [10, 0], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12]]; + var blackTable3 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [6, 9], [6, 8], [5, 7], [5, 7], [4, 6], [4, 6], [4, 6], [4, 6], [4, 5], [4, 5], [4, 5], [4, 5], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2]]; + + function CCITTFaxDecoder(source) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + if (!source || typeof source.next !== 'function') { + throw new Error('CCITTFaxDecoder - invalid "source" parameter.'); + } + + this.source = source; + this.eof = false; + this.encoding = options['K'] || 0; + this.eoline = options['EndOfLine'] || false; + this.byteAlign = options['EncodedByteAlign'] || false; + this.columns = options['Columns'] || 1728; + this.rows = options['Rows'] || 0; + var eoblock = options['EndOfBlock']; + + if (eoblock === null || eoblock === undefined) { + eoblock = true; + } + + this.eoblock = eoblock; + this.black = options['BlackIs1'] || false; + this.codingLine = new Uint32Array(this.columns + 1); + this.refLine = new Uint32Array(this.columns + 2); + this.codingLine[0] = this.columns; + this.codingPos = 0; + this.row = 0; + this.nextLine2D = this.encoding < 0; + this.inputBits = 0; + this.inputBuf = 0; + this.outputBits = 0; + this.rowsDone = false; + var code1; + + while ((code1 = this._lookBits(12)) === 0) { + this._eatBits(1); + } + + if (code1 === 1) { + this._eatBits(12); + } + + if (this.encoding > 0) { + this.nextLine2D = !this._lookBits(1); + + this._eatBits(1); + } + } + + CCITTFaxDecoder.prototype = { + readNextChar: function readNextChar() { + if (this.eof) { + return -1; + } + + var refLine = this.refLine; + var codingLine = this.codingLine; + var columns = this.columns; + var refPos, blackPixels, bits, i; + + if (this.outputBits === 0) { + if (this.rowsDone) { + this.eof = true; + } + + if (this.eof) { + return -1; + } + + this.err = false; + var code1, code2, code3; + + if (this.nextLine2D) { + for (i = 0; codingLine[i] < columns; ++i) { + refLine[i] = codingLine[i]; + } + + refLine[i++] = columns; + refLine[i] = columns; + codingLine[0] = 0; + this.codingPos = 0; + refPos = 0; + blackPixels = 0; + + while (codingLine[this.codingPos] < columns) { + code1 = this._getTwoDimCode(); + + switch (code1) { + case twoDimPass: + this._addPixels(refLine[refPos + 1], blackPixels); + + if (refLine[refPos + 1] < columns) { + refPos += 2; + } + + break; + + case twoDimHoriz: + code1 = code2 = 0; + + if (blackPixels) { + do { + code1 += code3 = this._getBlackCode(); + } while (code3 >= 64); + + do { + code2 += code3 = this._getWhiteCode(); + } while (code3 >= 64); + } else { + do { + code1 += code3 = this._getWhiteCode(); + } while (code3 >= 64); + + do { + code2 += code3 = this._getBlackCode(); + } while (code3 >= 64); + } + + this._addPixels(codingLine[this.codingPos] + code1, blackPixels); + + if (codingLine[this.codingPos] < columns) { + this._addPixels(codingLine[this.codingPos] + code2, blackPixels ^ 1); + } + + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + + break; + + case twoDimVertR3: + this._addPixels(refLine[refPos] + 3, blackPixels); + + blackPixels ^= 1; + + if (codingLine[this.codingPos] < columns) { + ++refPos; + + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + + break; + + case twoDimVertR2: + this._addPixels(refLine[refPos] + 2, blackPixels); + + blackPixels ^= 1; + + if (codingLine[this.codingPos] < columns) { + ++refPos; + + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + + break; + + case twoDimVertR1: + this._addPixels(refLine[refPos] + 1, blackPixels); + + blackPixels ^= 1; + + if (codingLine[this.codingPos] < columns) { + ++refPos; + + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + + break; + + case twoDimVert0: + this._addPixels(refLine[refPos], blackPixels); + + blackPixels ^= 1; + + if (codingLine[this.codingPos] < columns) { + ++refPos; + + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + + break; + + case twoDimVertL3: + this._addPixelsNeg(refLine[refPos] - 3, blackPixels); + + blackPixels ^= 1; + + if (codingLine[this.codingPos] < columns) { + if (refPos > 0) { + --refPos; + } else { + ++refPos; + } + + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + + break; + + case twoDimVertL2: + this._addPixelsNeg(refLine[refPos] - 2, blackPixels); + + blackPixels ^= 1; + + if (codingLine[this.codingPos] < columns) { + if (refPos > 0) { + --refPos; + } else { + ++refPos; + } + + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + + break; + + case twoDimVertL1: + this._addPixelsNeg(refLine[refPos] - 1, blackPixels); + + blackPixels ^= 1; + + if (codingLine[this.codingPos] < columns) { + if (refPos > 0) { + --refPos; + } else { + ++refPos; + } + + while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) { + refPos += 2; + } + } + + break; + + case ccittEOF: + this._addPixels(columns, 0); + + this.eof = true; + break; + + default: + (0, _util.info)('bad 2d code'); + + this._addPixels(columns, 0); + + this.err = true; + } + } + } else { + codingLine[0] = 0; + this.codingPos = 0; + blackPixels = 0; + + while (codingLine[this.codingPos] < columns) { + code1 = 0; + + if (blackPixels) { + do { + code1 += code3 = this._getBlackCode(); + } while (code3 >= 64); + } else { + do { + code1 += code3 = this._getWhiteCode(); + } while (code3 >= 64); + } + + this._addPixels(codingLine[this.codingPos] + code1, blackPixels); + + blackPixels ^= 1; + } + } + + var gotEOL = false; + + if (this.byteAlign) { + this.inputBits &= ~7; + } + + if (!this.eoblock && this.row === this.rows - 1) { + this.rowsDone = true; + } else { + code1 = this._lookBits(12); + + if (this.eoline) { + while (code1 !== ccittEOF && code1 !== 1) { + this._eatBits(1); + + code1 = this._lookBits(12); + } + } else { + while (code1 === 0) { + this._eatBits(1); + + code1 = this._lookBits(12); + } + } + + if (code1 === 1) { + this._eatBits(12); + + gotEOL = true; + } else if (code1 === ccittEOF) { + this.eof = true; + } + } + + if (!this.eof && this.encoding > 0 && !this.rowsDone) { + this.nextLine2D = !this._lookBits(1); + + this._eatBits(1); + } + + if (this.eoblock && gotEOL && this.byteAlign) { + code1 = this._lookBits(12); + + if (code1 === 1) { + this._eatBits(12); + + if (this.encoding > 0) { + this._lookBits(1); + + this._eatBits(1); + } + + if (this.encoding >= 0) { + for (i = 0; i < 4; ++i) { + code1 = this._lookBits(12); + + if (code1 !== 1) { + (0, _util.info)('bad rtc code: ' + code1); + } + + this._eatBits(12); + + if (this.encoding > 0) { + this._lookBits(1); + + this._eatBits(1); + } + } + } + + this.eof = true; + } + } else if (this.err && this.eoline) { + while (true) { + code1 = this._lookBits(13); + + if (code1 === ccittEOF) { + this.eof = true; + return -1; + } + + if (code1 >> 1 === 1) { + break; + } + + this._eatBits(1); + } + + this._eatBits(12); + + if (this.encoding > 0) { + this._eatBits(1); + + this.nextLine2D = !(code1 & 1); + } + } + + if (codingLine[0] > 0) { + this.outputBits = codingLine[this.codingPos = 0]; + } else { + this.outputBits = codingLine[this.codingPos = 1]; + } + + this.row++; + } + + var c; + + if (this.outputBits >= 8) { + c = this.codingPos & 1 ? 0 : 0xFF; + this.outputBits -= 8; + + if (this.outputBits === 0 && codingLine[this.codingPos] < columns) { + this.codingPos++; + this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1]; + } + } else { + bits = 8; + c = 0; + + do { + if (this.outputBits > bits) { + c <<= bits; + + if (!(this.codingPos & 1)) { + c |= 0xFF >> 8 - bits; + } + + this.outputBits -= bits; + bits = 0; + } else { + c <<= this.outputBits; + + if (!(this.codingPos & 1)) { + c |= 0xFF >> 8 - this.outputBits; + } + + bits -= this.outputBits; + this.outputBits = 0; + + if (codingLine[this.codingPos] < columns) { + this.codingPos++; + this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1]; + } else if (bits > 0) { + c <<= bits; + bits = 0; + } + } + } while (bits); + } + + if (this.black) { + c ^= 0xFF; + } + + return c; + }, + _addPixels: function _addPixels(a1, blackPixels) { + var codingLine = this.codingLine; + var codingPos = this.codingPos; + + if (a1 > codingLine[codingPos]) { + if (a1 > this.columns) { + (0, _util.info)('row is wrong length'); + this.err = true; + a1 = this.columns; + } + + if (codingPos & 1 ^ blackPixels) { + ++codingPos; + } + + codingLine[codingPos] = a1; + } + + this.codingPos = codingPos; + }, + _addPixelsNeg: function _addPixelsNeg(a1, blackPixels) { + var codingLine = this.codingLine; + var codingPos = this.codingPos; + + if (a1 > codingLine[codingPos]) { + if (a1 > this.columns) { + (0, _util.info)('row is wrong length'); + this.err = true; + a1 = this.columns; + } + + if (codingPos & 1 ^ blackPixels) { + ++codingPos; + } + + codingLine[codingPos] = a1; + } else if (a1 < codingLine[codingPos]) { + if (a1 < 0) { + (0, _util.info)('invalid code'); + this.err = true; + a1 = 0; + } + + while (codingPos > 0 && a1 < codingLine[codingPos - 1]) { + --codingPos; + } + + codingLine[codingPos] = a1; + } + + this.codingPos = codingPos; + }, + _findTableCode: function _findTableCode(start, end, table, limit) { + var limitValue = limit || 0; + + for (var i = start; i <= end; ++i) { + var code = this._lookBits(i); + + if (code === ccittEOF) { + return [true, 1, false]; + } + + if (i < end) { + code <<= end - i; + } + + if (!limitValue || code >= limitValue) { + var p = table[code - limitValue]; + + if (p[0] === i) { + this._eatBits(i); + + return [true, p[1], true]; + } + } + } + + return [false, 0, false]; + }, + _getTwoDimCode: function _getTwoDimCode() { + var code = 0; + var p; + + if (this.eoblock) { + code = this._lookBits(7); + p = twoDimTable[code]; + + if (p && p[0] > 0) { + this._eatBits(p[0]); + + return p[1]; + } + } else { + var result = this._findTableCode(1, 7, twoDimTable); + + if (result[0] && result[2]) { + return result[1]; + } + } + + (0, _util.info)('Bad two dim code'); + return ccittEOF; + }, + _getWhiteCode: function _getWhiteCode() { + var code = 0; + var p; + + if (this.eoblock) { + code = this._lookBits(12); + + if (code === ccittEOF) { + return 1; + } + + if (code >> 5 === 0) { + p = whiteTable1[code]; + } else { + p = whiteTable2[code >> 3]; + } + + if (p[0] > 0) { + this._eatBits(p[0]); + + return p[1]; + } + } else { + var result = this._findTableCode(1, 9, whiteTable2); + + if (result[0]) { + return result[1]; + } + + result = this._findTableCode(11, 12, whiteTable1); + + if (result[0]) { + return result[1]; + } + } + + (0, _util.info)('bad white code'); + + this._eatBits(1); + + return 1; + }, + _getBlackCode: function _getBlackCode() { + var code, p; + + if (this.eoblock) { + code = this._lookBits(13); + + if (code === ccittEOF) { + return 1; + } + + if (code >> 7 === 0) { + p = blackTable1[code]; + } else if (code >> 9 === 0 && code >> 7 !== 0) { + p = blackTable2[(code >> 1) - 64]; + } else { + p = blackTable3[code >> 7]; + } + + if (p[0] > 0) { + this._eatBits(p[0]); + + return p[1]; + } + } else { + var result = this._findTableCode(2, 6, blackTable3); + + if (result[0]) { + return result[1]; + } + + result = this._findTableCode(7, 12, blackTable2, 64); + + if (result[0]) { + return result[1]; + } + + result = this._findTableCode(10, 13, blackTable1); + + if (result[0]) { + return result[1]; + } + } + + (0, _util.info)('bad black code'); + + this._eatBits(1); + + return 1; + }, + _lookBits: function _lookBits(n) { + var c; + + while (this.inputBits < n) { + if ((c = this.source.next()) === -1) { + if (this.inputBits === 0) { + return ccittEOF; + } + + return this.inputBuf << n - this.inputBits & 0xFFFF >> 16 - n; + } + + this.inputBuf = this.inputBuf << 8 | c; + this.inputBits += 8; + } + + return this.inputBuf >> this.inputBits - n & 0xFFFF >> 16 - n; + }, + _eatBits: function _eatBits(n) { + if ((this.inputBits -= n) < 0) { + this.inputBits = 0; + } + } + }; + return CCITTFaxDecoder; +}(); + +exports.CCITTFaxDecoder = CCITTFaxDecoder; + +/***/ }), +/* 160 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Jbig2Stream = void 0; + +var _primitives = __w_pdfjs_require__(155); + +var _stream = __w_pdfjs_require__(157); + +var _jbig = __w_pdfjs_require__(161); + +var _util = __w_pdfjs_require__(6); + +var Jbig2Stream = function Jbig2StreamClosure() { + function Jbig2Stream(stream, maybeLength, dict, params) { + this.stream = stream; + this.maybeLength = maybeLength; + this.dict = dict; + this.params = params; + + _stream.DecodeStream.call(this, maybeLength); + } + + Jbig2Stream.prototype = Object.create(_stream.DecodeStream.prototype); + Object.defineProperty(Jbig2Stream.prototype, 'bytes', { + get: function get() { + return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength)); + }, + configurable: true + }); + + Jbig2Stream.prototype.ensureBuffer = function (requested) {}; + + Jbig2Stream.prototype.readBlock = function () { + if (this.eof) { + return; + } + + var jbig2Image = new _jbig.Jbig2Image(); + var chunks = []; + + if ((0, _primitives.isDict)(this.params)) { + var globalsStream = this.params.get('JBIG2Globals'); + + if ((0, _primitives.isStream)(globalsStream)) { + var globals = globalsStream.getBytes(); + chunks.push({ + data: globals, + start: 0, + end: globals.length + }); + } + } + + chunks.push({ + data: this.bytes, + start: 0, + end: this.bytes.length + }); + var data = jbig2Image.parseChunks(chunks); + var dataLength = data.length; + + for (var i = 0; i < dataLength; i++) { + data[i] ^= 0xFF; + } + + this.buffer = data; + this.bufferLength = dataLength; + this.eof = true; + }; + + return Jbig2Stream; +}(); + +exports.Jbig2Stream = Jbig2Stream; + +/***/ }), +/* 161 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Jbig2Image = void 0; + +var _util = __w_pdfjs_require__(6); + +var _arithmetic_decoder = __w_pdfjs_require__(162); + +var _ccitt = __w_pdfjs_require__(159); + +var Jbig2Error = function Jbig2ErrorClosure() { + function Jbig2Error(msg) { + this.message = 'JBIG2 error: ' + msg; + } + + Jbig2Error.prototype = new Error(); + Jbig2Error.prototype.name = 'Jbig2Error'; + Jbig2Error.constructor = Jbig2Error; + return Jbig2Error; +}(); + +var Jbig2Image = function Jbig2ImageClosure() { + function ContextCache() {} + + ContextCache.prototype = { + getContexts: function getContexts(id) { + if (id in this) { + return this[id]; + } + + return this[id] = new Int8Array(1 << 16); + } + }; + + function DecodingContext(data, start, end) { + this.data = data; + this.start = start; + this.end = end; + } + + DecodingContext.prototype = { + get decoder() { + var decoder = new _arithmetic_decoder.ArithmeticDecoder(this.data, this.start, this.end); + return (0, _util.shadow)(this, 'decoder', decoder); + }, + + get contextCache() { + var cache = new ContextCache(); + return (0, _util.shadow)(this, 'contextCache', cache); + } + + }; + + function decodeInteger(contextCache, procedure, decoder) { + var contexts = contextCache.getContexts(procedure); + var prev = 1; + + function readBits(length) { + var v = 0; + + for (var i = 0; i < length; i++) { + var bit = decoder.readBit(contexts, prev); + prev = prev < 256 ? prev << 1 | bit : (prev << 1 | bit) & 511 | 256; + v = v << 1 | bit; + } + + return v >>> 0; + } + + var sign = readBits(1); + var value = readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(32) + 4436 : readBits(12) + 340 : readBits(8) + 84 : readBits(6) + 20 : readBits(4) + 4 : readBits(2); + return sign === 0 ? value : value > 0 ? -value : null; + } + + function decodeIAID(contextCache, decoder, codeLength) { + var contexts = contextCache.getContexts('IAID'); + var prev = 1; + + for (var i = 0; i < codeLength; i++) { + var bit = decoder.readBit(contexts, prev); + prev = prev << 1 | bit; + } + + if (codeLength < 31) { + return prev & (1 << codeLength) - 1; + } + + return prev & 0x7FFFFFFF; + } + + var SegmentTypes = ['SymbolDictionary', null, null, null, 'IntermediateTextRegion', null, 'ImmediateTextRegion', 'ImmediateLosslessTextRegion', null, null, null, null, null, null, null, null, 'PatternDictionary', null, null, null, 'IntermediateHalftoneRegion', null, 'ImmediateHalftoneRegion', 'ImmediateLosslessHalftoneRegion', null, null, null, null, null, null, null, null, null, null, null, null, 'IntermediateGenericRegion', null, 'ImmediateGenericRegion', 'ImmediateLosslessGenericRegion', 'IntermediateGenericRefinementRegion', null, 'ImmediateGenericRefinementRegion', 'ImmediateLosslessGenericRefinementRegion', null, null, null, null, 'PageInformation', 'EndOfPage', 'EndOfStripe', 'EndOfFile', 'Profiles', 'Tables', null, null, null, null, null, null, null, null, 'Extension']; + var CodingTemplates = [[{ + x: -1, + y: -2 + }, { + x: 0, + y: -2 + }, { + x: 1, + y: -2 + }, { + x: -2, + y: -1 + }, { + x: -1, + y: -1 + }, { + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: 2, + y: -1 + }, { + x: -4, + y: 0 + }, { + x: -3, + y: 0 + }, { + x: -2, + y: 0 + }, { + x: -1, + y: 0 + }], [{ + x: -1, + y: -2 + }, { + x: 0, + y: -2 + }, { + x: 1, + y: -2 + }, { + x: 2, + y: -2 + }, { + x: -2, + y: -1 + }, { + x: -1, + y: -1 + }, { + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: 2, + y: -1 + }, { + x: -3, + y: 0 + }, { + x: -2, + y: 0 + }, { + x: -1, + y: 0 + }], [{ + x: -1, + y: -2 + }, { + x: 0, + y: -2 + }, { + x: 1, + y: -2 + }, { + x: -2, + y: -1 + }, { + x: -1, + y: -1 + }, { + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -2, + y: 0 + }, { + x: -1, + y: 0 + }], [{ + x: -3, + y: -1 + }, { + x: -2, + y: -1 + }, { + x: -1, + y: -1 + }, { + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -4, + y: 0 + }, { + x: -3, + y: 0 + }, { + x: -2, + y: 0 + }, { + x: -1, + y: 0 + }]]; + var RefinementTemplates = [{ + coding: [{ + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -1, + y: 0 + }], + reference: [{ + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -1, + y: 0 + }, { + x: 0, + y: 0 + }, { + x: 1, + y: 0 + }, { + x: -1, + y: 1 + }, { + x: 0, + y: 1 + }, { + x: 1, + y: 1 + }] + }, { + coding: [{ + x: -1, + y: -1 + }, { + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -1, + y: 0 + }], + reference: [{ + x: 0, + y: -1 + }, { + x: -1, + y: 0 + }, { + x: 0, + y: 0 + }, { + x: 1, + y: 0 + }, { + x: 0, + y: 1 + }, { + x: 1, + y: 1 + }] + }]; + var ReusedContexts = [0x9B25, 0x0795, 0x00E5, 0x0195]; + var RefinementReusedContexts = [0x0020, 0x0008]; + + function decodeBitmapTemplate0(width, height, decodingContext) { + var decoder = decodingContext.decoder; + var contexts = decodingContext.contextCache.getContexts('GB'); + var contextLabel, + i, + j, + pixel, + row, + row1, + row2, + bitmap = []; + var OLD_PIXEL_MASK = 0x7BF7; + + for (i = 0; i < height; i++) { + row = bitmap[i] = new Uint8Array(width); + row1 = i < 1 ? row : bitmap[i - 1]; + row2 = i < 2 ? row : bitmap[i - 2]; + contextLabel = row2[0] << 13 | row2[1] << 12 | row2[2] << 11 | row1[0] << 7 | row1[1] << 6 | row1[2] << 5 | row1[3] << 4; + + for (j = 0; j < width; j++) { + row[j] = pixel = decoder.readBit(contexts, contextLabel); + contextLabel = (contextLabel & OLD_PIXEL_MASK) << 1 | (j + 3 < width ? row2[j + 3] << 11 : 0) | (j + 4 < width ? row1[j + 4] << 4 : 0) | pixel; + } + } + + return bitmap; + } + + function decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at, decodingContext) { + if (mmr) { + var input = new Reader(decodingContext.data, decodingContext.start, decodingContext.end); + return decodeMMRBitmap(input, width, height, false); + } + + if (templateIndex === 0 && !skip && !prediction && at.length === 4 && at[0].x === 3 && at[0].y === -1 && at[1].x === -3 && at[1].y === -1 && at[2].x === 2 && at[2].y === -2 && at[3].x === -2 && at[3].y === -2) { + return decodeBitmapTemplate0(width, height, decodingContext); + } + + var useskip = !!skip; + var template = CodingTemplates[templateIndex].concat(at); + template.sort(function (a, b) { + return a.y - b.y || a.x - b.x; + }); + var templateLength = template.length; + var templateX = new Int8Array(templateLength); + var templateY = new Int8Array(templateLength); + var changingTemplateEntries = []; + var reuseMask = 0, + minX = 0, + maxX = 0, + minY = 0; + var c, k; + + for (k = 0; k < templateLength; k++) { + templateX[k] = template[k].x; + templateY[k] = template[k].y; + minX = Math.min(minX, template[k].x); + maxX = Math.max(maxX, template[k].x); + minY = Math.min(minY, template[k].y); + + if (k < templateLength - 1 && template[k].y === template[k + 1].y && template[k].x === template[k + 1].x - 1) { + reuseMask |= 1 << templateLength - 1 - k; + } else { + changingTemplateEntries.push(k); + } + } + + var changingEntriesLength = changingTemplateEntries.length; + var changingTemplateX = new Int8Array(changingEntriesLength); + var changingTemplateY = new Int8Array(changingEntriesLength); + var changingTemplateBit = new Uint16Array(changingEntriesLength); + + for (c = 0; c < changingEntriesLength; c++) { + k = changingTemplateEntries[c]; + changingTemplateX[c] = template[k].x; + changingTemplateY[c] = template[k].y; + changingTemplateBit[c] = 1 << templateLength - 1 - k; + } + + var sbb_left = -minX; + var sbb_top = -minY; + var sbb_right = width - maxX; + var pseudoPixelContext = ReusedContexts[templateIndex]; + var row = new Uint8Array(width); + var bitmap = []; + var decoder = decodingContext.decoder; + var contexts = decodingContext.contextCache.getContexts('GB'); + var ltp = 0, + j, + i0, + j0, + contextLabel = 0, + bit, + shift; + + for (var i = 0; i < height; i++) { + if (prediction) { + var sltp = decoder.readBit(contexts, pseudoPixelContext); + ltp ^= sltp; + + if (ltp) { + bitmap.push(row); + continue; + } + } + + row = new Uint8Array(row); + bitmap.push(row); + + for (j = 0; j < width; j++) { + if (useskip && skip[i][j]) { + row[j] = 0; + continue; + } + + if (j >= sbb_left && j < sbb_right && i >= sbb_top) { + contextLabel = contextLabel << 1 & reuseMask; + + for (k = 0; k < changingEntriesLength; k++) { + i0 = i + changingTemplateY[k]; + j0 = j + changingTemplateX[k]; + bit = bitmap[i0][j0]; + + if (bit) { + bit = changingTemplateBit[k]; + contextLabel |= bit; + } + } + } else { + contextLabel = 0; + shift = templateLength - 1; + + for (k = 0; k < templateLength; k++, shift--) { + j0 = j + templateX[k]; + + if (j0 >= 0 && j0 < width) { + i0 = i + templateY[k]; + + if (i0 >= 0) { + bit = bitmap[i0][j0]; + + if (bit) { + contextLabel |= bit << shift; + } + } + } + } + } + + var pixel = decoder.readBit(contexts, contextLabel); + row[j] = pixel; + } + } + + return bitmap; + } + + function decodeRefinement(width, height, templateIndex, referenceBitmap, offsetX, offsetY, prediction, at, decodingContext) { + var codingTemplate = RefinementTemplates[templateIndex].coding; + + if (templateIndex === 0) { + codingTemplate = codingTemplate.concat([at[0]]); + } + + var codingTemplateLength = codingTemplate.length; + var codingTemplateX = new Int32Array(codingTemplateLength); + var codingTemplateY = new Int32Array(codingTemplateLength); + var k; + + for (k = 0; k < codingTemplateLength; k++) { + codingTemplateX[k] = codingTemplate[k].x; + codingTemplateY[k] = codingTemplate[k].y; + } + + var referenceTemplate = RefinementTemplates[templateIndex].reference; + + if (templateIndex === 0) { + referenceTemplate = referenceTemplate.concat([at[1]]); + } + + var referenceTemplateLength = referenceTemplate.length; + var referenceTemplateX = new Int32Array(referenceTemplateLength); + var referenceTemplateY = new Int32Array(referenceTemplateLength); + + for (k = 0; k < referenceTemplateLength; k++) { + referenceTemplateX[k] = referenceTemplate[k].x; + referenceTemplateY[k] = referenceTemplate[k].y; + } + + var referenceWidth = referenceBitmap[0].length; + var referenceHeight = referenceBitmap.length; + var pseudoPixelContext = RefinementReusedContexts[templateIndex]; + var bitmap = []; + var decoder = decodingContext.decoder; + var contexts = decodingContext.contextCache.getContexts('GR'); + var ltp = 0; + + for (var i = 0; i < height; i++) { + if (prediction) { + var sltp = decoder.readBit(contexts, pseudoPixelContext); + ltp ^= sltp; + + if (ltp) { + throw new Jbig2Error('prediction is not supported'); + } + } + + var row = new Uint8Array(width); + bitmap.push(row); + + for (var j = 0; j < width; j++) { + var i0, j0; + var contextLabel = 0; + + for (k = 0; k < codingTemplateLength; k++) { + i0 = i + codingTemplateY[k]; + j0 = j + codingTemplateX[k]; + + if (i0 < 0 || j0 < 0 || j0 >= width) { + contextLabel <<= 1; + } else { + contextLabel = contextLabel << 1 | bitmap[i0][j0]; + } + } + + for (k = 0; k < referenceTemplateLength; k++) { + i0 = i + referenceTemplateY[k] - offsetY; + j0 = j + referenceTemplateX[k] - offsetX; + + if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) { + contextLabel <<= 1; + } else { + contextLabel = contextLabel << 1 | referenceBitmap[i0][j0]; + } + } + + var pixel = decoder.readBit(contexts, contextLabel); + row[j] = pixel; + } + } + + return bitmap; + } + + function decodeSymbolDictionary(huffman, refinement, symbols, numberOfNewSymbols, numberOfExportedSymbols, huffmanTables, templateIndex, at, refinementTemplateIndex, refinementAt, decodingContext, huffmanInput) { + if (huffman && refinement) { + throw new Jbig2Error('symbol refinement with Huffman is not supported'); + } + + var newSymbols = []; + var currentHeight = 0; + var symbolCodeLength = (0, _util.log2)(symbols.length + numberOfNewSymbols); + var decoder = decodingContext.decoder; + var contextCache = decodingContext.contextCache; + var tableB1, symbolWidths; + + if (huffman) { + tableB1 = getStandardTable(1); + symbolWidths = []; + symbolCodeLength = Math.max(symbolCodeLength, 1); + } + + while (newSymbols.length < numberOfNewSymbols) { + var deltaHeight = huffman ? huffmanTables.tableDeltaHeight.decode(huffmanInput) : decodeInteger(contextCache, 'IADH', decoder); + currentHeight += deltaHeight; + var currentWidth = 0, + totalWidth = 0; + var firstSymbol = huffman ? symbolWidths.length : 0; + + while (true) { + var deltaWidth = huffman ? huffmanTables.tableDeltaWidth.decode(huffmanInput) : decodeInteger(contextCache, 'IADW', decoder); + + if (deltaWidth === null) { + break; + } + + currentWidth += deltaWidth; + totalWidth += currentWidth; + var bitmap; + + if (refinement) { + var numberOfInstances = decodeInteger(contextCache, 'IAAI', decoder); + + if (numberOfInstances > 1) { + bitmap = decodeTextRegion(huffman, refinement, currentWidth, currentHeight, 0, numberOfInstances, 1, symbols.concat(newSymbols), symbolCodeLength, 0, 0, 1, 0, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, 0, huffmanInput); + } else { + var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength); + var rdx = decodeInteger(contextCache, 'IARDX', decoder); + var rdy = decodeInteger(contextCache, 'IARDY', decoder); + var symbol = symbolId < symbols.length ? symbols[symbolId] : newSymbols[symbolId - symbols.length]; + bitmap = decodeRefinement(currentWidth, currentHeight, refinementTemplateIndex, symbol, rdx, rdy, false, refinementAt, decodingContext); + } + + newSymbols.push(bitmap); + } else if (huffman) { + symbolWidths.push(currentWidth); + } else { + bitmap = decodeBitmap(false, currentWidth, currentHeight, templateIndex, false, null, at, decodingContext); + newSymbols.push(bitmap); + } + } + + if (huffman && !refinement) { + var bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput); + huffmanInput.byteAlign(); + var collectiveBitmap = void 0; + + if (bitmapSize === 0) { + collectiveBitmap = readUncompressedBitmap(huffmanInput, totalWidth, currentHeight); + } else { + var originalEnd = huffmanInput.end; + var bitmapEnd = huffmanInput.position + bitmapSize; + huffmanInput.end = bitmapEnd; + collectiveBitmap = decodeMMRBitmap(huffmanInput, totalWidth, currentHeight, false); + huffmanInput.end = originalEnd; + huffmanInput.position = bitmapEnd; + } + + var numberOfSymbolsDecoded = symbolWidths.length; + + if (firstSymbol === numberOfSymbolsDecoded - 1) { + newSymbols.push(collectiveBitmap); + } else { + var _i = void 0, + y = void 0, + xMin = 0, + xMax = void 0, + bitmapWidth = void 0, + symbolBitmap = void 0; + + for (_i = firstSymbol; _i < numberOfSymbolsDecoded; _i++) { + bitmapWidth = symbolWidths[_i]; + xMax = xMin + bitmapWidth; + symbolBitmap = []; + + for (y = 0; y < currentHeight; y++) { + symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax)); + } + + newSymbols.push(symbolBitmap); + xMin = xMax; + } + } + } + } + + var exportedSymbols = []; + var flags = [], + currentFlag = false; + var totalSymbolsLength = symbols.length + numberOfNewSymbols; + + while (flags.length < totalSymbolsLength) { + var runLength = huffman ? tableB1.decode(huffmanInput) : decodeInteger(contextCache, 'IAEX', decoder); + + while (runLength--) { + flags.push(currentFlag); + } + + currentFlag = !currentFlag; + } + + for (var i = 0, ii = symbols.length; i < ii; i++) { + if (flags[i]) { + exportedSymbols.push(symbols[i]); + } + } + + for (var j = 0; j < numberOfNewSymbols; i++, j++) { + if (flags[i]) { + exportedSymbols.push(newSymbols[j]); + } + } + + return exportedSymbols; + } + + function decodeTextRegion(huffman, refinement, width, height, defaultPixelValue, numberOfSymbolInstances, stripSize, inputSymbols, symbolCodeLength, transposed, dsOffset, referenceCorner, combinationOperator, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, logStripSize, huffmanInput) { + if (huffman && refinement) { + throw new Jbig2Error('refinement with Huffman is not supported'); + } + + var bitmap = []; + var i, row; + + for (i = 0; i < height; i++) { + row = new Uint8Array(width); + + if (defaultPixelValue) { + for (var j = 0; j < width; j++) { + row[j] = defaultPixelValue; + } + } + + bitmap.push(row); + } + + var decoder = decodingContext.decoder; + var contextCache = decodingContext.contextCache; + var stripT = huffman ? -huffmanTables.tableDeltaT.decode(huffmanInput) : -decodeInteger(contextCache, 'IADT', decoder); + var firstS = 0; + i = 0; + + while (i < numberOfSymbolInstances) { + var deltaT = huffman ? huffmanTables.tableDeltaT.decode(huffmanInput) : decodeInteger(contextCache, 'IADT', decoder); + stripT += deltaT; + var deltaFirstS = huffman ? huffmanTables.tableFirstS.decode(huffmanInput) : decodeInteger(contextCache, 'IAFS', decoder); + firstS += deltaFirstS; + var currentS = firstS; + + do { + var currentT = 0; + + if (stripSize > 1) { + currentT = huffman ? huffmanInput.readBits(logStripSize) : decodeInteger(contextCache, 'IAIT', decoder); + } + + var t = stripSize * stripT + currentT; + var symbolId = huffman ? huffmanTables.symbolIDTable.decode(huffmanInput) : decodeIAID(contextCache, decoder, symbolCodeLength); + var applyRefinement = refinement && (huffman ? huffmanInput.readBit() : decodeInteger(contextCache, 'IARI', decoder)); + var symbolBitmap = inputSymbols[symbolId]; + var symbolWidth = symbolBitmap[0].length; + var symbolHeight = symbolBitmap.length; + + if (applyRefinement) { + var rdw = decodeInteger(contextCache, 'IARDW', decoder); + var rdh = decodeInteger(contextCache, 'IARDH', decoder); + var rdx = decodeInteger(contextCache, 'IARDX', decoder); + var rdy = decodeInteger(contextCache, 'IARDY', decoder); + symbolWidth += rdw; + symbolHeight += rdh; + symbolBitmap = decodeRefinement(symbolWidth, symbolHeight, refinementTemplateIndex, symbolBitmap, (rdw >> 1) + rdx, (rdh >> 1) + rdy, false, refinementAt, decodingContext); + } + + var offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight - 1); + var offsetS = currentS - (referenceCorner & 2 ? symbolWidth - 1 : 0); + var s2, t2, symbolRow; + + if (transposed) { + for (s2 = 0; s2 < symbolHeight; s2++) { + row = bitmap[offsetS + s2]; + + if (!row) { + continue; + } + + symbolRow = symbolBitmap[s2]; + var maxWidth = Math.min(width - offsetT, symbolWidth); + + switch (combinationOperator) { + case 0: + for (t2 = 0; t2 < maxWidth; t2++) { + row[offsetT + t2] |= symbolRow[t2]; + } + + break; + + case 2: + for (t2 = 0; t2 < maxWidth; t2++) { + row[offsetT + t2] ^= symbolRow[t2]; + } + + break; + + default: + throw new Jbig2Error("operator ".concat(combinationOperator, " is not supported")); + } + } + + currentS += symbolHeight - 1; + } else { + for (t2 = 0; t2 < symbolHeight; t2++) { + row = bitmap[offsetT + t2]; + + if (!row) { + continue; + } + + symbolRow = symbolBitmap[t2]; + + switch (combinationOperator) { + case 0: + for (s2 = 0; s2 < symbolWidth; s2++) { + row[offsetS + s2] |= symbolRow[s2]; + } + + break; + + case 2: + for (s2 = 0; s2 < symbolWidth; s2++) { + row[offsetS + s2] ^= symbolRow[s2]; + } + + break; + + default: + throw new Jbig2Error("operator ".concat(combinationOperator, " is not supported")); + } + } + + currentS += symbolWidth - 1; + } + + i++; + var deltaS = huffman ? huffmanTables.tableDeltaS.decode(huffmanInput) : decodeInteger(contextCache, 'IADS', decoder); + + if (deltaS === null) { + break; + } + + currentS += deltaS + dsOffset; + } while (true); + } + + return bitmap; + } + + function decodePatternDictionary(mmr, patternWidth, patternHeight, maxPatternIndex, template, decodingContext) { + var at = []; + + if (!mmr) { + at.push({ + x: -patternWidth, + y: 0 + }); + + if (template === 0) { + at.push({ + x: -3, + y: -1 + }); + at.push({ + x: 2, + y: -2 + }); + at.push({ + x: -2, + y: -2 + }); + } + } + + var collectiveWidth = (maxPatternIndex + 1) * patternWidth; + var collectiveBitmap = decodeBitmap(mmr, collectiveWidth, patternHeight, template, false, null, at, decodingContext); + var patterns = [], + i = 0, + patternBitmap, + xMin, + xMax, + y; + + while (i <= maxPatternIndex) { + patternBitmap = []; + xMin = patternWidth * i; + xMax = xMin + patternWidth; + + for (y = 0; y < patternHeight; y++) { + patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax)); + } + + patterns.push(patternBitmap); + i++; + } + + return patterns; + } + + function decodeHalftoneRegion(mmr, patterns, template, regionWidth, regionHeight, defaultPixelValue, enableSkip, combinationOperator, gridWidth, gridHeight, gridOffsetX, gridOffsetY, gridVectorX, gridVectorY, decodingContext) { + var skip = null; + + if (enableSkip) { + throw new Jbig2Error('skip is not supported'); + } + + if (combinationOperator !== 0) { + throw new Jbig2Error('operator ' + combinationOperator + ' is not supported in halftone region'); + } + + var regionBitmap = []; + var i, j, row; + + for (i = 0; i < regionHeight; i++) { + row = new Uint8Array(regionWidth); + + if (defaultPixelValue) { + for (j = 0; j < regionWidth; j++) { + row[j] = defaultPixelValue; + } + } + + regionBitmap.push(row); + } + + var numberOfPatterns = patterns.length; + var pattern0 = patterns[0]; + var patternWidth = pattern0[0].length, + patternHeight = pattern0.length; + var bitsPerValue = (0, _util.log2)(numberOfPatterns); + var at = []; + + if (!mmr) { + at.push({ + x: template <= 1 ? 3 : 2, + y: -1 + }); + + if (template === 0) { + at.push({ + x: -3, + y: -1 + }); + at.push({ + x: 2, + y: -2 + }); + at.push({ + x: -2, + y: -2 + }); + } + } + + var grayScaleBitPlanes = [], + mmrInput, + bitmap; + + if (mmr) { + mmrInput = new Reader(decodingContext.data, decodingContext.start, decodingContext.end); + } + + for (i = bitsPerValue - 1; i >= 0; i--) { + if (mmr) { + bitmap = decodeMMRBitmap(mmrInput, gridWidth, gridHeight, true); + } else { + bitmap = decodeBitmap(false, gridWidth, gridHeight, template, false, skip, at, decodingContext); + } + + grayScaleBitPlanes[i] = bitmap; + } + + var mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow; + + for (mg = 0; mg < gridHeight; mg++) { + for (ng = 0; ng < gridWidth; ng++) { + bit = 0; + patternIndex = 0; + + for (j = bitsPerValue - 1; j >= 0; j--) { + bit = grayScaleBitPlanes[j][mg][ng] ^ bit; + patternIndex |= bit << j; + } + + patternBitmap = patterns[patternIndex]; + x = gridOffsetX + mg * gridVectorY + ng * gridVectorX >> 8; + y = gridOffsetY + mg * gridVectorX - ng * gridVectorY >> 8; + + if (x >= 0 && x + patternWidth <= regionWidth && y >= 0 && y + patternHeight <= regionHeight) { + for (i = 0; i < patternHeight; i++) { + regionRow = regionBitmap[y + i]; + patternRow = patternBitmap[i]; + + for (j = 0; j < patternWidth; j++) { + regionRow[x + j] |= patternRow[j]; + } + } + } else { + var regionX = void 0, + regionY = void 0; + + for (i = 0; i < patternHeight; i++) { + regionY = y + i; + + if (regionY < 0 || regionY >= regionHeight) { + continue; + } + + regionRow = regionBitmap[regionY]; + patternRow = patternBitmap[i]; + + for (j = 0; j < patternWidth; j++) { + regionX = x + j; + + if (regionX >= 0 && regionX < regionWidth) { + regionRow[regionX] |= patternRow[j]; + } + } + } + } + } + } + + return regionBitmap; + } + + function readSegmentHeader(data, start) { + var segmentHeader = {}; + segmentHeader.number = (0, _util.readUint32)(data, start); + var flags = data[start + 4]; + var segmentType = flags & 0x3F; + + if (!SegmentTypes[segmentType]) { + throw new Jbig2Error('invalid segment type: ' + segmentType); + } + + segmentHeader.type = segmentType; + segmentHeader.typeName = SegmentTypes[segmentType]; + segmentHeader.deferredNonRetain = !!(flags & 0x80); + var pageAssociationFieldSize = !!(flags & 0x40); + var referredFlags = data[start + 5]; + var referredToCount = referredFlags >> 5 & 7; + var retainBits = [referredFlags & 31]; + var position = start + 6; + + if (referredFlags === 7) { + referredToCount = (0, _util.readUint32)(data, position - 1) & 0x1FFFFFFF; + position += 3; + var bytes = referredToCount + 7 >> 3; + retainBits[0] = data[position++]; + + while (--bytes > 0) { + retainBits.push(data[position++]); + } + } else if (referredFlags === 5 || referredFlags === 6) { + throw new Jbig2Error('invalid referred-to flags'); + } + + segmentHeader.retainBits = retainBits; + var referredToSegmentNumberSize = segmentHeader.number <= 256 ? 1 : segmentHeader.number <= 65536 ? 2 : 4; + var referredTo = []; + var i, ii; + + for (i = 0; i < referredToCount; i++) { + var number = referredToSegmentNumberSize === 1 ? data[position] : referredToSegmentNumberSize === 2 ? (0, _util.readUint16)(data, position) : (0, _util.readUint32)(data, position); + referredTo.push(number); + position += referredToSegmentNumberSize; + } + + segmentHeader.referredTo = referredTo; + + if (!pageAssociationFieldSize) { + segmentHeader.pageAssociation = data[position++]; + } else { + segmentHeader.pageAssociation = (0, _util.readUint32)(data, position); + position += 4; + } + + segmentHeader.length = (0, _util.readUint32)(data, position); + position += 4; + + if (segmentHeader.length === 0xFFFFFFFF) { + if (segmentType === 38) { + var genericRegionInfo = readRegionSegmentInformation(data, position); + var genericRegionSegmentFlags = data[position + RegionSegmentInformationFieldLength]; + var genericRegionMmr = !!(genericRegionSegmentFlags & 1); + var searchPatternLength = 6; + var searchPattern = new Uint8Array(searchPatternLength); + + if (!genericRegionMmr) { + searchPattern[0] = 0xFF; + searchPattern[1] = 0xAC; + } + + searchPattern[2] = genericRegionInfo.height >>> 24 & 0xFF; + searchPattern[3] = genericRegionInfo.height >> 16 & 0xFF; + searchPattern[4] = genericRegionInfo.height >> 8 & 0xFF; + searchPattern[5] = genericRegionInfo.height & 0xFF; + + for (i = position, ii = data.length; i < ii; i++) { + var j = 0; + + while (j < searchPatternLength && searchPattern[j] === data[i + j]) { + j++; + } + + if (j === searchPatternLength) { + segmentHeader.length = i + searchPatternLength; + break; + } + } + + if (segmentHeader.length === 0xFFFFFFFF) { + throw new Jbig2Error('segment end was not found'); + } + } else { + throw new Jbig2Error('invalid unknown segment length'); + } + } + + segmentHeader.headerEnd = position; + return segmentHeader; + } + + function readSegments(header, data, start, end) { + var segments = []; + var position = start; + + while (position < end) { + var segmentHeader = readSegmentHeader(data, position); + position = segmentHeader.headerEnd; + var segment = { + header: segmentHeader, + data: data + }; + + if (!header.randomAccess) { + segment.start = position; + position += segmentHeader.length; + segment.end = position; + } + + segments.push(segment); + + if (segmentHeader.type === 51) { + break; + } + } + + if (header.randomAccess) { + for (var i = 0, ii = segments.length; i < ii; i++) { + segments[i].start = position; + position += segments[i].header.length; + segments[i].end = position; + } + } + + return segments; + } + + function readRegionSegmentInformation(data, start) { + return { + width: (0, _util.readUint32)(data, start), + height: (0, _util.readUint32)(data, start + 4), + x: (0, _util.readUint32)(data, start + 8), + y: (0, _util.readUint32)(data, start + 12), + combinationOperator: data[start + 16] & 7 + }; + } + + var RegionSegmentInformationFieldLength = 17; + + function processSegment(segment, visitor) { + var header = segment.header; + var data = segment.data, + position = segment.start, + end = segment.end; + var args, at, i, atLength; + + switch (header.type) { + case 0: + var dictionary = {}; + var dictionaryFlags = (0, _util.readUint16)(data, position); + dictionary.huffman = !!(dictionaryFlags & 1); + dictionary.refinement = !!(dictionaryFlags & 2); + dictionary.huffmanDHSelector = dictionaryFlags >> 2 & 3; + dictionary.huffmanDWSelector = dictionaryFlags >> 4 & 3; + dictionary.bitmapSizeSelector = dictionaryFlags >> 6 & 1; + dictionary.aggregationInstancesSelector = dictionaryFlags >> 7 & 1; + dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256); + dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512); + dictionary.template = dictionaryFlags >> 10 & 3; + dictionary.refinementTemplate = dictionaryFlags >> 12 & 1; + position += 2; + + if (!dictionary.huffman) { + atLength = dictionary.template === 0 ? 4 : 1; + at = []; + + for (i = 0; i < atLength; i++) { + at.push({ + x: (0, _util.readInt8)(data, position), + y: (0, _util.readInt8)(data, position + 1) + }); + position += 2; + } + + dictionary.at = at; + } + + if (dictionary.refinement && !dictionary.refinementTemplate) { + at = []; + + for (i = 0; i < 2; i++) { + at.push({ + x: (0, _util.readInt8)(data, position), + y: (0, _util.readInt8)(data, position + 1) + }); + position += 2; + } + + dictionary.refinementAt = at; + } + + dictionary.numberOfExportedSymbols = (0, _util.readUint32)(data, position); + position += 4; + dictionary.numberOfNewSymbols = (0, _util.readUint32)(data, position); + position += 4; + args = [dictionary, header.number, header.referredTo, data, position, end]; + break; + + case 6: + case 7: + var textRegion = {}; + textRegion.info = readRegionSegmentInformation(data, position); + position += RegionSegmentInformationFieldLength; + var textRegionSegmentFlags = (0, _util.readUint16)(data, position); + position += 2; + textRegion.huffman = !!(textRegionSegmentFlags & 1); + textRegion.refinement = !!(textRegionSegmentFlags & 2); + textRegion.logStripSize = textRegionSegmentFlags >> 2 & 3; + textRegion.stripSize = 1 << textRegion.logStripSize; + textRegion.referenceCorner = textRegionSegmentFlags >> 4 & 3; + textRegion.transposed = !!(textRegionSegmentFlags & 64); + textRegion.combinationOperator = textRegionSegmentFlags >> 7 & 3; + textRegion.defaultPixelValue = textRegionSegmentFlags >> 9 & 1; + textRegion.dsOffset = textRegionSegmentFlags << 17 >> 27; + textRegion.refinementTemplate = textRegionSegmentFlags >> 15 & 1; + + if (textRegion.huffman) { + var textRegionHuffmanFlags = (0, _util.readUint16)(data, position); + position += 2; + textRegion.huffmanFS = textRegionHuffmanFlags & 3; + textRegion.huffmanDS = textRegionHuffmanFlags >> 2 & 3; + textRegion.huffmanDT = textRegionHuffmanFlags >> 4 & 3; + textRegion.huffmanRefinementDW = textRegionHuffmanFlags >> 6 & 3; + textRegion.huffmanRefinementDH = textRegionHuffmanFlags >> 8 & 3; + textRegion.huffmanRefinementDX = textRegionHuffmanFlags >> 10 & 3; + textRegion.huffmanRefinementDY = textRegionHuffmanFlags >> 12 & 3; + textRegion.huffmanRefinementSizeSelector = !!(textRegionHuffmanFlags & 0x4000); + } + + if (textRegion.refinement && !textRegion.refinementTemplate) { + at = []; + + for (i = 0; i < 2; i++) { + at.push({ + x: (0, _util.readInt8)(data, position), + y: (0, _util.readInt8)(data, position + 1) + }); + position += 2; + } + + textRegion.refinementAt = at; + } + + textRegion.numberOfSymbolInstances = (0, _util.readUint32)(data, position); + position += 4; + args = [textRegion, header.referredTo, data, position, end]; + break; + + case 16: + var patternDictionary = {}; + var patternDictionaryFlags = data[position++]; + patternDictionary.mmr = !!(patternDictionaryFlags & 1); + patternDictionary.template = patternDictionaryFlags >> 1 & 3; + patternDictionary.patternWidth = data[position++]; + patternDictionary.patternHeight = data[position++]; + patternDictionary.maxPatternIndex = (0, _util.readUint32)(data, position); + position += 4; + args = [patternDictionary, header.number, data, position, end]; + break; + + case 22: + case 23: + var halftoneRegion = {}; + halftoneRegion.info = readRegionSegmentInformation(data, position); + position += RegionSegmentInformationFieldLength; + var halftoneRegionFlags = data[position++]; + halftoneRegion.mmr = !!(halftoneRegionFlags & 1); + halftoneRegion.template = halftoneRegionFlags >> 1 & 3; + halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8); + halftoneRegion.combinationOperator = halftoneRegionFlags >> 4 & 7; + halftoneRegion.defaultPixelValue = halftoneRegionFlags >> 7 & 1; + halftoneRegion.gridWidth = (0, _util.readUint32)(data, position); + position += 4; + halftoneRegion.gridHeight = (0, _util.readUint32)(data, position); + position += 4; + halftoneRegion.gridOffsetX = (0, _util.readUint32)(data, position) & 0xFFFFFFFF; + position += 4; + halftoneRegion.gridOffsetY = (0, _util.readUint32)(data, position) & 0xFFFFFFFF; + position += 4; + halftoneRegion.gridVectorX = (0, _util.readUint16)(data, position); + position += 2; + halftoneRegion.gridVectorY = (0, _util.readUint16)(data, position); + position += 2; + args = [halftoneRegion, header.referredTo, data, position, end]; + break; + + case 38: + case 39: + var genericRegion = {}; + genericRegion.info = readRegionSegmentInformation(data, position); + position += RegionSegmentInformationFieldLength; + var genericRegionSegmentFlags = data[position++]; + genericRegion.mmr = !!(genericRegionSegmentFlags & 1); + genericRegion.template = genericRegionSegmentFlags >> 1 & 3; + genericRegion.prediction = !!(genericRegionSegmentFlags & 8); + + if (!genericRegion.mmr) { + atLength = genericRegion.template === 0 ? 4 : 1; + at = []; + + for (i = 0; i < atLength; i++) { + at.push({ + x: (0, _util.readInt8)(data, position), + y: (0, _util.readInt8)(data, position + 1) + }); + position += 2; + } + + genericRegion.at = at; + } + + args = [genericRegion, data, position, end]; + break; + + case 48: + var pageInfo = { + width: (0, _util.readUint32)(data, position), + height: (0, _util.readUint32)(data, position + 4), + resolutionX: (0, _util.readUint32)(data, position + 8), + resolutionY: (0, _util.readUint32)(data, position + 12) + }; + + if (pageInfo.height === 0xFFFFFFFF) { + delete pageInfo.height; + } + + var pageSegmentFlags = data[position + 16]; + (0, _util.readUint16)(data, position + 17); + pageInfo.lossless = !!(pageSegmentFlags & 1); + pageInfo.refinement = !!(pageSegmentFlags & 2); + pageInfo.defaultPixelValue = pageSegmentFlags >> 2 & 1; + pageInfo.combinationOperator = pageSegmentFlags >> 3 & 3; + pageInfo.requiresBuffer = !!(pageSegmentFlags & 32); + pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64); + args = [pageInfo]; + break; + + case 49: + break; + + case 50: + break; + + case 51: + break; + + case 53: + args = [header.number, data, position, end]; + break; + + case 62: + break; + + default: + throw new Jbig2Error("segment type ".concat(header.typeName, "(").concat(header.type, ")") + ' is not implemented'); + } + + var callbackName = 'on' + header.typeName; + + if (callbackName in visitor) { + visitor[callbackName].apply(visitor, args); + } + } + + function processSegments(segments, visitor) { + for (var i = 0, ii = segments.length; i < ii; i++) { + processSegment(segments[i], visitor); + } + } + + function parseJbig2Chunks(chunks) { + var visitor = new SimpleSegmentVisitor(); + + for (var i = 0, ii = chunks.length; i < ii; i++) { + var chunk = chunks[i]; + var segments = readSegments({}, chunk.data, chunk.start, chunk.end); + processSegments(segments, visitor); + } + + return visitor.buffer; + } + + function parseJbig2(data) { + var position = 0, + end = data.length; + + if (data[position] !== 0x97 || data[position + 1] !== 0x4A || data[position + 2] !== 0x42 || data[position + 3] !== 0x32 || data[position + 4] !== 0x0D || data[position + 5] !== 0x0A || data[position + 6] !== 0x1A || data[position + 7] !== 0x0A) { + throw new Jbig2Error('parseJbig2 - invalid header.'); + } + + var header = Object.create(null); + position += 8; + var flags = data[position++]; + header.randomAccess = !(flags & 1); + + if (!(flags & 2)) { + header.numberOfPages = (0, _util.readUint32)(data, position); + position += 4; + } + + var segments = readSegments(header, data, position, end); + var visitor = new SimpleSegmentVisitor(); + processSegments(segments, visitor); + var _visitor$currentPageI = visitor.currentPageInfo, + width = _visitor$currentPageI.width, + height = _visitor$currentPageI.height; + var bitPacked = visitor.buffer; + var imgData = new Uint8ClampedArray(width * height); + var q = 0, + k = 0; + + for (var i = 0; i < height; i++) { + var mask = 0, + buffer = void 0; + + for (var j = 0; j < width; j++) { + if (!mask) { + mask = 128; + buffer = bitPacked[k++]; + } + + imgData[q++] = buffer & mask ? 0 : 255; + mask >>= 1; + } + } + + return { + imgData: imgData, + width: width, + height: height + }; + } + + function SimpleSegmentVisitor() {} + + SimpleSegmentVisitor.prototype = { + onPageInformation: function SimpleSegmentVisitor_onPageInformation(info) { + this.currentPageInfo = info; + var rowSize = info.width + 7 >> 3; + var buffer = new Uint8ClampedArray(rowSize * info.height); + + if (info.defaultPixelValue) { + for (var i = 0, ii = buffer.length; i < ii; i++) { + buffer[i] = 0xFF; + } + } + + this.buffer = buffer; + }, + drawBitmap: function SimpleSegmentVisitor_drawBitmap(regionInfo, bitmap) { + var pageInfo = this.currentPageInfo; + var width = regionInfo.width, + height = regionInfo.height; + var rowSize = pageInfo.width + 7 >> 3; + var combinationOperator = pageInfo.combinationOperatorOverride ? regionInfo.combinationOperator : pageInfo.combinationOperator; + var buffer = this.buffer; + var mask0 = 128 >> (regionInfo.x & 7); + var offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3); + var i, j, mask, offset; + + switch (combinationOperator) { + case 0: + for (i = 0; i < height; i++) { + mask = mask0; + offset = offset0; + + for (j = 0; j < width; j++) { + if (bitmap[i][j]) { + buffer[offset] |= mask; + } + + mask >>= 1; + + if (!mask) { + mask = 128; + offset++; + } + } + + offset0 += rowSize; + } + + break; + + case 2: + for (i = 0; i < height; i++) { + mask = mask0; + offset = offset0; + + for (j = 0; j < width; j++) { + if (bitmap[i][j]) { + buffer[offset] ^= mask; + } + + mask >>= 1; + + if (!mask) { + mask = 128; + offset++; + } + } + + offset0 += rowSize; + } + + break; + + default: + throw new Jbig2Error("operator ".concat(combinationOperator, " is not supported")); + } + }, + onImmediateGenericRegion: function SimpleSegmentVisitor_onImmediateGenericRegion(region, data, start, end) { + var regionInfo = region.info; + var decodingContext = new DecodingContext(data, start, end); + var bitmap = decodeBitmap(region.mmr, regionInfo.width, regionInfo.height, region.template, region.prediction, null, region.at, decodingContext); + this.drawBitmap(regionInfo, bitmap); + }, + onImmediateLosslessGenericRegion: function SimpleSegmentVisitor_onImmediateLosslessGenericRegion() { + this.onImmediateGenericRegion.apply(this, arguments); + }, + onSymbolDictionary: function SimpleSegmentVisitor_onSymbolDictionary(dictionary, currentSegment, referredSegments, data, start, end) { + var huffmanTables, huffmanInput; + + if (dictionary.huffman) { + huffmanTables = getSymbolDictionaryHuffmanTables(dictionary, referredSegments, this.customTables); + huffmanInput = new Reader(data, start, end); + } + + var symbols = this.symbols; + + if (!symbols) { + this.symbols = symbols = {}; + } + + var inputSymbols = []; + + for (var i = 0, ii = referredSegments.length; i < ii; i++) { + var referredSymbols = symbols[referredSegments[i]]; + + if (referredSymbols) { + inputSymbols = inputSymbols.concat(referredSymbols); + } + } + + var decodingContext = new DecodingContext(data, start, end); + symbols[currentSegment] = decodeSymbolDictionary(dictionary.huffman, dictionary.refinement, inputSymbols, dictionary.numberOfNewSymbols, dictionary.numberOfExportedSymbols, huffmanTables, dictionary.template, dictionary.at, dictionary.refinementTemplate, dictionary.refinementAt, decodingContext, huffmanInput); + }, + onImmediateTextRegion: function SimpleSegmentVisitor_onImmediateTextRegion(region, referredSegments, data, start, end) { + var regionInfo = region.info; + var huffmanTables, huffmanInput; + var symbols = this.symbols; + var inputSymbols = []; + + for (var i = 0, ii = referredSegments.length; i < ii; i++) { + var referredSymbols = symbols[referredSegments[i]]; + + if (referredSymbols) { + inputSymbols = inputSymbols.concat(referredSymbols); + } + } + + var symbolCodeLength = (0, _util.log2)(inputSymbols.length); + + if (region.huffman) { + huffmanInput = new Reader(data, start, end); + huffmanTables = getTextRegionHuffmanTables(region, referredSegments, this.customTables, inputSymbols.length, huffmanInput); + } + + var decodingContext = new DecodingContext(data, start, end); + var bitmap = decodeTextRegion(region.huffman, region.refinement, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.numberOfSymbolInstances, region.stripSize, inputSymbols, symbolCodeLength, region.transposed, region.dsOffset, region.referenceCorner, region.combinationOperator, huffmanTables, region.refinementTemplate, region.refinementAt, decodingContext, region.logStripSize, huffmanInput); + this.drawBitmap(regionInfo, bitmap); + }, + onImmediateLosslessTextRegion: function SimpleSegmentVisitor_onImmediateLosslessTextRegion() { + this.onImmediateTextRegion.apply(this, arguments); + }, + onPatternDictionary: function onPatternDictionary(dictionary, currentSegment, data, start, end) { + var patterns = this.patterns; + + if (!patterns) { + this.patterns = patterns = {}; + } + + var decodingContext = new DecodingContext(data, start, end); + patterns[currentSegment] = decodePatternDictionary(dictionary.mmr, dictionary.patternWidth, dictionary.patternHeight, dictionary.maxPatternIndex, dictionary.template, decodingContext); + }, + onImmediateHalftoneRegion: function onImmediateHalftoneRegion(region, referredSegments, data, start, end) { + var patterns = this.patterns[referredSegments[0]]; + var regionInfo = region.info; + var decodingContext = new DecodingContext(data, start, end); + var bitmap = decodeHalftoneRegion(region.mmr, patterns, region.template, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.enableSkip, region.combinationOperator, region.gridWidth, region.gridHeight, region.gridOffsetX, region.gridOffsetY, region.gridVectorX, region.gridVectorY, decodingContext); + this.drawBitmap(regionInfo, bitmap); + }, + onImmediateLosslessHalftoneRegion: function onImmediateLosslessHalftoneRegion() { + this.onImmediateHalftoneRegion.apply(this, arguments); + }, + onTables: function onTables(currentSegment, data, start, end) { + var customTables = this.customTables; + + if (!customTables) { + this.customTables = customTables = {}; + } + + customTables[currentSegment] = decodeTablesSegment(data, start, end); + } + }; + + function HuffmanLine(lineData) { + if (lineData.length === 2) { + this.isOOB = true; + this.rangeLow = 0; + this.prefixLength = lineData[0]; + this.rangeLength = 0; + this.prefixCode = lineData[1]; + this.isLowerRange = false; + } else { + this.isOOB = false; + this.rangeLow = lineData[0]; + this.prefixLength = lineData[1]; + this.rangeLength = lineData[2]; + this.prefixCode = lineData[3]; + this.isLowerRange = lineData[4] === 'lower'; + } + } + + function HuffmanTreeNode(line) { + this.children = []; + + if (line) { + this.isLeaf = true; + this.rangeLength = line.rangeLength; + this.rangeLow = line.rangeLow; + this.isLowerRange = line.isLowerRange; + this.isOOB = line.isOOB; + } else { + this.isLeaf = false; + } + } + + HuffmanTreeNode.prototype = { + buildTree: function buildTree(line, shift) { + var bit = line.prefixCode >> shift & 1; + + if (shift <= 0) { + this.children[bit] = new HuffmanTreeNode(line); + } else { + var node = this.children[bit]; + + if (!node) { + this.children[bit] = node = new HuffmanTreeNode(null); + } + + node.buildTree(line, shift - 1); + } + }, + decodeNode: function decodeNode(reader) { + if (this.isLeaf) { + if (this.isOOB) { + return null; + } + + var htOffset = reader.readBits(this.rangeLength); + return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset); + } + + var node = this.children[reader.readBit()]; + + if (!node) { + throw new Jbig2Error('invalid Huffman data'); + } + + return node.decodeNode(reader); + } + }; + + function HuffmanTable(lines, prefixCodesDone) { + if (!prefixCodesDone) { + this.assignPrefixCodes(lines); + } + + this.rootNode = new HuffmanTreeNode(null); + var i, + ii = lines.length, + line; + + for (i = 0; i < ii; i++) { + line = lines[i]; + + if (line.prefixLength > 0) { + this.rootNode.buildTree(line, line.prefixLength - 1); + } + } + } + + HuffmanTable.prototype = { + decode: function decode(reader) { + return this.rootNode.decodeNode(reader); + }, + assignPrefixCodes: function assignPrefixCodes(lines) { + var linesLength = lines.length, + prefixLengthMax = 0, + i; + + for (i = 0; i < linesLength; i++) { + prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength); + } + + var histogram = new Uint32Array(prefixLengthMax + 1); + + for (i = 0; i < linesLength; i++) { + histogram[lines[i].prefixLength]++; + } + + var currentLength = 1, + firstCode = 0, + currentCode, + currentTemp, + line; + histogram[0] = 0; + + while (currentLength <= prefixLengthMax) { + firstCode = firstCode + histogram[currentLength - 1] << 1; + currentCode = firstCode; + currentTemp = 0; + + while (currentTemp < linesLength) { + line = lines[currentTemp]; + + if (line.prefixLength === currentLength) { + line.prefixCode = currentCode; + currentCode++; + } + + currentTemp++; + } + + currentLength++; + } + } + }; + + function decodeTablesSegment(data, start, end) { + var flags = data[start]; + var lowestValue = (0, _util.readUint32)(data, start + 1) & 0xFFFFFFFF; + var highestValue = (0, _util.readUint32)(data, start + 5) & 0xFFFFFFFF; + var reader = new Reader(data, start + 9, end); + var prefixSizeBits = (flags >> 1 & 7) + 1; + var rangeSizeBits = (flags >> 4 & 7) + 1; + var lines = []; + var prefixLength, + rangeLength, + currentRangeLow = lowestValue; + + do { + prefixLength = reader.readBits(prefixSizeBits); + rangeLength = reader.readBits(rangeSizeBits); + lines.push(new HuffmanLine([currentRangeLow, prefixLength, rangeLength, 0])); + currentRangeLow += 1 << rangeLength; + } while (currentRangeLow < highestValue); + + prefixLength = reader.readBits(prefixSizeBits); + lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, 'lower'])); + prefixLength = reader.readBits(prefixSizeBits); + lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0])); + + if (flags & 1) { + prefixLength = reader.readBits(prefixSizeBits); + lines.push(new HuffmanLine([prefixLength, 0])); + } + + return new HuffmanTable(lines, false); + } + + var standardTablesCache = {}; + + function getStandardTable(number) { + var table = standardTablesCache[number]; + + if (table) { + return table; + } + + var lines; + + switch (number) { + case 1: + lines = [[0, 1, 4, 0x0], [16, 2, 8, 0x2], [272, 3, 16, 0x6], [65808, 3, 32, 0x7]]; + break; + + case 2: + lines = [[0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xE], [11, 5, 6, 0x1E], [75, 6, 32, 0x3E], [6, 0x3F]]; + break; + + case 3: + lines = [[-256, 8, 8, 0xFE], [0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xE], [11, 5, 6, 0x1E], [-257, 8, 32, 0xFF, 'lower'], [75, 7, 32, 0x7E], [6, 0x3E]]; + break; + + case 4: + lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xE], [12, 5, 6, 0x1E], [76, 5, 32, 0x1F]]; + break; + + case 5: + lines = [[-255, 7, 8, 0x7E], [1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xE], [12, 5, 6, 0x1E], [-256, 7, 32, 0x7F, 'lower'], [76, 6, 32, 0x3E]]; + break; + + case 6: + lines = [[-2048, 5, 10, 0x1C], [-1024, 4, 9, 0x8], [-512, 4, 8, 0x9], [-256, 4, 7, 0xA], [-128, 5, 6, 0x1D], [-64, 5, 5, 0x1E], [-32, 4, 5, 0xB], [0, 2, 7, 0x0], [128, 3, 7, 0x2], [256, 3, 8, 0x3], [512, 4, 9, 0xC], [1024, 4, 10, 0xD], [-2049, 6, 32, 0x3E, 'lower'], [2048, 6, 32, 0x3F]]; + break; + + case 7: + lines = [[-1024, 4, 9, 0x8], [-512, 3, 8, 0x0], [-256, 4, 7, 0x9], [-128, 5, 6, 0x1A], [-64, 5, 5, 0x1B], [-32, 4, 5, 0xA], [0, 4, 5, 0xB], [32, 5, 5, 0x1C], [64, 5, 6, 0x1D], [128, 4, 7, 0xC], [256, 3, 8, 0x1], [512, 3, 9, 0x2], [1024, 3, 10, 0x3], [-1025, 5, 32, 0x1E, 'lower'], [2048, 5, 32, 0x1F]]; + break; + + case 8: + lines = [[-15, 8, 3, 0xFC], [-7, 9, 1, 0x1FC], [-5, 8, 1, 0xFD], [-3, 9, 0, 0x1FD], [-2, 7, 0, 0x7C], [-1, 4, 0, 0xA], [0, 2, 1, 0x0], [2, 5, 0, 0x1A], [3, 6, 0, 0x3A], [4, 3, 4, 0x4], [20, 6, 1, 0x3B], [22, 4, 4, 0xB], [38, 4, 5, 0xC], [70, 5, 6, 0x1B], [134, 5, 7, 0x1C], [262, 6, 7, 0x3C], [390, 7, 8, 0x7D], [646, 6, 10, 0x3D], [-16, 9, 32, 0x1FE, 'lower'], [1670, 9, 32, 0x1FF], [2, 0x1]]; + break; + + case 9: + lines = [[-31, 8, 4, 0xFC], [-15, 9, 2, 0x1FC], [-11, 8, 2, 0xFD], [-7, 9, 1, 0x1FD], [-5, 7, 1, 0x7C], [-3, 4, 1, 0xA], [-1, 3, 1, 0x2], [1, 3, 1, 0x3], [3, 5, 1, 0x1A], [5, 6, 1, 0x3A], [7, 3, 5, 0x4], [39, 6, 2, 0x3B], [43, 4, 5, 0xB], [75, 4, 6, 0xC], [139, 5, 7, 0x1B], [267, 5, 8, 0x1C], [523, 6, 8, 0x3C], [779, 7, 9, 0x7D], [1291, 6, 11, 0x3D], [-32, 9, 32, 0x1FE, 'lower'], [3339, 9, 32, 0x1FF], [2, 0x0]]; + break; + + case 10: + lines = [[-21, 7, 4, 0x7A], [-5, 8, 0, 0xFC], [-4, 7, 0, 0x7B], [-3, 5, 0, 0x18], [-2, 2, 2, 0x0], [2, 5, 0, 0x19], [3, 6, 0, 0x36], [4, 7, 0, 0x7C], [5, 8, 0, 0xFD], [6, 2, 6, 0x1], [70, 5, 5, 0x1A], [102, 6, 5, 0x37], [134, 6, 6, 0x38], [198, 6, 7, 0x39], [326, 6, 8, 0x3A], [582, 6, 9, 0x3B], [1094, 6, 10, 0x3C], [2118, 7, 11, 0x7D], [-22, 8, 32, 0xFE, 'lower'], [4166, 8, 32, 0xFF], [2, 0x2]]; + break; + + case 11: + lines = [[1, 1, 0, 0x0], [2, 2, 1, 0x2], [4, 4, 0, 0xC], [5, 4, 1, 0xD], [7, 5, 1, 0x1C], [9, 5, 2, 0x1D], [13, 6, 2, 0x3C], [17, 7, 2, 0x7A], [21, 7, 3, 0x7B], [29, 7, 4, 0x7C], [45, 7, 5, 0x7D], [77, 7, 6, 0x7E], [141, 7, 32, 0x7F]]; + break; + + case 12: + lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 1, 0x6], [5, 5, 0, 0x1C], [6, 5, 1, 0x1D], [8, 6, 1, 0x3C], [10, 7, 0, 0x7A], [11, 7, 1, 0x7B], [13, 7, 2, 0x7C], [17, 7, 3, 0x7D], [25, 7, 4, 0x7E], [41, 8, 5, 0xFE], [73, 8, 32, 0xFF]]; + break; + + case 13: + lines = [[1, 1, 0, 0x0], [2, 3, 0, 0x4], [3, 4, 0, 0xC], [4, 5, 0, 0x1C], [5, 4, 1, 0xD], [7, 3, 3, 0x5], [15, 6, 1, 0x3A], [17, 6, 2, 0x3B], [21, 6, 3, 0x3C], [29, 6, 4, 0x3D], [45, 6, 5, 0x3E], [77, 7, 6, 0x7E], [141, 7, 32, 0x7F]]; + break; + + case 14: + lines = [[-2, 3, 0, 0x4], [-1, 3, 0, 0x5], [0, 1, 0, 0x0], [1, 3, 0, 0x6], [2, 3, 0, 0x7]]; + break; + + case 15: + lines = [[-24, 7, 4, 0x7C], [-8, 6, 2, 0x3C], [-4, 5, 1, 0x1C], [-2, 4, 0, 0xC], [-1, 3, 0, 0x4], [0, 1, 0, 0x0], [1, 3, 0, 0x5], [2, 4, 0, 0xD], [3, 5, 1, 0x1D], [5, 6, 2, 0x3D], [9, 7, 4, 0x7D], [-25, 7, 32, 0x7E, 'lower'], [25, 7, 32, 0x7F]]; + break; + + default: + throw new Jbig2Error("standard table B.".concat(number, " does not exist")); + } + + var length = lines.length, + i; + + for (i = 0; i < length; i++) { + lines[i] = new HuffmanLine(lines[i]); + } + + table = new HuffmanTable(lines, true); + standardTablesCache[number] = table; + return table; + } + + function Reader(data, start, end) { + this.data = data; + this.start = start; + this.end = end; + this.position = start; + this.shift = -1; + this.currentByte = 0; + } + + Reader.prototype = { + readBit: function readBit() { + if (this.shift < 0) { + if (this.position >= this.end) { + throw new Jbig2Error('end of data while reading bit'); + } + + this.currentByte = this.data[this.position++]; + this.shift = 7; + } + + var bit = this.currentByte >> this.shift & 1; + this.shift--; + return bit; + }, + readBits: function readBits(numBits) { + var result = 0, + i; + + for (i = numBits - 1; i >= 0; i--) { + result |= this.readBit() << i; + } + + return result; + }, + byteAlign: function byteAlign() { + this.shift = -1; + }, + next: function next() { + if (this.position >= this.end) { + return -1; + } + + return this.data[this.position++]; + } + }; + + function getCustomHuffmanTable(index, referredTo, customTables) { + var currentIndex = 0, + i, + ii = referredTo.length, + table; + + for (i = 0; i < ii; i++) { + table = customTables[referredTo[i]]; + + if (table) { + if (index === currentIndex) { + return table; + } + + currentIndex++; + } + } + + throw new Jbig2Error('can\'t find custom Huffman table'); + } + + function getTextRegionHuffmanTables(textRegion, referredTo, customTables, numberOfSymbols, reader) { + var codes = [], + i, + codeLength; + + for (i = 0; i <= 34; i++) { + codeLength = reader.readBits(4); + codes.push(new HuffmanLine([i, codeLength, 0, 0])); + } + + var runCodesTable = new HuffmanTable(codes, false); + codes.length = 0; + + for (i = 0; i < numberOfSymbols;) { + codeLength = runCodesTable.decode(reader); + + if (codeLength >= 32) { + var repeatedLength = void 0, + numberOfRepeats = void 0, + j = void 0; + + switch (codeLength) { + case 32: + if (i === 0) { + throw new Jbig2Error('no previous value in symbol ID table'); + } + + numberOfRepeats = reader.readBits(2) + 3; + repeatedLength = codes[i - 1].prefixLength; + break; + + case 33: + numberOfRepeats = reader.readBits(3) + 3; + repeatedLength = 0; + break; + + case 34: + numberOfRepeats = reader.readBits(7) + 11; + repeatedLength = 0; + break; + + default: + throw new Jbig2Error('invalid code length in symbol ID table'); + } + + for (j = 0; j < numberOfRepeats; j++) { + codes.push(new HuffmanLine([i, repeatedLength, 0, 0])); + i++; + } + } else { + codes.push(new HuffmanLine([i, codeLength, 0, 0])); + i++; + } + } + + reader.byteAlign(); + var symbolIDTable = new HuffmanTable(codes, false); + var customIndex = 0, + tableFirstS, + tableDeltaS, + tableDeltaT; + + switch (textRegion.huffmanFS) { + case 0: + case 1: + tableFirstS = getStandardTable(textRegion.huffmanFS + 6); + break; + + case 3: + tableFirstS = getCustomHuffmanTable(customIndex, referredTo, customTables); + customIndex++; + break; + + default: + throw new Jbig2Error('invalid Huffman FS selector'); + } + + switch (textRegion.huffmanDS) { + case 0: + case 1: + case 2: + tableDeltaS = getStandardTable(textRegion.huffmanDS + 8); + break; + + case 3: + tableDeltaS = getCustomHuffmanTable(customIndex, referredTo, customTables); + customIndex++; + break; + + default: + throw new Jbig2Error('invalid Huffman DS selector'); + } + + switch (textRegion.huffmanDT) { + case 0: + case 1: + case 2: + tableDeltaT = getStandardTable(textRegion.huffmanDT + 11); + break; + + case 3: + tableDeltaT = getCustomHuffmanTable(customIndex, referredTo, customTables); + customIndex++; + break; + + default: + throw new Jbig2Error('invalid Huffman DT selector'); + } + + if (textRegion.refinement) { + throw new Jbig2Error('refinement with Huffman is not supported'); + } + + return { + symbolIDTable: symbolIDTable, + tableFirstS: tableFirstS, + tableDeltaS: tableDeltaS, + tableDeltaT: tableDeltaT + }; + } + + function getSymbolDictionaryHuffmanTables(dictionary, referredTo, customTables) { + var customIndex = 0, + tableDeltaHeight, + tableDeltaWidth; + + switch (dictionary.huffmanDHSelector) { + case 0: + case 1: + tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4); + break; + + case 3: + tableDeltaHeight = getCustomHuffmanTable(customIndex, referredTo, customTables); + customIndex++; + break; + + default: + throw new Jbig2Error('invalid Huffman DH selector'); + } + + switch (dictionary.huffmanDWSelector) { + case 0: + case 1: + tableDeltaWidth = getStandardTable(dictionary.huffmanDWSelector + 2); + break; + + case 3: + tableDeltaWidth = getCustomHuffmanTable(customIndex, referredTo, customTables); + customIndex++; + break; + + default: + throw new Jbig2Error('invalid Huffman DW selector'); + } + + var tableBitmapSize, tableAggregateInstances; + + if (dictionary.bitmapSizeSelector) { + tableBitmapSize = getCustomHuffmanTable(customIndex, referredTo, customTables); + customIndex++; + } else { + tableBitmapSize = getStandardTable(1); + } + + if (dictionary.aggregationInstancesSelector) { + tableAggregateInstances = getCustomHuffmanTable(customIndex, referredTo, customTables); + } else { + tableAggregateInstances = getStandardTable(1); + } + + return { + tableDeltaHeight: tableDeltaHeight, + tableDeltaWidth: tableDeltaWidth, + tableBitmapSize: tableBitmapSize, + tableAggregateInstances: tableAggregateInstances + }; + } + + function readUncompressedBitmap(reader, width, height) { + var bitmap = [], + x, + y, + row; + + for (y = 0; y < height; y++) { + row = new Uint8Array(width); + bitmap.push(row); + + for (x = 0; x < width; x++) { + row[x] = reader.readBit(); + } + + reader.byteAlign(); + } + + return bitmap; + } + + function decodeMMRBitmap(input, width, height, endOfBlock) { + var params = { + K: -1, + Columns: width, + Rows: height, + BlackIs1: true, + EndOfBlock: endOfBlock + }; + var decoder = new _ccitt.CCITTFaxDecoder(input, params); + var bitmap = [], + x, + y, + row, + currentByte, + shift, + eof = false; + + for (y = 0; y < height; y++) { + row = new Uint8Array(width); + bitmap.push(row); + shift = -1; + + for (x = 0; x < width; x++) { + if (shift < 0) { + currentByte = decoder.readNextChar(); + + if (currentByte === -1) { + currentByte = 0; + eof = true; + } + + shift = 7; + } + + row[x] = currentByte >> shift & 1; + shift--; + } + } + + if (endOfBlock && !eof) { + var lookForEOFLimit = 5; + + for (var i = 0; i < lookForEOFLimit; i++) { + if (decoder.readNextChar() === -1) { + break; + } + } + } + + return bitmap; + } + + function Jbig2Image() {} + + Jbig2Image.prototype = { + parseChunks: function parseChunks(chunks) { + return parseJbig2Chunks(chunks); + }, + parse: function parse(data) { + var _parseJbig = parseJbig2(data), + imgData = _parseJbig.imgData, + width = _parseJbig.width, + height = _parseJbig.height; + + this.width = width; + this.height = height; + return imgData; + } + }; + return Jbig2Image; +}(); + +exports.Jbig2Image = Jbig2Image; + +/***/ }), +/* 162 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ArithmeticDecoder = void 0; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var QeTable = [{ + qe: 0x5601, + nmps: 1, + nlps: 1, + switchFlag: 1 +}, { + qe: 0x3401, + nmps: 2, + nlps: 6, + switchFlag: 0 +}, { + qe: 0x1801, + nmps: 3, + nlps: 9, + switchFlag: 0 +}, { + qe: 0x0AC1, + nmps: 4, + nlps: 12, + switchFlag: 0 +}, { + qe: 0x0521, + nmps: 5, + nlps: 29, + switchFlag: 0 +}, { + qe: 0x0221, + nmps: 38, + nlps: 33, + switchFlag: 0 +}, { + qe: 0x5601, + nmps: 7, + nlps: 6, + switchFlag: 1 +}, { + qe: 0x5401, + nmps: 8, + nlps: 14, + switchFlag: 0 +}, { + qe: 0x4801, + nmps: 9, + nlps: 14, + switchFlag: 0 +}, { + qe: 0x3801, + nmps: 10, + nlps: 14, + switchFlag: 0 +}, { + qe: 0x3001, + nmps: 11, + nlps: 17, + switchFlag: 0 +}, { + qe: 0x2401, + nmps: 12, + nlps: 18, + switchFlag: 0 +}, { + qe: 0x1C01, + nmps: 13, + nlps: 20, + switchFlag: 0 +}, { + qe: 0x1601, + nmps: 29, + nlps: 21, + switchFlag: 0 +}, { + qe: 0x5601, + nmps: 15, + nlps: 14, + switchFlag: 1 +}, { + qe: 0x5401, + nmps: 16, + nlps: 14, + switchFlag: 0 +}, { + qe: 0x5101, + nmps: 17, + nlps: 15, + switchFlag: 0 +}, { + qe: 0x4801, + nmps: 18, + nlps: 16, + switchFlag: 0 +}, { + qe: 0x3801, + nmps: 19, + nlps: 17, + switchFlag: 0 +}, { + qe: 0x3401, + nmps: 20, + nlps: 18, + switchFlag: 0 +}, { + qe: 0x3001, + nmps: 21, + nlps: 19, + switchFlag: 0 +}, { + qe: 0x2801, + nmps: 22, + nlps: 19, + switchFlag: 0 +}, { + qe: 0x2401, + nmps: 23, + nlps: 20, + switchFlag: 0 +}, { + qe: 0x2201, + nmps: 24, + nlps: 21, + switchFlag: 0 +}, { + qe: 0x1C01, + nmps: 25, + nlps: 22, + switchFlag: 0 +}, { + qe: 0x1801, + nmps: 26, + nlps: 23, + switchFlag: 0 +}, { + qe: 0x1601, + nmps: 27, + nlps: 24, + switchFlag: 0 +}, { + qe: 0x1401, + nmps: 28, + nlps: 25, + switchFlag: 0 +}, { + qe: 0x1201, + nmps: 29, + nlps: 26, + switchFlag: 0 +}, { + qe: 0x1101, + nmps: 30, + nlps: 27, + switchFlag: 0 +}, { + qe: 0x0AC1, + nmps: 31, + nlps: 28, + switchFlag: 0 +}, { + qe: 0x09C1, + nmps: 32, + nlps: 29, + switchFlag: 0 +}, { + qe: 0x08A1, + nmps: 33, + nlps: 30, + switchFlag: 0 +}, { + qe: 0x0521, + nmps: 34, + nlps: 31, + switchFlag: 0 +}, { + qe: 0x0441, + nmps: 35, + nlps: 32, + switchFlag: 0 +}, { + qe: 0x02A1, + nmps: 36, + nlps: 33, + switchFlag: 0 +}, { + qe: 0x0221, + nmps: 37, + nlps: 34, + switchFlag: 0 +}, { + qe: 0x0141, + nmps: 38, + nlps: 35, + switchFlag: 0 +}, { + qe: 0x0111, + nmps: 39, + nlps: 36, + switchFlag: 0 +}, { + qe: 0x0085, + nmps: 40, + nlps: 37, + switchFlag: 0 +}, { + qe: 0x0049, + nmps: 41, + nlps: 38, + switchFlag: 0 +}, { + qe: 0x0025, + nmps: 42, + nlps: 39, + switchFlag: 0 +}, { + qe: 0x0015, + nmps: 43, + nlps: 40, + switchFlag: 0 +}, { + qe: 0x0009, + nmps: 44, + nlps: 41, + switchFlag: 0 +}, { + qe: 0x0005, + nmps: 45, + nlps: 42, + switchFlag: 0 +}, { + qe: 0x0001, + nmps: 45, + nlps: 43, + switchFlag: 0 +}, { + qe: 0x5601, + nmps: 46, + nlps: 46, + switchFlag: 0 +}]; + +var ArithmeticDecoder = +/*#__PURE__*/ +function () { + function ArithmeticDecoder(data, start, end) { + _classCallCheck(this, ArithmeticDecoder); + + this.data = data; + this.bp = start; + this.dataEnd = end; + this.chigh = data[start]; + this.clow = 0; + this.byteIn(); + this.chigh = this.chigh << 7 & 0xFFFF | this.clow >> 9 & 0x7F; + this.clow = this.clow << 7 & 0xFFFF; + this.ct -= 7; + this.a = 0x8000; + } + + _createClass(ArithmeticDecoder, [{ + key: "byteIn", + value: function byteIn() { + var data = this.data; + var bp = this.bp; + + if (data[bp] === 0xFF) { + if (data[bp + 1] > 0x8F) { + this.clow += 0xFF00; + this.ct = 8; + } else { + bp++; + this.clow += data[bp] << 9; + this.ct = 7; + this.bp = bp; + } + } else { + bp++; + this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xFF00; + this.ct = 8; + this.bp = bp; + } + + if (this.clow > 0xFFFF) { + this.chigh += this.clow >> 16; + this.clow &= 0xFFFF; + } + } + }, { + key: "readBit", + value: function readBit(contexts, pos) { + var cx_index = contexts[pos] >> 1, + cx_mps = contexts[pos] & 1; + var qeTableIcx = QeTable[cx_index]; + var qeIcx = qeTableIcx.qe; + var d; + var a = this.a - qeIcx; + + if (this.chigh < qeIcx) { + if (a < qeIcx) { + a = qeIcx; + d = cx_mps; + cx_index = qeTableIcx.nmps; + } else { + a = qeIcx; + d = 1 ^ cx_mps; + + if (qeTableIcx.switchFlag === 1) { + cx_mps = d; + } + + cx_index = qeTableIcx.nlps; + } + } else { + this.chigh -= qeIcx; + + if ((a & 0x8000) !== 0) { + this.a = a; + return cx_mps; + } + + if (a < qeIcx) { + d = 1 ^ cx_mps; + + if (qeTableIcx.switchFlag === 1) { + cx_mps = d; + } + + cx_index = qeTableIcx.nlps; + } else { + d = cx_mps; + cx_index = qeTableIcx.nmps; + } + } + + do { + if (this.ct === 0) { + this.byteIn(); + } + + a <<= 1; + this.chigh = this.chigh << 1 & 0xFFFF | this.clow >> 15 & 1; + this.clow = this.clow << 1 & 0xFFFF; + this.ct--; + } while ((a & 0x8000) === 0); + + this.a = a; + contexts[pos] = cx_index << 1 | cx_mps; + return d; + } + }]); + + return ArithmeticDecoder; +}(); + +exports.ArithmeticDecoder = ArithmeticDecoder; + +/***/ }), +/* 163 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.JpegStream = void 0; + +var _util = __w_pdfjs_require__(6); + +var _stream = __w_pdfjs_require__(157); + +var _primitives = __w_pdfjs_require__(155); + +var _jpg = __w_pdfjs_require__(164); + +var JpegStream = function JpegStreamClosure() { + function JpegStream(stream, maybeLength, dict, params) { + var ch; + + while ((ch = stream.getByte()) !== -1) { + if (ch === 0xFF) { + stream.skip(-1); + break; + } + } + + this.stream = stream; + this.maybeLength = maybeLength; + this.dict = dict; + this.params = params; + + _stream.DecodeStream.call(this, maybeLength); + } + + JpegStream.prototype = Object.create(_stream.DecodeStream.prototype); + Object.defineProperty(JpegStream.prototype, 'bytes', { + get: function JpegStream_bytes() { + return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength)); + }, + configurable: true + }); + + JpegStream.prototype.ensureBuffer = function (requested) {}; + + JpegStream.prototype.readBlock = function () { + if (this.eof) { + return; + } + + var jpegOptions = { + decodeTransform: undefined, + colorTransform: undefined + }; + var decodeArr = this.dict.getArray('Decode', 'D'); + + if (this.forceRGB && Array.isArray(decodeArr)) { + var bitsPerComponent = this.dict.get('BitsPerComponent') || 8; + var decodeArrLength = decodeArr.length; + var transform = new Int32Array(decodeArrLength); + var transformNeeded = false; + var maxValue = (1 << bitsPerComponent) - 1; + + for (var i = 0; i < decodeArrLength; i += 2) { + transform[i] = (decodeArr[i + 1] - decodeArr[i]) * 256 | 0; + transform[i + 1] = decodeArr[i] * maxValue | 0; + + if (transform[i] !== 256 || transform[i + 1] !== 0) { + transformNeeded = true; + } + } + + if (transformNeeded) { + jpegOptions.decodeTransform = transform; + } + } + + if ((0, _primitives.isDict)(this.params)) { + var colorTransform = this.params.get('ColorTransform'); + + if (Number.isInteger(colorTransform)) { + jpegOptions.colorTransform = colorTransform; + } + } + + var jpegImage = new _jpg.JpegImage(jpegOptions); + jpegImage.parse(this.bytes); + var data = jpegImage.getData({ + width: this.drawWidth, + height: this.drawHeight, + forceRGB: this.forceRGB, + isSourcePDF: true + }); + this.buffer = data; + this.bufferLength = data.length; + this.eof = true; + }; + + JpegStream.prototype.getIR = function () { + var forceDataSchema = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + return (0, _util.createObjectURL)(this.bytes, 'image/jpeg', forceDataSchema); + }; + + return JpegStream; +}(); + +exports.JpegStream = JpegStream; + +/***/ }), +/* 164 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.JpegImage = void 0; + +var _util = __w_pdfjs_require__(6); + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var JpegError = function JpegErrorClosure() { + function JpegError(msg) { + this.message = 'JPEG error: ' + msg; + } + + JpegError.prototype = new Error(); + JpegError.prototype.name = 'JpegError'; + JpegError.constructor = JpegError; + return JpegError; +}(); + +var DNLMarkerError = function DNLMarkerErrorClosure() { + function DNLMarkerError(message, scanLines) { + this.message = message; + this.scanLines = scanLines; + } + + DNLMarkerError.prototype = new Error(); + DNLMarkerError.prototype.name = 'DNLMarkerError'; + DNLMarkerError.constructor = DNLMarkerError; + return DNLMarkerError; +}(); + +var EOIMarkerError = function EOIMarkerErrorClosure() { + function EOIMarkerError(message) { + this.message = message; + } + + EOIMarkerError.prototype = new Error(); + EOIMarkerError.prototype.name = 'EOIMarkerError'; + EOIMarkerError.constructor = EOIMarkerError; + return EOIMarkerError; +}(); + +var JpegImage = function JpegImageClosure() { + var dctZigZag = new Uint8Array([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63]); + var dctCos1 = 4017; + var dctSin1 = 799; + var dctCos3 = 3406; + var dctSin3 = 2276; + var dctCos6 = 1567; + var dctSin6 = 3784; + var dctSqrt2 = 5793; + var dctSqrt1d2 = 2896; + + function JpegImage() { + var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref$decodeTransform = _ref.decodeTransform, + decodeTransform = _ref$decodeTransform === void 0 ? null : _ref$decodeTransform, + _ref$colorTransform = _ref.colorTransform, + colorTransform = _ref$colorTransform === void 0 ? -1 : _ref$colorTransform; + + this._decodeTransform = decodeTransform; + this._colorTransform = colorTransform; + } + + function buildHuffmanTable(codeLengths, values) { + var k = 0, + code = [], + i, + j, + length = 16; + + while (length > 0 && !codeLengths[length - 1]) { + length--; + } + + code.push({ + children: [], + index: 0 + }); + var p = code[0], + q; + + for (i = 0; i < length; i++) { + for (j = 0; j < codeLengths[i]; j++) { + p = code.pop(); + p.children[p.index] = values[k]; + + while (p.index > 0) { + p = code.pop(); + } + + p.index++; + code.push(p); + + while (code.length <= i) { + code.push(q = { + children: [], + index: 0 + }); + p.children[p.index] = q.children; + p = q; + } + + k++; + } + + if (i + 1 < length) { + code.push(q = { + children: [], + index: 0 + }); + p.children[p.index] = q.children; + p = q; + } + } + + return code[0].children; + } + + function getBlockBufferOffset(component, row, col) { + return 64 * ((component.blocksPerLine + 1) * row + col); + } + + function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive) { + var parseDNLMarker = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : false; + var mcusPerLine = frame.mcusPerLine; + var progressive = frame.progressive; + var startOffset = offset, + bitsData = 0, + bitsCount = 0; + + function readBit() { + if (bitsCount > 0) { + bitsCount--; + return bitsData >> bitsCount & 1; + } + + bitsData = data[offset++]; + + if (bitsData === 0xFF) { + var nextByte = data[offset++]; + + if (nextByte) { + if (nextByte === 0xDC && parseDNLMarker) { + offset += 2; + var scanLines = data[offset++] << 8 | data[offset++]; + + if (scanLines > 0 && scanLines !== frame.scanLines) { + throw new DNLMarkerError('Found DNL marker (0xFFDC) while parsing scan data', scanLines); + } + } else if (nextByte === 0xD9) { + throw new EOIMarkerError('Found EOI marker (0xFFD9) while parsing scan data'); + } + + throw new JpegError("unexpected marker ".concat((bitsData << 8 | nextByte).toString(16))); + } + } + + bitsCount = 7; + return bitsData >>> 7; + } + + function decodeHuffman(tree) { + var node = tree; + + while (true) { + node = node[readBit()]; + + if (typeof node === 'number') { + return node; + } + + if (_typeof(node) !== 'object') { + throw new JpegError('invalid huffman sequence'); + } + } + } + + function receive(length) { + var n = 0; + + while (length > 0) { + n = n << 1 | readBit(); + length--; + } + + return n; + } + + function receiveAndExtend(length) { + if (length === 1) { + return readBit() === 1 ? 1 : -1; + } + + var n = receive(length); + + if (n >= 1 << length - 1) { + return n; + } + + return n + (-1 << length) + 1; + } + + function decodeBaseline(component, offset) { + var t = decodeHuffman(component.huffmanTableDC); + var diff = t === 0 ? 0 : receiveAndExtend(t); + component.blockData[offset] = component.pred += diff; + var k = 1; + + while (k < 64) { + var rs = decodeHuffman(component.huffmanTableAC); + var s = rs & 15, + r = rs >> 4; + + if (s === 0) { + if (r < 15) { + break; + } + + k += 16; + continue; + } + + k += r; + var z = dctZigZag[k]; + component.blockData[offset + z] = receiveAndExtend(s); + k++; + } + } + + function decodeDCFirst(component, offset) { + var t = decodeHuffman(component.huffmanTableDC); + var diff = t === 0 ? 0 : receiveAndExtend(t) << successive; + component.blockData[offset] = component.pred += diff; + } + + function decodeDCSuccessive(component, offset) { + component.blockData[offset] |= readBit() << successive; + } + + var eobrun = 0; + + function decodeACFirst(component, offset) { + if (eobrun > 0) { + eobrun--; + return; + } + + var k = spectralStart, + e = spectralEnd; + + while (k <= e) { + var rs = decodeHuffman(component.huffmanTableAC); + var s = rs & 15, + r = rs >> 4; + + if (s === 0) { + if (r < 15) { + eobrun = receive(r) + (1 << r) - 1; + break; + } + + k += 16; + continue; + } + + k += r; + var z = dctZigZag[k]; + component.blockData[offset + z] = receiveAndExtend(s) * (1 << successive); + k++; + } + } + + var successiveACState = 0, + successiveACNextValue; + + function decodeACSuccessive(component, offset) { + var k = spectralStart; + var e = spectralEnd; + var r = 0; + var s; + var rs; + + while (k <= e) { + var offsetZ = offset + dctZigZag[k]; + var sign = component.blockData[offsetZ] < 0 ? -1 : 1; + + switch (successiveACState) { + case 0: + rs = decodeHuffman(component.huffmanTableAC); + s = rs & 15; + r = rs >> 4; + + if (s === 0) { + if (r < 15) { + eobrun = receive(r) + (1 << r); + successiveACState = 4; + } else { + r = 16; + successiveACState = 1; + } + } else { + if (s !== 1) { + throw new JpegError('invalid ACn encoding'); + } + + successiveACNextValue = receiveAndExtend(s); + successiveACState = r ? 2 : 3; + } + + continue; + + case 1: + case 2: + if (component.blockData[offsetZ]) { + component.blockData[offsetZ] += sign * (readBit() << successive); + } else { + r--; + + if (r === 0) { + successiveACState = successiveACState === 2 ? 3 : 0; + } + } + + break; + + case 3: + if (component.blockData[offsetZ]) { + component.blockData[offsetZ] += sign * (readBit() << successive); + } else { + component.blockData[offsetZ] = successiveACNextValue << successive; + successiveACState = 0; + } + + break; + + case 4: + if (component.blockData[offsetZ]) { + component.blockData[offsetZ] += sign * (readBit() << successive); + } + + break; + } + + k++; + } + + if (successiveACState === 4) { + eobrun--; + + if (eobrun === 0) { + successiveACState = 0; + } + } + } + + function decodeMcu(component, decode, mcu, row, col) { + var mcuRow = mcu / mcusPerLine | 0; + var mcuCol = mcu % mcusPerLine; + var blockRow = mcuRow * component.v + row; + var blockCol = mcuCol * component.h + col; + var offset = getBlockBufferOffset(component, blockRow, blockCol); + decode(component, offset); + } + + function decodeBlock(component, decode, mcu) { + var blockRow = mcu / component.blocksPerLine | 0; + var blockCol = mcu % component.blocksPerLine; + var offset = getBlockBufferOffset(component, blockRow, blockCol); + decode(component, offset); + } + + var componentsLength = components.length; + var component, i, j, k, n; + var decodeFn; + + if (progressive) { + if (spectralStart === 0) { + decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive; + } else { + decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive; + } + } else { + decodeFn = decodeBaseline; + } + + var mcu = 0, + fileMarker; + var mcuExpected; + + if (componentsLength === 1) { + mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn; + } else { + mcuExpected = mcusPerLine * frame.mcusPerColumn; + } + + var h, v; + + while (mcu < mcuExpected) { + var mcuToRead = resetInterval ? Math.min(mcuExpected - mcu, resetInterval) : mcuExpected; + + for (i = 0; i < componentsLength; i++) { + components[i].pred = 0; + } + + eobrun = 0; + + if (componentsLength === 1) { + component = components[0]; + + for (n = 0; n < mcuToRead; n++) { + decodeBlock(component, decodeFn, mcu); + mcu++; + } + } else { + for (n = 0; n < mcuToRead; n++) { + for (i = 0; i < componentsLength; i++) { + component = components[i]; + h = component.h; + v = component.v; + + for (j = 0; j < v; j++) { + for (k = 0; k < h; k++) { + decodeMcu(component, decodeFn, mcu, j, k); + } + } + } + + mcu++; + } + } + + bitsCount = 0; + fileMarker = findNextFileMarker(data, offset); + + if (fileMarker && fileMarker.invalid) { + (0, _util.warn)('decodeScan - unexpected MCU data, current marker is: ' + fileMarker.invalid); + offset = fileMarker.offset; + } + + var marker = fileMarker && fileMarker.marker; + + if (!marker || marker <= 0xFF00) { + throw new JpegError('marker was not found'); + } + + if (marker >= 0xFFD0 && marker <= 0xFFD7) { + offset += 2; + } else { + break; + } + } + + fileMarker = findNextFileMarker(data, offset); + + if (fileMarker && fileMarker.invalid) { + (0, _util.warn)('decodeScan - unexpected Scan data, current marker is: ' + fileMarker.invalid); + offset = fileMarker.offset; + } + + return offset - startOffset; + } + + function quantizeAndInverse(component, blockBufferOffset, p) { + var qt = component.quantizationTable, + blockData = component.blockData; + var v0, v1, v2, v3, v4, v5, v6, v7; + var p0, p1, p2, p3, p4, p5, p6, p7; + var t; + + if (!qt) { + throw new JpegError('missing required Quantization Table.'); + } + + for (var row = 0; row < 64; row += 8) { + p0 = blockData[blockBufferOffset + row]; + p1 = blockData[blockBufferOffset + row + 1]; + p2 = blockData[blockBufferOffset + row + 2]; + p3 = blockData[blockBufferOffset + row + 3]; + p4 = blockData[blockBufferOffset + row + 4]; + p5 = blockData[blockBufferOffset + row + 5]; + p6 = blockData[blockBufferOffset + row + 6]; + p7 = blockData[blockBufferOffset + row + 7]; + p0 *= qt[row]; + + if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) { + t = dctSqrt2 * p0 + 512 >> 10; + p[row] = t; + p[row + 1] = t; + p[row + 2] = t; + p[row + 3] = t; + p[row + 4] = t; + p[row + 5] = t; + p[row + 6] = t; + p[row + 7] = t; + continue; + } + + p1 *= qt[row + 1]; + p2 *= qt[row + 2]; + p3 *= qt[row + 3]; + p4 *= qt[row + 4]; + p5 *= qt[row + 5]; + p6 *= qt[row + 6]; + p7 *= qt[row + 7]; + v0 = dctSqrt2 * p0 + 128 >> 8; + v1 = dctSqrt2 * p4 + 128 >> 8; + v2 = p2; + v3 = p6; + v4 = dctSqrt1d2 * (p1 - p7) + 128 >> 8; + v7 = dctSqrt1d2 * (p1 + p7) + 128 >> 8; + v5 = p3 << 4; + v6 = p5 << 4; + v0 = v0 + v1 + 1 >> 1; + v1 = v0 - v1; + t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8; + v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8; + v3 = t; + v4 = v4 + v6 + 1 >> 1; + v6 = v4 - v6; + v7 = v7 + v5 + 1 >> 1; + v5 = v7 - v5; + v0 = v0 + v3 + 1 >> 1; + v3 = v0 - v3; + v1 = v1 + v2 + 1 >> 1; + v2 = v1 - v2; + t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12; + v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12; + v7 = t; + t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12; + v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12; + v6 = t; + p[row] = v0 + v7; + p[row + 7] = v0 - v7; + p[row + 1] = v1 + v6; + p[row + 6] = v1 - v6; + p[row + 2] = v2 + v5; + p[row + 5] = v2 - v5; + p[row + 3] = v3 + v4; + p[row + 4] = v3 - v4; + } + + for (var col = 0; col < 8; ++col) { + p0 = p[col]; + p1 = p[col + 8]; + p2 = p[col + 16]; + p3 = p[col + 24]; + p4 = p[col + 32]; + p5 = p[col + 40]; + p6 = p[col + 48]; + p7 = p[col + 56]; + + if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) { + t = dctSqrt2 * p0 + 8192 >> 14; + t = t < -2040 ? 0 : t >= 2024 ? 255 : t + 2056 >> 4; + blockData[blockBufferOffset + col] = t; + blockData[blockBufferOffset + col + 8] = t; + blockData[blockBufferOffset + col + 16] = t; + blockData[blockBufferOffset + col + 24] = t; + blockData[blockBufferOffset + col + 32] = t; + blockData[blockBufferOffset + col + 40] = t; + blockData[blockBufferOffset + col + 48] = t; + blockData[blockBufferOffset + col + 56] = t; + continue; + } + + v0 = dctSqrt2 * p0 + 2048 >> 12; + v1 = dctSqrt2 * p4 + 2048 >> 12; + v2 = p2; + v3 = p6; + v4 = dctSqrt1d2 * (p1 - p7) + 2048 >> 12; + v7 = dctSqrt1d2 * (p1 + p7) + 2048 >> 12; + v5 = p3; + v6 = p5; + v0 = (v0 + v1 + 1 >> 1) + 4112; + v1 = v0 - v1; + t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12; + v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12; + v3 = t; + v4 = v4 + v6 + 1 >> 1; + v6 = v4 - v6; + v7 = v7 + v5 + 1 >> 1; + v5 = v7 - v5; + v0 = v0 + v3 + 1 >> 1; + v3 = v0 - v3; + v1 = v1 + v2 + 1 >> 1; + v2 = v1 - v2; + t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12; + v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12; + v7 = t; + t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12; + v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12; + v6 = t; + p0 = v0 + v7; + p7 = v0 - v7; + p1 = v1 + v6; + p6 = v1 - v6; + p2 = v2 + v5; + p5 = v2 - v5; + p3 = v3 + v4; + p4 = v3 - v4; + p0 = p0 < 16 ? 0 : p0 >= 4080 ? 255 : p0 >> 4; + p1 = p1 < 16 ? 0 : p1 >= 4080 ? 255 : p1 >> 4; + p2 = p2 < 16 ? 0 : p2 >= 4080 ? 255 : p2 >> 4; + p3 = p3 < 16 ? 0 : p3 >= 4080 ? 255 : p3 >> 4; + p4 = p4 < 16 ? 0 : p4 >= 4080 ? 255 : p4 >> 4; + p5 = p5 < 16 ? 0 : p5 >= 4080 ? 255 : p5 >> 4; + p6 = p6 < 16 ? 0 : p6 >= 4080 ? 255 : p6 >> 4; + p7 = p7 < 16 ? 0 : p7 >= 4080 ? 255 : p7 >> 4; + blockData[blockBufferOffset + col] = p0; + blockData[blockBufferOffset + col + 8] = p1; + blockData[blockBufferOffset + col + 16] = p2; + blockData[blockBufferOffset + col + 24] = p3; + blockData[blockBufferOffset + col + 32] = p4; + blockData[blockBufferOffset + col + 40] = p5; + blockData[blockBufferOffset + col + 48] = p6; + blockData[blockBufferOffset + col + 56] = p7; + } + } + + function buildComponentData(frame, component) { + var blocksPerLine = component.blocksPerLine; + var blocksPerColumn = component.blocksPerColumn; + var computationBuffer = new Int16Array(64); + + for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { + for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { + var offset = getBlockBufferOffset(component, blockRow, blockCol); + quantizeAndInverse(component, offset, computationBuffer); + } + } + + return component.blockData; + } + + function findNextFileMarker(data, currentPos) { + var startPos = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : currentPos; + + function peekUint16(pos) { + return data[pos] << 8 | data[pos + 1]; + } + + var maxPos = data.length - 1; + var newPos = startPos < currentPos ? startPos : currentPos; + + if (currentPos >= maxPos) { + return null; + } + + var currentMarker = peekUint16(currentPos); + + if (currentMarker >= 0xFFC0 && currentMarker <= 0xFFFE) { + return { + invalid: null, + marker: currentMarker, + offset: currentPos + }; + } + + var newMarker = peekUint16(newPos); + + while (!(newMarker >= 0xFFC0 && newMarker <= 0xFFFE)) { + if (++newPos >= maxPos) { + return null; + } + + newMarker = peekUint16(newPos); + } + + return { + invalid: currentMarker.toString(16), + marker: newMarker, + offset: newPos + }; + } + + JpegImage.prototype = { + parse: function parse(data) { + var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref2$dnlScanLines = _ref2.dnlScanLines, + dnlScanLines = _ref2$dnlScanLines === void 0 ? null : _ref2$dnlScanLines; + + function readUint16() { + var value = data[offset] << 8 | data[offset + 1]; + offset += 2; + return value; + } + + function readDataBlock() { + var length = readUint16(); + var endOffset = offset + length - 2; + var fileMarker = findNextFileMarker(data, endOffset, offset); + + if (fileMarker && fileMarker.invalid) { + (0, _util.warn)('readDataBlock - incorrect length, current marker is: ' + fileMarker.invalid); + endOffset = fileMarker.offset; + } + + var array = data.subarray(offset, endOffset); + offset += array.length; + return array; + } + + function prepareComponents(frame) { + var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH); + var mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV); + + for (var i = 0; i < frame.components.length; i++) { + component = frame.components[i]; + var blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / frame.maxH); + var blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / frame.maxV); + var blocksPerLineForMcu = mcusPerLine * component.h; + var blocksPerColumnForMcu = mcusPerColumn * component.v; + var blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1); + component.blockData = new Int16Array(blocksBufferSize); + component.blocksPerLine = blocksPerLine; + component.blocksPerColumn = blocksPerColumn; + } + + frame.mcusPerLine = mcusPerLine; + frame.mcusPerColumn = mcusPerColumn; + } + + var offset = 0; + var jfif = null; + var adobe = null; + var frame, resetInterval; + var numSOSMarkers = 0; + var quantizationTables = []; + var huffmanTablesAC = [], + huffmanTablesDC = []; + var fileMarker = readUint16(); + + if (fileMarker !== 0xFFD8) { + throw new JpegError('SOI not found'); + } + + fileMarker = readUint16(); + + markerLoop: while (fileMarker !== 0xFFD9) { + var i, j, l; + + switch (fileMarker) { + case 0xFFE0: + case 0xFFE1: + case 0xFFE2: + case 0xFFE3: + case 0xFFE4: + case 0xFFE5: + case 0xFFE6: + case 0xFFE7: + case 0xFFE8: + case 0xFFE9: + case 0xFFEA: + case 0xFFEB: + case 0xFFEC: + case 0xFFED: + case 0xFFEE: + case 0xFFEF: + case 0xFFFE: + var appData = readDataBlock(); + + if (fileMarker === 0xFFE0) { + if (appData[0] === 0x4A && appData[1] === 0x46 && appData[2] === 0x49 && appData[3] === 0x46 && appData[4] === 0) { + jfif = { + version: { + major: appData[5], + minor: appData[6] + }, + densityUnits: appData[7], + xDensity: appData[8] << 8 | appData[9], + yDensity: appData[10] << 8 | appData[11], + thumbWidth: appData[12], + thumbHeight: appData[13], + thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13]) + }; + } + } + + if (fileMarker === 0xFFEE) { + if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6F && appData[3] === 0x62 && appData[4] === 0x65) { + adobe = { + version: appData[5] << 8 | appData[6], + flags0: appData[7] << 8 | appData[8], + flags1: appData[9] << 8 | appData[10], + transformCode: appData[11] + }; + } + } + + break; + + case 0xFFDB: + var quantizationTablesLength = readUint16(); + var quantizationTablesEnd = quantizationTablesLength + offset - 2; + var z; + + while (offset < quantizationTablesEnd) { + var quantizationTableSpec = data[offset++]; + var tableData = new Uint16Array(64); + + if (quantizationTableSpec >> 4 === 0) { + for (j = 0; j < 64; j++) { + z = dctZigZag[j]; + tableData[z] = data[offset++]; + } + } else if (quantizationTableSpec >> 4 === 1) { + for (j = 0; j < 64; j++) { + z = dctZigZag[j]; + tableData[z] = readUint16(); + } + } else { + throw new JpegError('DQT - invalid table spec'); + } + + quantizationTables[quantizationTableSpec & 15] = tableData; + } + + break; + + case 0xFFC0: + case 0xFFC1: + case 0xFFC2: + if (frame) { + throw new JpegError('Only single frame JPEGs supported'); + } + + readUint16(); + frame = {}; + frame.extended = fileMarker === 0xFFC1; + frame.progressive = fileMarker === 0xFFC2; + frame.precision = data[offset++]; + var sofScanLines = readUint16(); + frame.scanLines = dnlScanLines || sofScanLines; + frame.samplesPerLine = readUint16(); + frame.components = []; + frame.componentIds = {}; + var componentsCount = data[offset++], + componentId; + var maxH = 0, + maxV = 0; + + for (i = 0; i < componentsCount; i++) { + componentId = data[offset]; + var h = data[offset + 1] >> 4; + var v = data[offset + 1] & 15; + + if (maxH < h) { + maxH = h; + } + + if (maxV < v) { + maxV = v; + } + + var qId = data[offset + 2]; + l = frame.components.push({ + h: h, + v: v, + quantizationId: qId, + quantizationTable: null + }); + frame.componentIds[componentId] = l - 1; + offset += 3; + } + + frame.maxH = maxH; + frame.maxV = maxV; + prepareComponents(frame); + break; + + case 0xFFC4: + var huffmanLength = readUint16(); + + for (i = 2; i < huffmanLength;) { + var huffmanTableSpec = data[offset++]; + var codeLengths = new Uint8Array(16); + var codeLengthSum = 0; + + for (j = 0; j < 16; j++, offset++) { + codeLengthSum += codeLengths[j] = data[offset]; + } + + var huffmanValues = new Uint8Array(codeLengthSum); + + for (j = 0; j < codeLengthSum; j++, offset++) { + huffmanValues[j] = data[offset]; + } + + i += 17 + codeLengthSum; + (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues); + } + + break; + + case 0xFFDD: + readUint16(); + resetInterval = readUint16(); + break; + + case 0xFFDA: + var parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines; + readUint16(); + var selectorsCount = data[offset++]; + var components = [], + component; + + for (i = 0; i < selectorsCount; i++) { + var componentIndex = frame.componentIds[data[offset++]]; + component = frame.components[componentIndex]; + var tableSpec = data[offset++]; + component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4]; + component.huffmanTableAC = huffmanTablesAC[tableSpec & 15]; + components.push(component); + } + + var spectralStart = data[offset++]; + var spectralEnd = data[offset++]; + var successiveApproximation = data[offset++]; + + try { + var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, parseDNLMarker); + offset += processed; + } catch (ex) { + if (ex instanceof DNLMarkerError) { + (0, _util.warn)("".concat(ex.message, " -- attempting to re-parse the JPEG image.")); + return this.parse(data, { + dnlScanLines: ex.scanLines + }); + } else if (ex instanceof EOIMarkerError) { + (0, _util.warn)("".concat(ex.message, " -- ignoring the rest of the image data.")); + break markerLoop; + } + + throw ex; + } + + break; + + case 0xFFDC: + offset += 4; + break; + + case 0xFFFF: + if (data[offset] !== 0xFF) { + offset--; + } + + break; + + default: + if (data[offset - 3] === 0xFF && data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) { + offset -= 3; + break; + } + + var nextFileMarker = findNextFileMarker(data, offset - 2); + + if (nextFileMarker && nextFileMarker.invalid) { + (0, _util.warn)('JpegImage.parse - unexpected data, current marker is: ' + nextFileMarker.invalid); + offset = nextFileMarker.offset; + break; + } + + throw new JpegError('unknown marker ' + fileMarker.toString(16)); + } + + fileMarker = readUint16(); + } + + this.width = frame.samplesPerLine; + this.height = frame.scanLines; + this.jfif = jfif; + this.adobe = adobe; + this.components = []; + + for (i = 0; i < frame.components.length; i++) { + component = frame.components[i]; + var quantizationTable = quantizationTables[component.quantizationId]; + + if (quantizationTable) { + component.quantizationTable = quantizationTable; + } + + this.components.push({ + output: buildComponentData(frame, component), + scaleX: component.h / frame.maxH, + scaleY: component.v / frame.maxV, + blocksPerLine: component.blocksPerLine, + blocksPerColumn: component.blocksPerColumn + }); + } + + this.numComponents = this.components.length; + }, + _getLinearizedBlockData: function _getLinearizedBlockData(width, height) { + var isSourcePDF = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var scaleX = this.width / width, + scaleY = this.height / height; + var component, componentScaleX, componentScaleY, blocksPerScanline; + var x, y, i, j, k; + var index; + var offset = 0; + var output; + var numComponents = this.components.length; + var dataLength = width * height * numComponents; + var data = new Uint8ClampedArray(dataLength); + var xScaleBlockOffset = new Uint32Array(width); + var mask3LSB = 0xfffffff8; + + for (i = 0; i < numComponents; i++) { + component = this.components[i]; + componentScaleX = component.scaleX * scaleX; + componentScaleY = component.scaleY * scaleY; + offset = i; + output = component.output; + blocksPerScanline = component.blocksPerLine + 1 << 3; + + for (x = 0; x < width; x++) { + j = 0 | x * componentScaleX; + xScaleBlockOffset[x] = (j & mask3LSB) << 3 | j & 7; + } + + for (y = 0; y < height; y++) { + j = 0 | y * componentScaleY; + index = blocksPerScanline * (j & mask3LSB) | (j & 7) << 3; + + for (x = 0; x < width; x++) { + data[offset] = output[index + xScaleBlockOffset[x]]; + offset += numComponents; + } + } + } + + var transform = this._decodeTransform; + + if (!isSourcePDF && numComponents === 4 && !transform) { + transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]); + } + + if (transform) { + for (i = 0; i < dataLength;) { + for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) { + data[i] = (data[i] * transform[k] >> 8) + transform[k + 1]; + } + } + } + + return data; + }, + + get _isColorConversionNeeded() { + if (this.adobe) { + return !!this.adobe.transformCode; + } + + if (this.numComponents === 3) { + if (this._colorTransform === 0) { + return false; + } + + return true; + } + + if (this._colorTransform === 1) { + return true; + } + + return false; + }, + + _convertYccToRgb: function convertYccToRgb(data) { + var Y, Cb, Cr; + + for (var i = 0, length = data.length; i < length; i += 3) { + Y = data[i]; + Cb = data[i + 1]; + Cr = data[i + 2]; + data[i] = Y - 179.456 + 1.402 * Cr; + data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr; + data[i + 2] = Y - 226.816 + 1.772 * Cb; + } + + return data; + }, + _convertYcckToRgb: function convertYcckToRgb(data) { + var Y, Cb, Cr, k; + var offset = 0; + + for (var i = 0, length = data.length; i < length; i += 4) { + Y = data[i]; + Cb = data[i + 1]; + Cr = data[i + 2]; + k = data[i + 3]; + data[offset++] = -122.67195406894 + Cb * (-6.60635669420364e-5 * Cb + 0.000437130475926232 * Cr - 5.4080610064599e-5 * Y + 0.00048449797120281 * k - 0.154362151871126) + Cr * (-0.000957964378445773 * Cr + 0.000817076911346625 * Y - 0.00477271405408747 * k + 1.53380253221734) + Y * (0.000961250184130688 * Y - 0.00266257332283933 * k + 0.48357088451265) + k * (-0.000336197177618394 * k + 0.484791561490776); + data[offset++] = 107.268039397724 + Cb * (2.19927104525741e-5 * Cb - 0.000640992018297945 * Cr + 0.000659397001245577 * Y + 0.000426105652938837 * k - 0.176491792462875) + Cr * (-0.000778269941513683 * Cr + 0.00130872261408275 * Y + 0.000770482631801132 * k - 0.151051492775562) + Y * (0.00126935368114843 * Y - 0.00265090189010898 * k + 0.25802910206845) + k * (-0.000318913117588328 * k - 0.213742400323665); + data[offset++] = -20.810012546947 + Cb * (-0.000570115196973677 * Cb - 2.63409051004589e-5 * Cr + 0.0020741088115012 * Y - 0.00288260236853442 * k + 0.814272968359295) + Cr * (-1.53496057440975e-5 * Cr - 0.000132689043961446 * Y + 0.000560833691242812 * k - 0.195152027534049) + Y * (0.00174418132927582 * Y - 0.00255243321439347 * k + 0.116935020465145) + k * (-0.000343531996510555 * k + 0.24165260232407); + } + + return data.subarray(0, offset); + }, + _convertYcckToCmyk: function convertYcckToCmyk(data) { + var Y, Cb, Cr; + + for (var i = 0, length = data.length; i < length; i += 4) { + Y = data[i]; + Cb = data[i + 1]; + Cr = data[i + 2]; + data[i] = 434.456 - Y - 1.402 * Cr; + data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr; + data[i + 2] = 481.816 - Y - 1.772 * Cb; + } + + return data; + }, + _convertCmykToRgb: function convertCmykToRgb(data) { + var c, m, y, k; + var offset = 0; + var scale = 1 / 255; + + for (var i = 0, length = data.length; i < length; i += 4) { + c = data[i] * scale; + m = data[i + 1] * scale; + y = data[i + 2] * scale; + k = data[i + 3] * scale; + data[offset++] = 255 + c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k - 285.2331026137004) + m * (1.7149763477362134 * m - 5.6096736904047315 * y - 17.873870861415444 * k - 5.497006427196366) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) - k * (21.86122147463605 * k + 189.48180835922747); + data[offset++] = 255 + c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k - 79.2970844816548) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 190.9453302588951) + y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) - k * (20.737325471181034 * k + 187.80453709719578); + data[offset++] = 255 + c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k - 14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k - 193.58209356861505) - k * (22.33816807309886 * k + 180.12613974708367); + } + + return data.subarray(0, offset); + }, + getData: function getData(_ref3) { + var width = _ref3.width, + height = _ref3.height, + _ref3$forceRGB = _ref3.forceRGB, + forceRGB = _ref3$forceRGB === void 0 ? false : _ref3$forceRGB, + _ref3$isSourcePDF = _ref3.isSourcePDF, + isSourcePDF = _ref3$isSourcePDF === void 0 ? false : _ref3$isSourcePDF; + + if (this.numComponents > 4) { + throw new JpegError('Unsupported color mode'); + } + + var data = this._getLinearizedBlockData(width, height, isSourcePDF); + + if (this.numComponents === 1 && forceRGB) { + var dataLength = data.length; + var rgbData = new Uint8ClampedArray(dataLength * 3); + var offset = 0; + + for (var i = 0; i < dataLength; i++) { + var grayColor = data[i]; + rgbData[offset++] = grayColor; + rgbData[offset++] = grayColor; + rgbData[offset++] = grayColor; + } + + return rgbData; + } else if (this.numComponents === 3 && this._isColorConversionNeeded) { + return this._convertYccToRgb(data); + } else if (this.numComponents === 4) { + if (this._isColorConversionNeeded) { + if (forceRGB) { + return this._convertYcckToRgb(data); + } + + return this._convertYcckToCmyk(data); + } else if (forceRGB) { + return this._convertCmykToRgb(data); + } + } + + return data; + } + }; + return JpegImage; +}(); + +exports.JpegImage = JpegImage; + +/***/ }), +/* 165 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.JpxStream = void 0; + +var _stream = __w_pdfjs_require__(157); + +var _jpx = __w_pdfjs_require__(166); + +var _util = __w_pdfjs_require__(6); + +var JpxStream = function JpxStreamClosure() { + function JpxStream(stream, maybeLength, dict, params) { + this.stream = stream; + this.maybeLength = maybeLength; + this.dict = dict; + this.params = params; + + _stream.DecodeStream.call(this, maybeLength); + } + + JpxStream.prototype = Object.create(_stream.DecodeStream.prototype); + Object.defineProperty(JpxStream.prototype, 'bytes', { + get: function JpxStream_bytes() { + return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength)); + }, + configurable: true + }); + + JpxStream.prototype.ensureBuffer = function (requested) {}; + + JpxStream.prototype.readBlock = function () { + if (this.eof) { + return; + } + + var jpxImage = new _jpx.JpxImage(); + jpxImage.parse(this.bytes); + var width = jpxImage.width; + var height = jpxImage.height; + var componentsCount = jpxImage.componentsCount; + var tileCount = jpxImage.tiles.length; + + if (tileCount === 1) { + this.buffer = jpxImage.tiles[0].items; + } else { + var data = new Uint8ClampedArray(width * height * componentsCount); + + for (var k = 0; k < tileCount; k++) { + var tileComponents = jpxImage.tiles[k]; + var tileWidth = tileComponents.width; + var tileHeight = tileComponents.height; + var tileLeft = tileComponents.left; + var tileTop = tileComponents.top; + var src = tileComponents.items; + var srcPosition = 0; + var dataPosition = (width * tileTop + tileLeft) * componentsCount; + var imgRowSize = width * componentsCount; + var tileRowSize = tileWidth * componentsCount; + + for (var j = 0; j < tileHeight; j++) { + var rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize); + data.set(rowBytes, dataPosition); + srcPosition += tileRowSize; + dataPosition += imgRowSize; + } + } + + this.buffer = data; + } + + this.bufferLength = this.buffer.length; + this.eof = true; + }; + + return JpxStream; +}(); + +exports.JpxStream = JpxStream; + +/***/ }), +/* 166 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.JpxImage = void 0; + +var _util = __w_pdfjs_require__(6); + +var _arithmetic_decoder = __w_pdfjs_require__(162); + +var JpxError = function JpxErrorClosure() { + function JpxError(msg) { + this.message = 'JPX error: ' + msg; + } + + JpxError.prototype = new Error(); + JpxError.prototype.name = 'JpxError'; + JpxError.constructor = JpxError; + return JpxError; +}(); + +var JpxImage = function JpxImageClosure() { + var SubbandsGainLog2 = { + 'LL': 0, + 'LH': 1, + 'HL': 1, + 'HH': 2 + }; + + function JpxImage() { + this.failOnCorruptedImage = false; + } + + JpxImage.prototype = { + parse: function JpxImage_parse(data) { + var head = (0, _util.readUint16)(data, 0); + + if (head === 0xFF4F) { + this.parseCodestream(data, 0, data.length); + return; + } + + var position = 0, + length = data.length; + + while (position < length) { + var headerSize = 8; + var lbox = (0, _util.readUint32)(data, position); + var tbox = (0, _util.readUint32)(data, position + 4); + position += headerSize; + + if (lbox === 1) { + lbox = (0, _util.readUint32)(data, position) * 4294967296 + (0, _util.readUint32)(data, position + 4); + position += 8; + headerSize += 8; + } + + if (lbox === 0) { + lbox = length - position + headerSize; + } + + if (lbox < headerSize) { + throw new JpxError('Invalid box field size'); + } + + var dataLength = lbox - headerSize; + var jumpDataLength = true; + + switch (tbox) { + case 0x6A703268: + jumpDataLength = false; + break; + + case 0x636F6C72: + var method = data[position]; + + if (method === 1) { + var colorspace = (0, _util.readUint32)(data, position + 3); + + switch (colorspace) { + case 16: + case 17: + case 18: + break; + + default: + (0, _util.warn)('Unknown colorspace ' + colorspace); + break; + } + } else if (method === 2) { + (0, _util.info)('ICC profile not supported'); + } + + break; + + case 0x6A703263: + this.parseCodestream(data, position, position + dataLength); + break; + + case 0x6A502020: + if ((0, _util.readUint32)(data, position) !== 0x0d0a870a) { + (0, _util.warn)('Invalid JP2 signature'); + } + + break; + + case 0x6A501A1A: + case 0x66747970: + case 0x72726571: + case 0x72657320: + case 0x69686472: + break; + + default: + var headerType = String.fromCharCode(tbox >> 24 & 0xFF, tbox >> 16 & 0xFF, tbox >> 8 & 0xFF, tbox & 0xFF); + (0, _util.warn)('Unsupported header type ' + tbox + ' (' + headerType + ')'); + break; + } + + if (jumpDataLength) { + position += dataLength; + } + } + }, + parseImageProperties: function JpxImage_parseImageProperties(stream) { + var newByte = stream.getByte(); + + while (newByte >= 0) { + var oldByte = newByte; + newByte = stream.getByte(); + var code = oldByte << 8 | newByte; + + if (code === 0xFF51) { + stream.skip(4); + var Xsiz = stream.getInt32() >>> 0; + var Ysiz = stream.getInt32() >>> 0; + var XOsiz = stream.getInt32() >>> 0; + var YOsiz = stream.getInt32() >>> 0; + stream.skip(16); + var Csiz = stream.getUint16(); + this.width = Xsiz - XOsiz; + this.height = Ysiz - YOsiz; + this.componentsCount = Csiz; + this.bitsPerComponent = 8; + return; + } + } + + throw new JpxError('No size marker found in JPX stream'); + }, + parseCodestream: function JpxImage_parseCodestream(data, start, end) { + var context = {}; + var doNotRecover = false; + + try { + var position = start; + + while (position + 1 < end) { + var code = (0, _util.readUint16)(data, position); + position += 2; + var length = 0, + j, + sqcd, + spqcds, + spqcdSize, + scalarExpounded, + tile; + + switch (code) { + case 0xFF4F: + context.mainHeader = true; + break; + + case 0xFFD9: + break; + + case 0xFF51: + length = (0, _util.readUint16)(data, position); + var siz = {}; + siz.Xsiz = (0, _util.readUint32)(data, position + 4); + siz.Ysiz = (0, _util.readUint32)(data, position + 8); + siz.XOsiz = (0, _util.readUint32)(data, position + 12); + siz.YOsiz = (0, _util.readUint32)(data, position + 16); + siz.XTsiz = (0, _util.readUint32)(data, position + 20); + siz.YTsiz = (0, _util.readUint32)(data, position + 24); + siz.XTOsiz = (0, _util.readUint32)(data, position + 28); + siz.YTOsiz = (0, _util.readUint32)(data, position + 32); + var componentsCount = (0, _util.readUint16)(data, position + 36); + siz.Csiz = componentsCount; + var components = []; + j = position + 38; + + for (var i = 0; i < componentsCount; i++) { + var component = { + precision: (data[j] & 0x7F) + 1, + isSigned: !!(data[j] & 0x80), + XRsiz: data[j + 1], + YRsiz: data[j + 2] + }; + j += 3; + calculateComponentDimensions(component, siz); + components.push(component); + } + + context.SIZ = siz; + context.components = components; + calculateTileGrids(context, components); + context.QCC = []; + context.COC = []; + break; + + case 0xFF5C: + length = (0, _util.readUint16)(data, position); + var qcd = {}; + j = position + 2; + sqcd = data[j++]; + + switch (sqcd & 0x1F) { + case 0: + spqcdSize = 8; + scalarExpounded = true; + break; + + case 1: + spqcdSize = 16; + scalarExpounded = false; + break; + + case 2: + spqcdSize = 16; + scalarExpounded = true; + break; + + default: + throw new Error('Invalid SQcd value ' + sqcd); + } + + qcd.noQuantization = spqcdSize === 8; + qcd.scalarExpounded = scalarExpounded; + qcd.guardBits = sqcd >> 5; + spqcds = []; + + while (j < length + position) { + var spqcd = {}; + + if (spqcdSize === 8) { + spqcd.epsilon = data[j++] >> 3; + spqcd.mu = 0; + } else { + spqcd.epsilon = data[j] >> 3; + spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1]; + j += 2; + } + + spqcds.push(spqcd); + } + + qcd.SPqcds = spqcds; + + if (context.mainHeader) { + context.QCD = qcd; + } else { + context.currentTile.QCD = qcd; + context.currentTile.QCC = []; + } + + break; + + case 0xFF5D: + length = (0, _util.readUint16)(data, position); + var qcc = {}; + j = position + 2; + var cqcc; + + if (context.SIZ.Csiz < 257) { + cqcc = data[j++]; + } else { + cqcc = (0, _util.readUint16)(data, j); + j += 2; + } + + sqcd = data[j++]; + + switch (sqcd & 0x1F) { + case 0: + spqcdSize = 8; + scalarExpounded = true; + break; + + case 1: + spqcdSize = 16; + scalarExpounded = false; + break; + + case 2: + spqcdSize = 16; + scalarExpounded = true; + break; + + default: + throw new Error('Invalid SQcd value ' + sqcd); + } + + qcc.noQuantization = spqcdSize === 8; + qcc.scalarExpounded = scalarExpounded; + qcc.guardBits = sqcd >> 5; + spqcds = []; + + while (j < length + position) { + spqcd = {}; + + if (spqcdSize === 8) { + spqcd.epsilon = data[j++] >> 3; + spqcd.mu = 0; + } else { + spqcd.epsilon = data[j] >> 3; + spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1]; + j += 2; + } + + spqcds.push(spqcd); + } + + qcc.SPqcds = spqcds; + + if (context.mainHeader) { + context.QCC[cqcc] = qcc; + } else { + context.currentTile.QCC[cqcc] = qcc; + } + + break; + + case 0xFF52: + length = (0, _util.readUint16)(data, position); + var cod = {}; + j = position + 2; + var scod = data[j++]; + cod.entropyCoderWithCustomPrecincts = !!(scod & 1); + cod.sopMarkerUsed = !!(scod & 2); + cod.ephMarkerUsed = !!(scod & 4); + cod.progressionOrder = data[j++]; + cod.layersCount = (0, _util.readUint16)(data, j); + j += 2; + cod.multipleComponentTransform = data[j++]; + cod.decompositionLevelsCount = data[j++]; + cod.xcb = (data[j++] & 0xF) + 2; + cod.ycb = (data[j++] & 0xF) + 2; + var blockStyle = data[j++]; + cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1); + cod.resetContextProbabilities = !!(blockStyle & 2); + cod.terminationOnEachCodingPass = !!(blockStyle & 4); + cod.verticallyStripe = !!(blockStyle & 8); + cod.predictableTermination = !!(blockStyle & 16); + cod.segmentationSymbolUsed = !!(blockStyle & 32); + cod.reversibleTransformation = data[j++]; + + if (cod.entropyCoderWithCustomPrecincts) { + var precinctsSizes = []; + + while (j < length + position) { + var precinctsSize = data[j++]; + precinctsSizes.push({ + PPx: precinctsSize & 0xF, + PPy: precinctsSize >> 4 + }); + } + + cod.precinctsSizes = precinctsSizes; + } + + var unsupported = []; + + if (cod.selectiveArithmeticCodingBypass) { + unsupported.push('selectiveArithmeticCodingBypass'); + } + + if (cod.resetContextProbabilities) { + unsupported.push('resetContextProbabilities'); + } + + if (cod.terminationOnEachCodingPass) { + unsupported.push('terminationOnEachCodingPass'); + } + + if (cod.verticallyStripe) { + unsupported.push('verticallyStripe'); + } + + if (cod.predictableTermination) { + unsupported.push('predictableTermination'); + } + + if (unsupported.length > 0) { + doNotRecover = true; + throw new Error('Unsupported COD options (' + unsupported.join(', ') + ')'); + } + + if (context.mainHeader) { + context.COD = cod; + } else { + context.currentTile.COD = cod; + context.currentTile.COC = []; + } + + break; + + case 0xFF90: + length = (0, _util.readUint16)(data, position); + tile = {}; + tile.index = (0, _util.readUint16)(data, position + 2); + tile.length = (0, _util.readUint32)(data, position + 4); + tile.dataEnd = tile.length + position - 2; + tile.partIndex = data[position + 8]; + tile.partsCount = data[position + 9]; + context.mainHeader = false; + + if (tile.partIndex === 0) { + tile.COD = context.COD; + tile.COC = context.COC.slice(0); + tile.QCD = context.QCD; + tile.QCC = context.QCC.slice(0); + } + + context.currentTile = tile; + break; + + case 0xFF93: + tile = context.currentTile; + + if (tile.partIndex === 0) { + initializeTile(context, tile.index); + buildPackets(context); + } + + length = tile.dataEnd - position; + parseTilePackets(context, data, position, length); + break; + + case 0xFF55: + case 0xFF57: + case 0xFF58: + case 0xFF64: + length = (0, _util.readUint16)(data, position); + break; + + case 0xFF53: + throw new Error('Codestream code 0xFF53 (COC) is ' + 'not implemented'); + + default: + throw new Error('Unknown codestream code: ' + code.toString(16)); + } + + position += length; + } + } catch (e) { + if (doNotRecover || this.failOnCorruptedImage) { + throw new JpxError(e.message); + } else { + (0, _util.warn)('JPX: Trying to recover from: ' + e.message); + } + } + + this.tiles = transformComponents(context); + this.width = context.SIZ.Xsiz - context.SIZ.XOsiz; + this.height = context.SIZ.Ysiz - context.SIZ.YOsiz; + this.componentsCount = context.SIZ.Csiz; + } + }; + + function calculateComponentDimensions(component, siz) { + component.x0 = Math.ceil(siz.XOsiz / component.XRsiz); + component.x1 = Math.ceil(siz.Xsiz / component.XRsiz); + component.y0 = Math.ceil(siz.YOsiz / component.YRsiz); + component.y1 = Math.ceil(siz.Ysiz / component.YRsiz); + component.width = component.x1 - component.x0; + component.height = component.y1 - component.y0; + } + + function calculateTileGrids(context, components) { + var siz = context.SIZ; + var tile, + tiles = []; + var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz); + var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz); + + for (var q = 0; q < numYtiles; q++) { + for (var p = 0; p < numXtiles; p++) { + tile = {}; + tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz); + tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz); + tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz); + tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz); + tile.width = tile.tx1 - tile.tx0; + tile.height = tile.ty1 - tile.ty0; + tile.components = []; + tiles.push(tile); + } + } + + context.tiles = tiles; + var componentsCount = siz.Csiz; + + for (var i = 0, ii = componentsCount; i < ii; i++) { + var component = components[i]; + + for (var j = 0, jj = tiles.length; j < jj; j++) { + var tileComponent = {}; + tile = tiles[j]; + tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz); + tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz); + tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz); + tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz); + tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0; + tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0; + tile.components[i] = tileComponent; + } + } + } + + function getBlocksDimensions(context, component, r) { + var codOrCoc = component.codingStyleParameters; + var result = {}; + + if (!codOrCoc.entropyCoderWithCustomPrecincts) { + result.PPx = 15; + result.PPy = 15; + } else { + result.PPx = codOrCoc.precinctsSizes[r].PPx; + result.PPy = codOrCoc.precinctsSizes[r].PPy; + } + + result.xcb_ = r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) : Math.min(codOrCoc.xcb, result.PPx); + result.ycb_ = r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) : Math.min(codOrCoc.ycb, result.PPy); + return result; + } + + function buildPrecincts(context, resolution, dimensions) { + var precinctWidth = 1 << dimensions.PPx; + var precinctHeight = 1 << dimensions.PPy; + var isZeroRes = resolution.resLevel === 0; + var precinctWidthInSubband = 1 << dimensions.PPx + (isZeroRes ? 0 : -1); + var precinctHeightInSubband = 1 << dimensions.PPy + (isZeroRes ? 0 : -1); + var numprecinctswide = resolution.trx1 > resolution.trx0 ? Math.ceil(resolution.trx1 / precinctWidth) - Math.floor(resolution.trx0 / precinctWidth) : 0; + var numprecinctshigh = resolution.try1 > resolution.try0 ? Math.ceil(resolution.try1 / precinctHeight) - Math.floor(resolution.try0 / precinctHeight) : 0; + var numprecincts = numprecinctswide * numprecinctshigh; + resolution.precinctParameters = { + precinctWidth: precinctWidth, + precinctHeight: precinctHeight, + numprecinctswide: numprecinctswide, + numprecinctshigh: numprecinctshigh, + numprecincts: numprecincts, + precinctWidthInSubband: precinctWidthInSubband, + precinctHeightInSubband: precinctHeightInSubband + }; + } + + function buildCodeblocks(context, subband, dimensions) { + var xcb_ = dimensions.xcb_; + var ycb_ = dimensions.ycb_; + var codeblockWidth = 1 << xcb_; + var codeblockHeight = 1 << ycb_; + var cbx0 = subband.tbx0 >> xcb_; + var cby0 = subband.tby0 >> ycb_; + var cbx1 = subband.tbx1 + codeblockWidth - 1 >> xcb_; + var cby1 = subband.tby1 + codeblockHeight - 1 >> ycb_; + var precinctParameters = subband.resolution.precinctParameters; + var codeblocks = []; + var precincts = []; + var i, j, codeblock, precinctNumber; + + for (j = cby0; j < cby1; j++) { + for (i = cbx0; i < cbx1; i++) { + codeblock = { + cbx: i, + cby: j, + tbx0: codeblockWidth * i, + tby0: codeblockHeight * j, + tbx1: codeblockWidth * (i + 1), + tby1: codeblockHeight * (j + 1) + }; + codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0); + codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0); + codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1); + codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1); + var pi = Math.floor((codeblock.tbx0_ - subband.tbx0) / precinctParameters.precinctWidthInSubband); + var pj = Math.floor((codeblock.tby0_ - subband.tby0) / precinctParameters.precinctHeightInSubband); + precinctNumber = pi + pj * precinctParameters.numprecinctswide; + codeblock.precinctNumber = precinctNumber; + codeblock.subbandType = subband.type; + codeblock.Lblock = 3; + + if (codeblock.tbx1_ <= codeblock.tbx0_ || codeblock.tby1_ <= codeblock.tby0_) { + continue; + } + + codeblocks.push(codeblock); + var precinct = precincts[precinctNumber]; + + if (precinct !== undefined) { + if (i < precinct.cbxMin) { + precinct.cbxMin = i; + } else if (i > precinct.cbxMax) { + precinct.cbxMax = i; + } + + if (j < precinct.cbyMin) { + precinct.cbxMin = j; + } else if (j > precinct.cbyMax) { + precinct.cbyMax = j; + } + } else { + precincts[precinctNumber] = precinct = { + cbxMin: i, + cbyMin: j, + cbxMax: i, + cbyMax: j + }; + } + + codeblock.precinct = precinct; + } + } + + subband.codeblockParameters = { + codeblockWidth: xcb_, + codeblockHeight: ycb_, + numcodeblockwide: cbx1 - cbx0 + 1, + numcodeblockhigh: cby1 - cby0 + 1 + }; + subband.codeblocks = codeblocks; + subband.precincts = precincts; + } + + function createPacket(resolution, precinctNumber, layerNumber) { + var precinctCodeblocks = []; + var subbands = resolution.subbands; + + for (var i = 0, ii = subbands.length; i < ii; i++) { + var subband = subbands[i]; + var codeblocks = subband.codeblocks; + + for (var j = 0, jj = codeblocks.length; j < jj; j++) { + var codeblock = codeblocks[j]; + + if (codeblock.precinctNumber !== precinctNumber) { + continue; + } + + precinctCodeblocks.push(codeblock); + } + } + + return { + layerNumber: layerNumber, + codeblocks: precinctCodeblocks + }; + } + + function LayerResolutionComponentPositionIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var maxDecompositionLevelsCount = 0; + + for (var q = 0; q < componentsCount; q++) { + maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount); + } + + var l = 0, + r = 0, + i = 0, + k = 0; + + this.nextPacket = function JpxImage_nextPacket() { + for (; l < layersCount; l++) { + for (; r <= maxDecompositionLevelsCount; r++) { + for (; i < componentsCount; i++) { + var component = tile.components[i]; + + if (r > component.codingStyleParameters.decompositionLevelsCount) { + continue; + } + + var resolution = component.resolutions[r]; + var numprecincts = resolution.precinctParameters.numprecincts; + + for (; k < numprecincts;) { + var packet = createPacket(resolution, k, l); + k++; + return packet; + } + + k = 0; + } + + i = 0; + } + + r = 0; + } + + throw new JpxError('Out of packets'); + }; + } + + function ResolutionLayerComponentPositionIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var maxDecompositionLevelsCount = 0; + + for (var q = 0; q < componentsCount; q++) { + maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount); + } + + var r = 0, + l = 0, + i = 0, + k = 0; + + this.nextPacket = function JpxImage_nextPacket() { + for (; r <= maxDecompositionLevelsCount; r++) { + for (; l < layersCount; l++) { + for (; i < componentsCount; i++) { + var component = tile.components[i]; + + if (r > component.codingStyleParameters.decompositionLevelsCount) { + continue; + } + + var resolution = component.resolutions[r]; + var numprecincts = resolution.precinctParameters.numprecincts; + + for (; k < numprecincts;) { + var packet = createPacket(resolution, k, l); + k++; + return packet; + } + + k = 0; + } + + i = 0; + } + + l = 0; + } + + throw new JpxError('Out of packets'); + }; + } + + function ResolutionPositionComponentLayerIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var l, r, c, p; + var maxDecompositionLevelsCount = 0; + + for (c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, component.codingStyleParameters.decompositionLevelsCount); + } + + var maxNumPrecinctsInLevel = new Int32Array(maxDecompositionLevelsCount + 1); + + for (r = 0; r <= maxDecompositionLevelsCount; ++r) { + var maxNumPrecincts = 0; + + for (c = 0; c < componentsCount; ++c) { + var resolutions = tile.components[c].resolutions; + + if (r < resolutions.length) { + maxNumPrecincts = Math.max(maxNumPrecincts, resolutions[r].precinctParameters.numprecincts); + } + } + + maxNumPrecinctsInLevel[r] = maxNumPrecincts; + } + + l = 0; + r = 0; + c = 0; + p = 0; + + this.nextPacket = function JpxImage_nextPacket() { + for (; r <= maxDecompositionLevelsCount; r++) { + for (; p < maxNumPrecinctsInLevel[r]; p++) { + for (; c < componentsCount; c++) { + var component = tile.components[c]; + + if (r > component.codingStyleParameters.decompositionLevelsCount) { + continue; + } + + var resolution = component.resolutions[r]; + var numprecincts = resolution.precinctParameters.numprecincts; + + if (p >= numprecincts) { + continue; + } + + for (; l < layersCount;) { + var packet = createPacket(resolution, p, l); + l++; + return packet; + } + + l = 0; + } + + c = 0; + } + + p = 0; + } + + throw new JpxError('Out of packets'); + }; + } + + function PositionComponentResolutionLayerIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var precinctsSizes = getPrecinctSizesInImageScale(tile); + var precinctsIterationSizes = precinctsSizes; + var l = 0, + r = 0, + c = 0, + px = 0, + py = 0; + + this.nextPacket = function JpxImage_nextPacket() { + for (; py < precinctsIterationSizes.maxNumHigh; py++) { + for (; px < precinctsIterationSizes.maxNumWide; px++) { + for (; c < componentsCount; c++) { + var component = tile.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + + for (; r <= decompositionLevelsCount; r++) { + var resolution = component.resolutions[r]; + var sizeInImageScale = precinctsSizes.components[c].resolutions[r]; + var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution); + + if (k === null) { + continue; + } + + for (; l < layersCount;) { + var packet = createPacket(resolution, k, l); + l++; + return packet; + } + + l = 0; + } + + r = 0; + } + + c = 0; + } + + px = 0; + } + + throw new JpxError('Out of packets'); + }; + } + + function ComponentPositionResolutionLayerIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var precinctsSizes = getPrecinctSizesInImageScale(tile); + var l = 0, + r = 0, + c = 0, + px = 0, + py = 0; + + this.nextPacket = function JpxImage_nextPacket() { + for (; c < componentsCount; ++c) { + var component = tile.components[c]; + var precinctsIterationSizes = precinctsSizes.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + + for (; py < precinctsIterationSizes.maxNumHigh; py++) { + for (; px < precinctsIterationSizes.maxNumWide; px++) { + for (; r <= decompositionLevelsCount; r++) { + var resolution = component.resolutions[r]; + var sizeInImageScale = precinctsIterationSizes.resolutions[r]; + var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution); + + if (k === null) { + continue; + } + + for (; l < layersCount;) { + var packet = createPacket(resolution, k, l); + l++; + return packet; + } + + l = 0; + } + + r = 0; + } + + px = 0; + } + + py = 0; + } + + throw new JpxError('Out of packets'); + }; + } + + function getPrecinctIndexIfExist(pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) { + var posX = pxIndex * precinctIterationSizes.minWidth; + var posY = pyIndex * precinctIterationSizes.minHeight; + + if (posX % sizeInImageScale.width !== 0 || posY % sizeInImageScale.height !== 0) { + return null; + } + + var startPrecinctRowIndex = posY / sizeInImageScale.width * resolution.precinctParameters.numprecinctswide; + return posX / sizeInImageScale.height + startPrecinctRowIndex; + } + + function getPrecinctSizesInImageScale(tile) { + var componentsCount = tile.components.length; + var minWidth = Number.MAX_VALUE; + var minHeight = Number.MAX_VALUE; + var maxNumWide = 0; + var maxNumHigh = 0; + var sizePerComponent = new Array(componentsCount); + + for (var c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + var sizePerResolution = new Array(decompositionLevelsCount + 1); + var minWidthCurrentComponent = Number.MAX_VALUE; + var minHeightCurrentComponent = Number.MAX_VALUE; + var maxNumWideCurrentComponent = 0; + var maxNumHighCurrentComponent = 0; + var scale = 1; + + for (var r = decompositionLevelsCount; r >= 0; --r) { + var resolution = component.resolutions[r]; + var widthCurrentResolution = scale * resolution.precinctParameters.precinctWidth; + var heightCurrentResolution = scale * resolution.precinctParameters.precinctHeight; + minWidthCurrentComponent = Math.min(minWidthCurrentComponent, widthCurrentResolution); + minHeightCurrentComponent = Math.min(minHeightCurrentComponent, heightCurrentResolution); + maxNumWideCurrentComponent = Math.max(maxNumWideCurrentComponent, resolution.precinctParameters.numprecinctswide); + maxNumHighCurrentComponent = Math.max(maxNumHighCurrentComponent, resolution.precinctParameters.numprecinctshigh); + sizePerResolution[r] = { + width: widthCurrentResolution, + height: heightCurrentResolution + }; + scale <<= 1; + } + + minWidth = Math.min(minWidth, minWidthCurrentComponent); + minHeight = Math.min(minHeight, minHeightCurrentComponent); + maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent); + maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent); + sizePerComponent[c] = { + resolutions: sizePerResolution, + minWidth: minWidthCurrentComponent, + minHeight: minHeightCurrentComponent, + maxNumWide: maxNumWideCurrentComponent, + maxNumHigh: maxNumHighCurrentComponent + }; + } + + return { + components: sizePerComponent, + minWidth: minWidth, + minHeight: minHeight, + maxNumWide: maxNumWide, + maxNumHigh: maxNumHigh + }; + } + + function buildPackets(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var componentsCount = siz.Csiz; + + for (var c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + var resolutions = []; + var subbands = []; + + for (var r = 0; r <= decompositionLevelsCount; r++) { + var blocksDimensions = getBlocksDimensions(context, component, r); + var resolution = {}; + var scale = 1 << decompositionLevelsCount - r; + resolution.trx0 = Math.ceil(component.tcx0 / scale); + resolution.try0 = Math.ceil(component.tcy0 / scale); + resolution.trx1 = Math.ceil(component.tcx1 / scale); + resolution.try1 = Math.ceil(component.tcy1 / scale); + resolution.resLevel = r; + buildPrecincts(context, resolution, blocksDimensions); + resolutions.push(resolution); + var subband; + + if (r === 0) { + subband = {}; + subband.type = 'LL'; + subband.tbx0 = Math.ceil(component.tcx0 / scale); + subband.tby0 = Math.ceil(component.tcy0 / scale); + subband.tbx1 = Math.ceil(component.tcx1 / scale); + subband.tby1 = Math.ceil(component.tcy1 / scale); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolution.subbands = [subband]; + } else { + var bscale = 1 << decompositionLevelsCount - r + 1; + var resolutionSubbands = []; + subband = {}; + subband.type = 'HL'; + subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5); + subband.tby0 = Math.ceil(component.tcy0 / bscale); + subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5); + subband.tby1 = Math.ceil(component.tcy1 / bscale); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolutionSubbands.push(subband); + subband = {}; + subband.type = 'LH'; + subband.tbx0 = Math.ceil(component.tcx0 / bscale); + subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5); + subband.tbx1 = Math.ceil(component.tcx1 / bscale); + subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolutionSubbands.push(subband); + subband = {}; + subband.type = 'HH'; + subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5); + subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5); + subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5); + subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolutionSubbands.push(subband); + resolution.subbands = resolutionSubbands; + } + } + + component.resolutions = resolutions; + component.subbands = subbands; + } + + var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder; + + switch (progressionOrder) { + case 0: + tile.packetsIterator = new LayerResolutionComponentPositionIterator(context); + break; + + case 1: + tile.packetsIterator = new ResolutionLayerComponentPositionIterator(context); + break; + + case 2: + tile.packetsIterator = new ResolutionPositionComponentLayerIterator(context); + break; + + case 3: + tile.packetsIterator = new PositionComponentResolutionLayerIterator(context); + break; + + case 4: + tile.packetsIterator = new ComponentPositionResolutionLayerIterator(context); + break; + + default: + throw new JpxError("Unsupported progression order ".concat(progressionOrder)); + } + } + + function parseTilePackets(context, data, offset, dataLength) { + var position = 0; + var buffer, + bufferSize = 0, + skipNextBit = false; + + function readBits(count) { + while (bufferSize < count) { + var b = data[offset + position]; + position++; + + if (skipNextBit) { + buffer = buffer << 7 | b; + bufferSize += 7; + skipNextBit = false; + } else { + buffer = buffer << 8 | b; + bufferSize += 8; + } + + if (b === 0xFF) { + skipNextBit = true; + } + } + + bufferSize -= count; + return buffer >>> bufferSize & (1 << count) - 1; + } + + function skipMarkerIfEqual(value) { + if (data[offset + position - 1] === 0xFF && data[offset + position] === value) { + skipBytes(1); + return true; + } else if (data[offset + position] === 0xFF && data[offset + position + 1] === value) { + skipBytes(2); + return true; + } + + return false; + } + + function skipBytes(count) { + position += count; + } + + function alignToByte() { + bufferSize = 0; + + if (skipNextBit) { + position++; + skipNextBit = false; + } + } + + function readCodingpasses() { + if (readBits(1) === 0) { + return 1; + } + + if (readBits(1) === 0) { + return 2; + } + + var value = readBits(2); + + if (value < 3) { + return value + 3; + } + + value = readBits(5); + + if (value < 31) { + return value + 6; + } + + value = readBits(7); + return value + 37; + } + + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var sopMarkerUsed = context.COD.sopMarkerUsed; + var ephMarkerUsed = context.COD.ephMarkerUsed; + var packetsIterator = tile.packetsIterator; + + while (position < dataLength) { + alignToByte(); + + if (sopMarkerUsed && skipMarkerIfEqual(0x91)) { + skipBytes(4); + } + + var packet = packetsIterator.nextPacket(); + + if (!readBits(1)) { + continue; + } + + var layerNumber = packet.layerNumber; + var queue = [], + codeblock; + + for (var i = 0, ii = packet.codeblocks.length; i < ii; i++) { + codeblock = packet.codeblocks[i]; + var precinct = codeblock.precinct; + var codeblockColumn = codeblock.cbx - precinct.cbxMin; + var codeblockRow = codeblock.cby - precinct.cbyMin; + var codeblockIncluded = false; + var firstTimeInclusion = false; + var valueReady; + + if (codeblock['included'] !== undefined) { + codeblockIncluded = !!readBits(1); + } else { + precinct = codeblock.precinct; + var inclusionTree, zeroBitPlanesTree; + + if (precinct['inclusionTree'] !== undefined) { + inclusionTree = precinct.inclusionTree; + } else { + var width = precinct.cbxMax - precinct.cbxMin + 1; + var height = precinct.cbyMax - precinct.cbyMin + 1; + inclusionTree = new InclusionTree(width, height, layerNumber); + zeroBitPlanesTree = new TagTree(width, height); + precinct.inclusionTree = inclusionTree; + precinct.zeroBitPlanesTree = zeroBitPlanesTree; + } + + if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) { + while (true) { + if (readBits(1)) { + valueReady = !inclusionTree.nextLevel(); + + if (valueReady) { + codeblock.included = true; + codeblockIncluded = firstTimeInclusion = true; + break; + } + } else { + inclusionTree.incrementValue(layerNumber); + break; + } + } + } + } + + if (!codeblockIncluded) { + continue; + } + + if (firstTimeInclusion) { + zeroBitPlanesTree = precinct.zeroBitPlanesTree; + zeroBitPlanesTree.reset(codeblockColumn, codeblockRow); + + while (true) { + if (readBits(1)) { + valueReady = !zeroBitPlanesTree.nextLevel(); + + if (valueReady) { + break; + } + } else { + zeroBitPlanesTree.incrementValue(); + } + } + + codeblock.zeroBitPlanes = zeroBitPlanesTree.value; + } + + var codingpasses = readCodingpasses(); + + while (readBits(1)) { + codeblock.Lblock++; + } + + var codingpassesLog2 = (0, _util.log2)(codingpasses); + var bits = (codingpasses < 1 << codingpassesLog2 ? codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock; + var codedDataLength = readBits(bits); + queue.push({ + codeblock: codeblock, + codingpasses: codingpasses, + dataLength: codedDataLength + }); + } + + alignToByte(); + + if (ephMarkerUsed) { + skipMarkerIfEqual(0x92); + } + + while (queue.length > 0) { + var packetItem = queue.shift(); + codeblock = packetItem.codeblock; + + if (codeblock['data'] === undefined) { + codeblock.data = []; + } + + codeblock.data.push({ + data: data, + start: offset + position, + end: offset + position + packetItem.dataLength, + codingpasses: packetItem.codingpasses + }); + position += packetItem.dataLength; + } + } + + return position; + } + + function copyCoefficients(coefficients, levelWidth, levelHeight, subband, delta, mb, reversible, segmentationSymbolUsed) { + var x0 = subband.tbx0; + var y0 = subband.tby0; + var width = subband.tbx1 - subband.tbx0; + var codeblocks = subband.codeblocks; + var right = subband.type.charAt(0) === 'H' ? 1 : 0; + var bottom = subband.type.charAt(1) === 'H' ? levelWidth : 0; + + for (var i = 0, ii = codeblocks.length; i < ii; ++i) { + var codeblock = codeblocks[i]; + var blockWidth = codeblock.tbx1_ - codeblock.tbx0_; + var blockHeight = codeblock.tby1_ - codeblock.tby0_; + + if (blockWidth === 0 || blockHeight === 0) { + continue; + } + + if (codeblock['data'] === undefined) { + continue; + } + + var bitModel, currentCodingpassType; + bitModel = new BitModel(blockWidth, blockHeight, codeblock.subbandType, codeblock.zeroBitPlanes, mb); + currentCodingpassType = 2; + var data = codeblock.data, + totalLength = 0, + codingpasses = 0; + var j, jj, dataItem; + + for (j = 0, jj = data.length; j < jj; j++) { + dataItem = data[j]; + totalLength += dataItem.end - dataItem.start; + codingpasses += dataItem.codingpasses; + } + + var encodedData = new Uint8Array(totalLength); + var position = 0; + + for (j = 0, jj = data.length; j < jj; j++) { + dataItem = data[j]; + var chunk = dataItem.data.subarray(dataItem.start, dataItem.end); + encodedData.set(chunk, position); + position += chunk.length; + } + + var decoder = new _arithmetic_decoder.ArithmeticDecoder(encodedData, 0, totalLength); + bitModel.setDecoder(decoder); + + for (j = 0; j < codingpasses; j++) { + switch (currentCodingpassType) { + case 0: + bitModel.runSignificancePropagationPass(); + break; + + case 1: + bitModel.runMagnitudeRefinementPass(); + break; + + case 2: + bitModel.runCleanupPass(); + + if (segmentationSymbolUsed) { + bitModel.checkSegmentationSymbol(); + } + + break; + } + + currentCodingpassType = (currentCodingpassType + 1) % 3; + } + + var offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width; + var sign = bitModel.coefficentsSign; + var magnitude = bitModel.coefficentsMagnitude; + var bitsDecoded = bitModel.bitsDecoded; + var magnitudeCorrection = reversible ? 0 : 0.5; + var k, n, nb; + position = 0; + var interleave = subband.type !== 'LL'; + + for (j = 0; j < blockHeight; j++) { + var row = offset / width | 0; + var levelOffset = 2 * row * (levelWidth - width) + right + bottom; + + for (k = 0; k < blockWidth; k++) { + n = magnitude[position]; + + if (n !== 0) { + n = (n + magnitudeCorrection) * delta; + + if (sign[position] !== 0) { + n = -n; + } + + nb = bitsDecoded[position]; + var pos = interleave ? levelOffset + (offset << 1) : offset; + + if (reversible && nb >= mb) { + coefficients[pos] = n; + } else { + coefficients[pos] = n * (1 << mb - nb); + } + } + + offset++; + position++; + } + + offset += width - blockWidth; + } + } + } + + function transformTile(context, tile, c) { + var component = tile.components[c]; + var codingStyleParameters = component.codingStyleParameters; + var quantizationParameters = component.quantizationParameters; + var decompositionLevelsCount = codingStyleParameters.decompositionLevelsCount; + var spqcds = quantizationParameters.SPqcds; + var scalarExpounded = quantizationParameters.scalarExpounded; + var guardBits = quantizationParameters.guardBits; + var segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed; + var precision = context.components[c].precision; + var reversible = codingStyleParameters.reversibleTransformation; + var transform = reversible ? new ReversibleTransform() : new IrreversibleTransform(); + var subbandCoefficients = []; + var b = 0; + + for (var i = 0; i <= decompositionLevelsCount; i++) { + var resolution = component.resolutions[i]; + var width = resolution.trx1 - resolution.trx0; + var height = resolution.try1 - resolution.try0; + var coefficients = new Float32Array(width * height); + + for (var j = 0, jj = resolution.subbands.length; j < jj; j++) { + var mu, epsilon; + + if (!scalarExpounded) { + mu = spqcds[0].mu; + epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0); + } else { + mu = spqcds[b].mu; + epsilon = spqcds[b].epsilon; + b++; + } + + var subband = resolution.subbands[j]; + var gainLog2 = SubbandsGainLog2[subband.type]; + var delta = reversible ? 1 : Math.pow(2, precision + gainLog2 - epsilon) * (1 + mu / 2048); + var mb = guardBits + epsilon - 1; + copyCoefficients(coefficients, width, height, subband, delta, mb, reversible, segmentationSymbolUsed); + } + + subbandCoefficients.push({ + width: width, + height: height, + items: coefficients + }); + } + + var result = transform.calculate(subbandCoefficients, component.tcx0, component.tcy0); + return { + left: component.tcx0, + top: component.tcy0, + width: result.width, + height: result.height, + items: result.items + }; + } + + function transformComponents(context) { + var siz = context.SIZ; + var components = context.components; + var componentsCount = siz.Csiz; + var resultImages = []; + + for (var i = 0, ii = context.tiles.length; i < ii; i++) { + var tile = context.tiles[i]; + var transformedTiles = []; + var c; + + for (c = 0; c < componentsCount; c++) { + transformedTiles[c] = transformTile(context, tile, c); + } + + var tile0 = transformedTiles[0]; + var out = new Uint8ClampedArray(tile0.items.length * componentsCount); + var result = { + left: tile0.left, + top: tile0.top, + width: tile0.width, + height: tile0.height, + items: out + }; + var shift, offset; + var pos = 0, + j, + jj, + y0, + y1, + y2; + + if (tile.codingStyleDefaultParameters.multipleComponentTransform) { + var fourComponents = componentsCount === 4; + var y0items = transformedTiles[0].items; + var y1items = transformedTiles[1].items; + var y2items = transformedTiles[2].items; + var y3items = fourComponents ? transformedTiles[3].items : null; + shift = components[0].precision - 8; + offset = (128 << shift) + 0.5; + var component0 = tile.components[0]; + var alpha01 = componentsCount - 3; + jj = y0items.length; + + if (!component0.codingStyleParameters.reversibleTransformation) { + for (j = 0; j < jj; j++, pos += alpha01) { + y0 = y0items[j] + offset; + y1 = y1items[j]; + y2 = y2items[j]; + out[pos++] = y0 + 1.402 * y2 >> shift; + out[pos++] = y0 - 0.34413 * y1 - 0.71414 * y2 >> shift; + out[pos++] = y0 + 1.772 * y1 >> shift; + } + } else { + for (j = 0; j < jj; j++, pos += alpha01) { + y0 = y0items[j] + offset; + y1 = y1items[j]; + y2 = y2items[j]; + var g = y0 - (y2 + y1 >> 2); + out[pos++] = g + y2 >> shift; + out[pos++] = g >> shift; + out[pos++] = g + y1 >> shift; + } + } + + if (fourComponents) { + for (j = 0, pos = 3; j < jj; j++, pos += 4) { + out[pos] = y3items[j] + offset >> shift; + } + } + } else { + for (c = 0; c < componentsCount; c++) { + var items = transformedTiles[c].items; + shift = components[c].precision - 8; + offset = (128 << shift) + 0.5; + + for (pos = c, j = 0, jj = items.length; j < jj; j++) { + out[pos] = items[j] + offset >> shift; + pos += componentsCount; + } + } + } + + resultImages.push(result); + } + + return resultImages; + } + + function initializeTile(context, tileIndex) { + var siz = context.SIZ; + var componentsCount = siz.Csiz; + var tile = context.tiles[tileIndex]; + + for (var c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + var qcdOrQcc = context.currentTile.QCC[c] !== undefined ? context.currentTile.QCC[c] : context.currentTile.QCD; + component.quantizationParameters = qcdOrQcc; + var codOrCoc = context.currentTile.COC[c] !== undefined ? context.currentTile.COC[c] : context.currentTile.COD; + component.codingStyleParameters = codOrCoc; + } + + tile.codingStyleDefaultParameters = context.currentTile.COD; + } + + var TagTree = function TagTreeClosure() { + function TagTree(width, height) { + var levelsLength = (0, _util.log2)(Math.max(width, height)) + 1; + this.levels = []; + + for (var i = 0; i < levelsLength; i++) { + var level = { + width: width, + height: height, + items: [] + }; + this.levels.push(level); + width = Math.ceil(width / 2); + height = Math.ceil(height / 2); + } + } + + TagTree.prototype = { + reset: function TagTree_reset(i, j) { + var currentLevel = 0, + value = 0, + level; + + while (currentLevel < this.levels.length) { + level = this.levels[currentLevel]; + var index = i + j * level.width; + + if (level.items[index] !== undefined) { + value = level.items[index]; + break; + } + + level.index = index; + i >>= 1; + j >>= 1; + currentLevel++; + } + + currentLevel--; + level = this.levels[currentLevel]; + level.items[level.index] = value; + this.currentLevel = currentLevel; + delete this.value; + }, + incrementValue: function TagTree_incrementValue() { + var level = this.levels[this.currentLevel]; + level.items[level.index]++; + }, + nextLevel: function TagTree_nextLevel() { + var currentLevel = this.currentLevel; + var level = this.levels[currentLevel]; + var value = level.items[level.index]; + currentLevel--; + + if (currentLevel < 0) { + this.value = value; + return false; + } + + this.currentLevel = currentLevel; + level = this.levels[currentLevel]; + level.items[level.index] = value; + return true; + } + }; + return TagTree; + }(); + + var InclusionTree = function InclusionTreeClosure() { + function InclusionTree(width, height, defaultValue) { + var levelsLength = (0, _util.log2)(Math.max(width, height)) + 1; + this.levels = []; + + for (var i = 0; i < levelsLength; i++) { + var items = new Uint8Array(width * height); + + for (var j = 0, jj = items.length; j < jj; j++) { + items[j] = defaultValue; + } + + var level = { + width: width, + height: height, + items: items + }; + this.levels.push(level); + width = Math.ceil(width / 2); + height = Math.ceil(height / 2); + } + } + + InclusionTree.prototype = { + reset: function InclusionTree_reset(i, j, stopValue) { + var currentLevel = 0; + + while (currentLevel < this.levels.length) { + var level = this.levels[currentLevel]; + var index = i + j * level.width; + level.index = index; + var value = level.items[index]; + + if (value === 0xFF) { + break; + } + + if (value > stopValue) { + this.currentLevel = currentLevel; + this.propagateValues(); + return false; + } + + i >>= 1; + j >>= 1; + currentLevel++; + } + + this.currentLevel = currentLevel - 1; + return true; + }, + incrementValue: function InclusionTree_incrementValue(stopValue) { + var level = this.levels[this.currentLevel]; + level.items[level.index] = stopValue + 1; + this.propagateValues(); + }, + propagateValues: function InclusionTree_propagateValues() { + var levelIndex = this.currentLevel; + var level = this.levels[levelIndex]; + var currentValue = level.items[level.index]; + + while (--levelIndex >= 0) { + level = this.levels[levelIndex]; + level.items[level.index] = currentValue; + } + }, + nextLevel: function InclusionTree_nextLevel() { + var currentLevel = this.currentLevel; + var level = this.levels[currentLevel]; + var value = level.items[level.index]; + level.items[level.index] = 0xFF; + currentLevel--; + + if (currentLevel < 0) { + return false; + } + + this.currentLevel = currentLevel; + level = this.levels[currentLevel]; + level.items[level.index] = value; + return true; + } + }; + return InclusionTree; + }(); + + var BitModel = function BitModelClosure() { + var UNIFORM_CONTEXT = 17; + var RUNLENGTH_CONTEXT = 18; + var LLAndLHContextsLabel = new Uint8Array([0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8]); + var HLContextLabel = new Uint8Array([0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8]); + var HHContextLabel = new Uint8Array([0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5, 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8]); + + function BitModel(width, height, subband, zeroBitPlanes, mb) { + this.width = width; + this.height = height; + this.contextLabelTable = subband === 'HH' ? HHContextLabel : subband === 'HL' ? HLContextLabel : LLAndLHContextsLabel; + var coefficientCount = width * height; + this.neighborsSignificance = new Uint8Array(coefficientCount); + this.coefficentsSign = new Uint8Array(coefficientCount); + this.coefficentsMagnitude = mb > 14 ? new Uint32Array(coefficientCount) : mb > 6 ? new Uint16Array(coefficientCount) : new Uint8Array(coefficientCount); + this.processingFlags = new Uint8Array(coefficientCount); + var bitsDecoded = new Uint8Array(coefficientCount); + + if (zeroBitPlanes !== 0) { + for (var i = 0; i < coefficientCount; i++) { + bitsDecoded[i] = zeroBitPlanes; + } + } + + this.bitsDecoded = bitsDecoded; + this.reset(); + } + + BitModel.prototype = { + setDecoder: function BitModel_setDecoder(decoder) { + this.decoder = decoder; + }, + reset: function BitModel_reset() { + this.contexts = new Int8Array(19); + this.contexts[0] = 4 << 1 | 0; + this.contexts[UNIFORM_CONTEXT] = 46 << 1 | 0; + this.contexts[RUNLENGTH_CONTEXT] = 3 << 1 | 0; + }, + setNeighborsSignificance: function BitModel_setNeighborsSignificance(row, column, index) { + var neighborsSignificance = this.neighborsSignificance; + var width = this.width, + height = this.height; + var left = column > 0; + var right = column + 1 < width; + var i; + + if (row > 0) { + i = index - width; + + if (left) { + neighborsSignificance[i - 1] += 0x10; + } + + if (right) { + neighborsSignificance[i + 1] += 0x10; + } + + neighborsSignificance[i] += 0x04; + } + + if (row + 1 < height) { + i = index + width; + + if (left) { + neighborsSignificance[i - 1] += 0x10; + } + + if (right) { + neighborsSignificance[i + 1] += 0x10; + } + + neighborsSignificance[i] += 0x04; + } + + if (left) { + neighborsSignificance[index - 1] += 0x01; + } + + if (right) { + neighborsSignificance[index + 1] += 0x01; + } + + neighborsSignificance[index] |= 0x80; + }, + runSignificancePropagationPass: function BitModel_runSignificancePropagationPass() { + var decoder = this.decoder; + var width = this.width, + height = this.height; + var coefficentsMagnitude = this.coefficentsMagnitude; + var coefficentsSign = this.coefficentsSign; + var neighborsSignificance = this.neighborsSignificance; + var processingFlags = this.processingFlags; + var contexts = this.contexts; + var labels = this.contextLabelTable; + var bitsDecoded = this.bitsDecoded; + var processedInverseMask = ~1; + var processedMask = 1; + var firstMagnitudeBitMask = 2; + + for (var i0 = 0; i0 < height; i0 += 4) { + for (var j = 0; j < width; j++) { + var index = i0 * width + j; + + for (var i1 = 0; i1 < 4; i1++, index += width) { + var i = i0 + i1; + + if (i >= height) { + break; + } + + processingFlags[index] &= processedInverseMask; + + if (coefficentsMagnitude[index] || !neighborsSignificance[index]) { + continue; + } + + var contextLabel = labels[neighborsSignificance[index]]; + var decision = decoder.readBit(contexts, contextLabel); + + if (decision) { + var sign = this.decodeSignBit(i, j, index); + coefficentsSign[index] = sign; + coefficentsMagnitude[index] = 1; + this.setNeighborsSignificance(i, j, index); + processingFlags[index] |= firstMagnitudeBitMask; + } + + bitsDecoded[index]++; + processingFlags[index] |= processedMask; + } + } + } + }, + decodeSignBit: function BitModel_decodeSignBit(row, column, index) { + var width = this.width, + height = this.height; + var coefficentsMagnitude = this.coefficentsMagnitude; + var coefficentsSign = this.coefficentsSign; + var contribution, sign0, sign1, significance1; + var contextLabel, decoded; + significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0; + + if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) { + sign1 = coefficentsSign[index + 1]; + + if (significance1) { + sign0 = coefficentsSign[index - 1]; + contribution = 1 - sign1 - sign0; + } else { + contribution = 1 - sign1 - sign1; + } + } else if (significance1) { + sign0 = coefficentsSign[index - 1]; + contribution = 1 - sign0 - sign0; + } else { + contribution = 0; + } + + var horizontalContribution = 3 * contribution; + significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0; + + if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) { + sign1 = coefficentsSign[index + width]; + + if (significance1) { + sign0 = coefficentsSign[index - width]; + contribution = 1 - sign1 - sign0 + horizontalContribution; + } else { + contribution = 1 - sign1 - sign1 + horizontalContribution; + } + } else if (significance1) { + sign0 = coefficentsSign[index - width]; + contribution = 1 - sign0 - sign0 + horizontalContribution; + } else { + contribution = horizontalContribution; + } + + if (contribution >= 0) { + contextLabel = 9 + contribution; + decoded = this.decoder.readBit(this.contexts, contextLabel); + } else { + contextLabel = 9 - contribution; + decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1; + } + + return decoded; + }, + runMagnitudeRefinementPass: function BitModel_runMagnitudeRefinementPass() { + var decoder = this.decoder; + var width = this.width, + height = this.height; + var coefficentsMagnitude = this.coefficentsMagnitude; + var neighborsSignificance = this.neighborsSignificance; + var contexts = this.contexts; + var bitsDecoded = this.bitsDecoded; + var processingFlags = this.processingFlags; + var processedMask = 1; + var firstMagnitudeBitMask = 2; + var length = width * height; + var width4 = width * 4; + + for (var index0 = 0, indexNext; index0 < length; index0 = indexNext) { + indexNext = Math.min(length, index0 + width4); + + for (var j = 0; j < width; j++) { + for (var index = index0 + j; index < indexNext; index += width) { + if (!coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) { + continue; + } + + var contextLabel = 16; + + if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) { + processingFlags[index] ^= firstMagnitudeBitMask; + var significance = neighborsSignificance[index] & 127; + contextLabel = significance === 0 ? 15 : 14; + } + + var bit = decoder.readBit(contexts, contextLabel); + coefficentsMagnitude[index] = coefficentsMagnitude[index] << 1 | bit; + bitsDecoded[index]++; + processingFlags[index] |= processedMask; + } + } + } + }, + runCleanupPass: function BitModel_runCleanupPass() { + var decoder = this.decoder; + var width = this.width, + height = this.height; + var neighborsSignificance = this.neighborsSignificance; + var coefficentsMagnitude = this.coefficentsMagnitude; + var coefficentsSign = this.coefficentsSign; + var contexts = this.contexts; + var labels = this.contextLabelTable; + var bitsDecoded = this.bitsDecoded; + var processingFlags = this.processingFlags; + var processedMask = 1; + var firstMagnitudeBitMask = 2; + var oneRowDown = width; + var twoRowsDown = width * 2; + var threeRowsDown = width * 3; + var iNext; + + for (var i0 = 0; i0 < height; i0 = iNext) { + iNext = Math.min(i0 + 4, height); + var indexBase = i0 * width; + var checkAllEmpty = i0 + 3 < height; + + for (var j = 0; j < width; j++) { + var index0 = indexBase + j; + var allEmpty = checkAllEmpty && processingFlags[index0] === 0 && processingFlags[index0 + oneRowDown] === 0 && processingFlags[index0 + twoRowsDown] === 0 && processingFlags[index0 + threeRowsDown] === 0 && neighborsSignificance[index0] === 0 && neighborsSignificance[index0 + oneRowDown] === 0 && neighborsSignificance[index0 + twoRowsDown] === 0 && neighborsSignificance[index0 + threeRowsDown] === 0; + var i1 = 0, + index = index0; + var i = i0, + sign; + + if (allEmpty) { + var hasSignificantCoefficent = decoder.readBit(contexts, RUNLENGTH_CONTEXT); + + if (!hasSignificantCoefficent) { + bitsDecoded[index0]++; + bitsDecoded[index0 + oneRowDown]++; + bitsDecoded[index0 + twoRowsDown]++; + bitsDecoded[index0 + threeRowsDown]++; + continue; + } + + i1 = decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT); + + if (i1 !== 0) { + i = i0 + i1; + index += i1 * width; + } + + sign = this.decodeSignBit(i, j, index); + coefficentsSign[index] = sign; + coefficentsMagnitude[index] = 1; + this.setNeighborsSignificance(i, j, index); + processingFlags[index] |= firstMagnitudeBitMask; + index = index0; + + for (var i2 = i0; i2 <= i; i2++, index += width) { + bitsDecoded[index]++; + } + + i1++; + } + + for (i = i0 + i1; i < iNext; i++, index += width) { + if (coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) { + continue; + } + + var contextLabel = labels[neighborsSignificance[index]]; + var decision = decoder.readBit(contexts, contextLabel); + + if (decision === 1) { + sign = this.decodeSignBit(i, j, index); + coefficentsSign[index] = sign; + coefficentsMagnitude[index] = 1; + this.setNeighborsSignificance(i, j, index); + processingFlags[index] |= firstMagnitudeBitMask; + } + + bitsDecoded[index]++; + } + } + } + }, + checkSegmentationSymbol: function BitModel_checkSegmentationSymbol() { + var decoder = this.decoder; + var contexts = this.contexts; + var symbol = decoder.readBit(contexts, UNIFORM_CONTEXT) << 3 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 2 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT); + + if (symbol !== 0xA) { + throw new JpxError('Invalid segmentation symbol'); + } + } + }; + return BitModel; + }(); + + var Transform = function TransformClosure() { + function Transform() {} + + Transform.prototype.calculate = function transformCalculate(subbands, u0, v0) { + var ll = subbands[0]; + + for (var i = 1, ii = subbands.length; i < ii; i++) { + ll = this.iterate(ll, subbands[i], u0, v0); + } + + return ll; + }; + + Transform.prototype.extend = function extend(buffer, offset, size) { + var i1 = offset - 1, + j1 = offset + 1; + var i2 = offset + size - 2, + j2 = offset + size; + buffer[i1--] = buffer[j1++]; + buffer[j2++] = buffer[i2--]; + buffer[i1--] = buffer[j1++]; + buffer[j2++] = buffer[i2--]; + buffer[i1--] = buffer[j1++]; + buffer[j2++] = buffer[i2--]; + buffer[i1] = buffer[j1]; + buffer[j2] = buffer[i2]; + }; + + Transform.prototype.iterate = function Transform_iterate(ll, hl_lh_hh, u0, v0) { + var llWidth = ll.width, + llHeight = ll.height, + llItems = ll.items; + var width = hl_lh_hh.width; + var height = hl_lh_hh.height; + var items = hl_lh_hh.items; + var i, j, k, l, u, v; + + for (k = 0, i = 0; i < llHeight; i++) { + l = i * 2 * width; + + for (j = 0; j < llWidth; j++, k++, l += 2) { + items[l] = llItems[k]; + } + } + + llItems = ll.items = null; + var bufferPadding = 4; + var rowBuffer = new Float32Array(width + 2 * bufferPadding); + + if (width === 1) { + if ((u0 & 1) !== 0) { + for (v = 0, k = 0; v < height; v++, k += width) { + items[k] *= 0.5; + } + } + } else { + for (v = 0, k = 0; v < height; v++, k += width) { + rowBuffer.set(items.subarray(k, k + width), bufferPadding); + this.extend(rowBuffer, bufferPadding, width); + this.filter(rowBuffer, bufferPadding, width); + items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k); + } + } + + var numBuffers = 16; + var colBuffers = []; + + for (i = 0; i < numBuffers; i++) { + colBuffers.push(new Float32Array(height + 2 * bufferPadding)); + } + + var b, + currentBuffer = 0; + ll = bufferPadding + height; + + if (height === 1) { + if ((v0 & 1) !== 0) { + for (u = 0; u < width; u++) { + items[u] *= 0.5; + } + } + } else { + for (u = 0; u < width; u++) { + if (currentBuffer === 0) { + numBuffers = Math.min(width - u, numBuffers); + + for (k = u, l = bufferPadding; l < ll; k += width, l++) { + for (b = 0; b < numBuffers; b++) { + colBuffers[b][l] = items[k + b]; + } + } + + currentBuffer = numBuffers; + } + + currentBuffer--; + var buffer = colBuffers[currentBuffer]; + this.extend(buffer, bufferPadding, height); + this.filter(buffer, bufferPadding, height); + + if (currentBuffer === 0) { + k = u - numBuffers + 1; + + for (l = bufferPadding; l < ll; k += width, l++) { + for (b = 0; b < numBuffers; b++) { + items[k + b] = colBuffers[b][l]; + } + } + } + } + } + + return { + width: width, + height: height, + items: items + }; + }; + + return Transform; + }(); + + var IrreversibleTransform = function IrreversibleTransformClosure() { + function IrreversibleTransform() { + Transform.call(this); + } + + IrreversibleTransform.prototype = Object.create(Transform.prototype); + + IrreversibleTransform.prototype.filter = function irreversibleTransformFilter(x, offset, length) { + var len = length >> 1; + offset = offset | 0; + var j, n, current, next; + var alpha = -1.586134342059924; + var beta = -0.052980118572961; + var gamma = 0.882911075530934; + var delta = 0.443506852043971; + var K = 1.230174104914001; + var K_ = 1 / K; + j = offset - 3; + + for (n = len + 4; n--; j += 2) { + x[j] *= K_; + } + + j = offset - 2; + current = delta * x[j - 1]; + + for (n = len + 3; n--; j += 2) { + next = delta * x[j + 1]; + x[j] = K * x[j] - current - next; + + if (n--) { + j += 2; + current = delta * x[j + 1]; + x[j] = K * x[j] - current - next; + } else { + break; + } + } + + j = offset - 1; + current = gamma * x[j - 1]; + + for (n = len + 2; n--; j += 2) { + next = gamma * x[j + 1]; + x[j] -= current + next; + + if (n--) { + j += 2; + current = gamma * x[j + 1]; + x[j] -= current + next; + } else { + break; + } + } + + j = offset; + current = beta * x[j - 1]; + + for (n = len + 1; n--; j += 2) { + next = beta * x[j + 1]; + x[j] -= current + next; + + if (n--) { + j += 2; + current = beta * x[j + 1]; + x[j] -= current + next; + } else { + break; + } + } + + if (len !== 0) { + j = offset + 1; + current = alpha * x[j - 1]; + + for (n = len; n--; j += 2) { + next = alpha * x[j + 1]; + x[j] -= current + next; + + if (n--) { + j += 2; + current = alpha * x[j + 1]; + x[j] -= current + next; + } else { + break; + } + } + } + }; + + return IrreversibleTransform; + }(); + + var ReversibleTransform = function ReversibleTransformClosure() { + function ReversibleTransform() { + Transform.call(this); + } + + ReversibleTransform.prototype = Object.create(Transform.prototype); + + ReversibleTransform.prototype.filter = function reversibleTransformFilter(x, offset, length) { + var len = length >> 1; + offset = offset | 0; + var j, n; + + for (j = offset, n = len + 1; n--; j += 2) { + x[j] -= x[j - 1] + x[j + 1] + 2 >> 2; + } + + for (j = offset + 1, n = len; n--; j += 2) { + x[j] += x[j - 1] + x[j + 1] >> 1; + } + }; + + return ReversibleTransform; + }(); + + return JpxImage; +}(); + +exports.JpxImage = JpxImage; + +/***/ }), +/* 167 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.calculateSHA512 = exports.calculateSHA384 = exports.calculateSHA256 = exports.calculateMD5 = exports.PDF20 = exports.PDF17 = exports.CipherTransformFactory = exports.ARCFourCipher = exports.AES256Cipher = exports.AES128Cipher = void 0; + +var _util = __w_pdfjs_require__(6); + +var _primitives = __w_pdfjs_require__(155); + +var _stream = __w_pdfjs_require__(157); + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var ARCFourCipher = function ARCFourCipherClosure() { + function ARCFourCipher(key) { + this.a = 0; + this.b = 0; + var s = new Uint8Array(256); + var i, + j = 0, + tmp, + keyLength = key.length; + + for (i = 0; i < 256; ++i) { + s[i] = i; + } + + for (i = 0; i < 256; ++i) { + tmp = s[i]; + j = j + tmp + key[i % keyLength] & 0xFF; + s[i] = s[j]; + s[j] = tmp; + } + + this.s = s; + } + + ARCFourCipher.prototype = { + encryptBlock: function ARCFourCipher_encryptBlock(data) { + var i, + n = data.length, + tmp, + tmp2; + var a = this.a, + b = this.b, + s = this.s; + var output = new Uint8Array(n); + + for (i = 0; i < n; ++i) { + a = a + 1 & 0xFF; + tmp = s[a]; + b = b + tmp & 0xFF; + tmp2 = s[b]; + s[a] = tmp2; + s[b] = tmp; + output[i] = data[i] ^ s[tmp + tmp2 & 0xFF]; + } + + this.a = a; + this.b = b; + return output; + } + }; + ARCFourCipher.prototype.decryptBlock = ARCFourCipher.prototype.encryptBlock; + return ARCFourCipher; +}(); + +exports.ARCFourCipher = ARCFourCipher; + +var calculateMD5 = function calculateMD5Closure() { + var r = new Uint8Array([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]); + var k = new Int32Array([-680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162, 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632, 643717713, -373897302, -701558691, 38016083, -660478335, -405537848, 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784, 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556, -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222, -722521979, 76029189, -640364487, -421815835, 530742520, -995338651, -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606, -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649, -145523070, -1120210379, 718787259, -343485551]); + + function hash(data, offset, length) { + var h0 = 1732584193, + h1 = -271733879, + h2 = -1732584194, + h3 = 271733878; + var paddedLength = length + 72 & ~63; + var padded = new Uint8Array(paddedLength); + var i, j, n; + + for (i = 0; i < length; ++i) { + padded[i] = data[offset++]; + } + + padded[i++] = 0x80; + n = paddedLength - 8; + + while (i < n) { + padded[i++] = 0; + } + + padded[i++] = length << 3 & 0xFF; + padded[i++] = length >> 5 & 0xFF; + padded[i++] = length >> 13 & 0xFF; + padded[i++] = length >> 21 & 0xFF; + padded[i++] = length >>> 29 & 0xFF; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + var w = new Int32Array(16); + + for (i = 0; i < paddedLength;) { + for (j = 0; j < 16; ++j, i += 4) { + w[j] = padded[i] | padded[i + 1] << 8 | padded[i + 2] << 16 | padded[i + 3] << 24; + } + + var a = h0, + b = h1, + c = h2, + d = h3, + f, + g; + + for (j = 0; j < 64; ++j) { + if (j < 16) { + f = b & c | ~b & d; + g = j; + } else if (j < 32) { + f = d & b | ~d & c; + g = 5 * j + 1 & 15; + } else if (j < 48) { + f = b ^ c ^ d; + g = 3 * j + 5 & 15; + } else { + f = c ^ (b | ~d); + g = 7 * j & 15; + } + + var tmp = d, + rotateArg = a + f + k[j] + w[g] | 0, + rotate = r[j]; + d = c; + c = b; + b = b + (rotateArg << rotate | rotateArg >>> 32 - rotate) | 0; + a = tmp; + } + + h0 = h0 + a | 0; + h1 = h1 + b | 0; + h2 = h2 + c | 0; + h3 = h3 + d | 0; + } + + return new Uint8Array([h0 & 0xFF, h0 >> 8 & 0xFF, h0 >> 16 & 0xFF, h0 >>> 24 & 0xFF, h1 & 0xFF, h1 >> 8 & 0xFF, h1 >> 16 & 0xFF, h1 >>> 24 & 0xFF, h2 & 0xFF, h2 >> 8 & 0xFF, h2 >> 16 & 0xFF, h2 >>> 24 & 0xFF, h3 & 0xFF, h3 >> 8 & 0xFF, h3 >> 16 & 0xFF, h3 >>> 24 & 0xFF]); + } + + return hash; +}(); + +exports.calculateMD5 = calculateMD5; + +var Word64 = function Word64Closure() { + function Word64(highInteger, lowInteger) { + this.high = highInteger | 0; + this.low = lowInteger | 0; + } + + Word64.prototype = { + and: function Word64_and(word) { + this.high &= word.high; + this.low &= word.low; + }, + xor: function Word64_xor(word) { + this.high ^= word.high; + this.low ^= word.low; + }, + or: function Word64_or(word) { + this.high |= word.high; + this.low |= word.low; + }, + shiftRight: function Word64_shiftRight(places) { + if (places >= 32) { + this.low = this.high >>> places - 32 | 0; + this.high = 0; + } else { + this.low = this.low >>> places | this.high << 32 - places; + this.high = this.high >>> places | 0; + } + }, + shiftLeft: function Word64_shiftLeft(places) { + if (places >= 32) { + this.high = this.low << places - 32; + this.low = 0; + } else { + this.high = this.high << places | this.low >>> 32 - places; + this.low = this.low << places; + } + }, + rotateRight: function Word64_rotateRight(places) { + var low, high; + + if (places & 32) { + high = this.low; + low = this.high; + } else { + low = this.low; + high = this.high; + } + + places &= 31; + this.low = low >>> places | high << 32 - places; + this.high = high >>> places | low << 32 - places; + }, + not: function Word64_not() { + this.high = ~this.high; + this.low = ~this.low; + }, + add: function Word64_add(word) { + var lowAdd = (this.low >>> 0) + (word.low >>> 0); + var highAdd = (this.high >>> 0) + (word.high >>> 0); + + if (lowAdd > 0xFFFFFFFF) { + highAdd += 1; + } + + this.low = lowAdd | 0; + this.high = highAdd | 0; + }, + copyTo: function Word64_copyTo(bytes, offset) { + bytes[offset] = this.high >>> 24 & 0xFF; + bytes[offset + 1] = this.high >> 16 & 0xFF; + bytes[offset + 2] = this.high >> 8 & 0xFF; + bytes[offset + 3] = this.high & 0xFF; + bytes[offset + 4] = this.low >>> 24 & 0xFF; + bytes[offset + 5] = this.low >> 16 & 0xFF; + bytes[offset + 6] = this.low >> 8 & 0xFF; + bytes[offset + 7] = this.low & 0xFF; + }, + assign: function Word64_assign(word) { + this.high = word.high; + this.low = word.low; + } + }; + return Word64; +}(); + +var calculateSHA256 = function calculateSHA256Closure() { + function rotr(x, n) { + return x >>> n | x << 32 - n; + } + + function ch(x, y, z) { + return x & y ^ ~x & z; + } + + function maj(x, y, z) { + return x & y ^ x & z ^ y & z; + } + + function sigma(x) { + return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22); + } + + function sigmaPrime(x) { + return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25); + } + + function littleSigma(x) { + return rotr(x, 7) ^ rotr(x, 18) ^ x >>> 3; + } + + function littleSigmaPrime(x) { + return rotr(x, 17) ^ rotr(x, 19) ^ x >>> 10; + } + + var k = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2]; + + function hash(data, offset, length) { + var h0 = 0x6a09e667, + h1 = 0xbb67ae85, + h2 = 0x3c6ef372, + h3 = 0xa54ff53a, + h4 = 0x510e527f, + h5 = 0x9b05688c, + h6 = 0x1f83d9ab, + h7 = 0x5be0cd19; + var paddedLength = Math.ceil((length + 9) / 64) * 64; + var padded = new Uint8Array(paddedLength); + var i, j, n; + + for (i = 0; i < length; ++i) { + padded[i] = data[offset++]; + } + + padded[i++] = 0x80; + n = paddedLength - 8; + + while (i < n) { + padded[i++] = 0; + } + + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = length >>> 29 & 0xFF; + padded[i++] = length >> 21 & 0xFF; + padded[i++] = length >> 13 & 0xFF; + padded[i++] = length >> 5 & 0xFF; + padded[i++] = length << 3 & 0xFF; + var w = new Uint32Array(64); + + for (i = 0; i < paddedLength;) { + for (j = 0; j < 16; ++j) { + w[j] = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3]; + i += 4; + } + + for (j = 16; j < 64; ++j) { + w[j] = littleSigmaPrime(w[j - 2]) + w[j - 7] + littleSigma(w[j - 15]) + w[j - 16] | 0; + } + + var a = h0, + b = h1, + c = h2, + d = h3, + e = h4, + f = h5, + g = h6, + h = h7, + t1, + t2; + + for (j = 0; j < 64; ++j) { + t1 = h + sigmaPrime(e) + ch(e, f, g) + k[j] + w[j]; + t2 = sigma(a) + maj(a, b, c); + h = g; + g = f; + f = e; + e = d + t1 | 0; + d = c; + c = b; + b = a; + a = t1 + t2 | 0; + } + + h0 = h0 + a | 0; + h1 = h1 + b | 0; + h2 = h2 + c | 0; + h3 = h3 + d | 0; + h4 = h4 + e | 0; + h5 = h5 + f | 0; + h6 = h6 + g | 0; + h7 = h7 + h | 0; + } + + return new Uint8Array([h0 >> 24 & 0xFF, h0 >> 16 & 0xFF, h0 >> 8 & 0xFF, h0 & 0xFF, h1 >> 24 & 0xFF, h1 >> 16 & 0xFF, h1 >> 8 & 0xFF, h1 & 0xFF, h2 >> 24 & 0xFF, h2 >> 16 & 0xFF, h2 >> 8 & 0xFF, h2 & 0xFF, h3 >> 24 & 0xFF, h3 >> 16 & 0xFF, h3 >> 8 & 0xFF, h3 & 0xFF, h4 >> 24 & 0xFF, h4 >> 16 & 0xFF, h4 >> 8 & 0xFF, h4 & 0xFF, h5 >> 24 & 0xFF, h5 >> 16 & 0xFF, h5 >> 8 & 0xFF, h5 & 0xFF, h6 >> 24 & 0xFF, h6 >> 16 & 0xFF, h6 >> 8 & 0xFF, h6 & 0xFF, h7 >> 24 & 0xFF, h7 >> 16 & 0xFF, h7 >> 8 & 0xFF, h7 & 0xFF]); + } + + return hash; +}(); + +exports.calculateSHA256 = calculateSHA256; + +var calculateSHA512 = function calculateSHA512Closure() { + function ch(result, x, y, z, tmp) { + result.assign(x); + result.and(y); + tmp.assign(x); + tmp.not(); + tmp.and(z); + result.xor(tmp); + } + + function maj(result, x, y, z, tmp) { + result.assign(x); + result.and(y); + tmp.assign(x); + tmp.and(z); + result.xor(tmp); + tmp.assign(y); + tmp.and(z); + result.xor(tmp); + } + + function sigma(result, x, tmp) { + result.assign(x); + result.rotateRight(28); + tmp.assign(x); + tmp.rotateRight(34); + result.xor(tmp); + tmp.assign(x); + tmp.rotateRight(39); + result.xor(tmp); + } + + function sigmaPrime(result, x, tmp) { + result.assign(x); + result.rotateRight(14); + tmp.assign(x); + tmp.rotateRight(18); + result.xor(tmp); + tmp.assign(x); + tmp.rotateRight(41); + result.xor(tmp); + } + + function littleSigma(result, x, tmp) { + result.assign(x); + result.rotateRight(1); + tmp.assign(x); + tmp.rotateRight(8); + result.xor(tmp); + tmp.assign(x); + tmp.shiftRight(7); + result.xor(tmp); + } + + function littleSigmaPrime(result, x, tmp) { + result.assign(x); + result.rotateRight(19); + tmp.assign(x); + tmp.rotateRight(61); + result.xor(tmp); + tmp.assign(x); + tmp.shiftRight(6); + result.xor(tmp); + } + + var k = [new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd), new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc), new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019), new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118), new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe), new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2), new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1), new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694), new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3), new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65), new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483), new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5), new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210), new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4), new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725), new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70), new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926), new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df), new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8), new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b), new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001), new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30), new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910), new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8), new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53), new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8), new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb), new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3), new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60), new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec), new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9), new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b), new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207), new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178), new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6), new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b), new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493), new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c), new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a), new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)]; + + function hash(data, offset, length, mode384) { + mode384 = !!mode384; + var h0, h1, h2, h3, h4, h5, h6, h7; + + if (!mode384) { + h0 = new Word64(0x6a09e667, 0xf3bcc908); + h1 = new Word64(0xbb67ae85, 0x84caa73b); + h2 = new Word64(0x3c6ef372, 0xfe94f82b); + h3 = new Word64(0xa54ff53a, 0x5f1d36f1); + h4 = new Word64(0x510e527f, 0xade682d1); + h5 = new Word64(0x9b05688c, 0x2b3e6c1f); + h6 = new Word64(0x1f83d9ab, 0xfb41bd6b); + h7 = new Word64(0x5be0cd19, 0x137e2179); + } else { + h0 = new Word64(0xcbbb9d5d, 0xc1059ed8); + h1 = new Word64(0x629a292a, 0x367cd507); + h2 = new Word64(0x9159015a, 0x3070dd17); + h3 = new Word64(0x152fecd8, 0xf70e5939); + h4 = new Word64(0x67332667, 0xffc00b31); + h5 = new Word64(0x8eb44a87, 0x68581511); + h6 = new Word64(0xdb0c2e0d, 0x64f98fa7); + h7 = new Word64(0x47b5481d, 0xbefa4fa4); + } + + var paddedLength = Math.ceil((length + 17) / 128) * 128; + var padded = new Uint8Array(paddedLength); + var i, j, n; + + for (i = 0; i < length; ++i) { + padded[i] = data[offset++]; + } + + padded[i++] = 0x80; + n = paddedLength - 16; + + while (i < n) { + padded[i++] = 0; + } + + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = 0; + padded[i++] = length >>> 29 & 0xFF; + padded[i++] = length >> 21 & 0xFF; + padded[i++] = length >> 13 & 0xFF; + padded[i++] = length >> 5 & 0xFF; + padded[i++] = length << 3 & 0xFF; + var w = new Array(80); + + for (i = 0; i < 80; i++) { + w[i] = new Word64(0, 0); + } + + var a = new Word64(0, 0), + b = new Word64(0, 0), + c = new Word64(0, 0); + var d = new Word64(0, 0), + e = new Word64(0, 0), + f = new Word64(0, 0); + var g = new Word64(0, 0), + h = new Word64(0, 0); + var t1 = new Word64(0, 0), + t2 = new Word64(0, 0); + var tmp1 = new Word64(0, 0), + tmp2 = new Word64(0, 0), + tmp3; + + for (i = 0; i < paddedLength;) { + for (j = 0; j < 16; ++j) { + w[j].high = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3]; + w[j].low = padded[i + 4] << 24 | padded[i + 5] << 16 | padded[i + 6] << 8 | padded[i + 7]; + i += 8; + } + + for (j = 16; j < 80; ++j) { + tmp3 = w[j]; + littleSigmaPrime(tmp3, w[j - 2], tmp2); + tmp3.add(w[j - 7]); + littleSigma(tmp1, w[j - 15], tmp2); + tmp3.add(tmp1); + tmp3.add(w[j - 16]); + } + + a.assign(h0); + b.assign(h1); + c.assign(h2); + d.assign(h3); + e.assign(h4); + f.assign(h5); + g.assign(h6); + h.assign(h7); + + for (j = 0; j < 80; ++j) { + t1.assign(h); + sigmaPrime(tmp1, e, tmp2); + t1.add(tmp1); + ch(tmp1, e, f, g, tmp2); + t1.add(tmp1); + t1.add(k[j]); + t1.add(w[j]); + sigma(t2, a, tmp2); + maj(tmp1, a, b, c, tmp2); + t2.add(tmp1); + tmp3 = h; + h = g; + g = f; + f = e; + d.add(t1); + e = d; + d = c; + c = b; + b = a; + tmp3.assign(t1); + tmp3.add(t2); + a = tmp3; + } + + h0.add(a); + h1.add(b); + h2.add(c); + h3.add(d); + h4.add(e); + h5.add(f); + h6.add(g); + h7.add(h); + } + + var result; + + if (!mode384) { + result = new Uint8Array(64); + h0.copyTo(result, 0); + h1.copyTo(result, 8); + h2.copyTo(result, 16); + h3.copyTo(result, 24); + h4.copyTo(result, 32); + h5.copyTo(result, 40); + h6.copyTo(result, 48); + h7.copyTo(result, 56); + } else { + result = new Uint8Array(48); + h0.copyTo(result, 0); + h1.copyTo(result, 8); + h2.copyTo(result, 16); + h3.copyTo(result, 24); + h4.copyTo(result, 32); + h5.copyTo(result, 40); + } + + return result; + } + + return hash; +}(); + +exports.calculateSHA512 = calculateSHA512; + +var calculateSHA384 = function calculateSHA384Closure() { + function hash(data, offset, length) { + return calculateSHA512(data, offset, length, true); + } + + return hash; +}(); + +exports.calculateSHA384 = calculateSHA384; + +var NullCipher = function NullCipherClosure() { + function NullCipher() {} + + NullCipher.prototype = { + decryptBlock: function NullCipher_decryptBlock(data) { + return data; + } + }; + return NullCipher; +}(); + +var AESBaseCipher = +/*#__PURE__*/ +function () { + function AESBaseCipher() { + _classCallCheck(this, AESBaseCipher); + + if (this.constructor === AESBaseCipher) { + (0, _util.unreachable)('Cannot initialize AESBaseCipher.'); + } + + this._s = new Uint8Array([0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16]); + this._inv_s = new Uint8Array([0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d]); + this._mix = new Uint32Array([0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]); + this._mixCol = new Uint8Array(256); + + for (var i = 0; i < 256; i++) { + if (i < 128) { + this._mixCol[i] = i << 1; + } else { + this._mixCol[i] = i << 1 ^ 0x1b; + } + } + + this.buffer = new Uint8Array(16); + this.bufferPosition = 0; + } + + _createClass(AESBaseCipher, [{ + key: "_expandKey", + value: function _expandKey(cipherKey) { + (0, _util.unreachable)('Cannot call `_expandKey` on the base class'); + } + }, { + key: "_decrypt", + value: function _decrypt(input, key) { + var t, u, v; + var state = new Uint8Array(16); + state.set(input); + + for (var j = 0, k = this._keySize; j < 16; ++j, ++k) { + state[j] ^= key[k]; + } + + for (var i = this._cyclesOfRepetition - 1; i >= 1; --i) { + t = state[13]; + state[13] = state[9]; + state[9] = state[5]; + state[5] = state[1]; + state[1] = t; + t = state[14]; + u = state[10]; + state[14] = state[6]; + state[10] = state[2]; + state[6] = t; + state[2] = u; + t = state[15]; + u = state[11]; + v = state[7]; + state[15] = state[3]; + state[11] = t; + state[7] = u; + state[3] = v; + + for (var _j = 0; _j < 16; ++_j) { + state[_j] = this._inv_s[state[_j]]; + } + + for (var _j2 = 0, _k = i * 16; _j2 < 16; ++_j2, ++_k) { + state[_j2] ^= key[_k]; + } + + for (var _j3 = 0; _j3 < 16; _j3 += 4) { + var s0 = this._mix[state[_j3]]; + var s1 = this._mix[state[_j3 + 1]]; + var s2 = this._mix[state[_j3 + 2]]; + var s3 = this._mix[state[_j3 + 3]]; + t = s0 ^ s1 >>> 8 ^ s1 << 24 ^ s2 >>> 16 ^ s2 << 16 ^ s3 >>> 24 ^ s3 << 8; + state[_j3] = t >>> 24 & 0xFF; + state[_j3 + 1] = t >> 16 & 0xFF; + state[_j3 + 2] = t >> 8 & 0xFF; + state[_j3 + 3] = t & 0xFF; + } + } + + t = state[13]; + state[13] = state[9]; + state[9] = state[5]; + state[5] = state[1]; + state[1] = t; + t = state[14]; + u = state[10]; + state[14] = state[6]; + state[10] = state[2]; + state[6] = t; + state[2] = u; + t = state[15]; + u = state[11]; + v = state[7]; + state[15] = state[3]; + state[11] = t; + state[7] = u; + state[3] = v; + + for (var _j4 = 0; _j4 < 16; ++_j4) { + state[_j4] = this._inv_s[state[_j4]]; + state[_j4] ^= key[_j4]; + } + + return state; + } + }, { + key: "_encrypt", + value: function _encrypt(input, key) { + var s = this._s; + var t, u, v; + var state = new Uint8Array(16); + state.set(input); + + for (var j = 0; j < 16; ++j) { + state[j] ^= key[j]; + } + + for (var i = 1; i < this._cyclesOfRepetition; i++) { + for (var _j5 = 0; _j5 < 16; ++_j5) { + state[_j5] = s[state[_j5]]; + } + + v = state[1]; + state[1] = state[5]; + state[5] = state[9]; + state[9] = state[13]; + state[13] = v; + v = state[2]; + u = state[6]; + state[2] = state[10]; + state[6] = state[14]; + state[10] = v; + state[14] = u; + v = state[3]; + u = state[7]; + t = state[11]; + state[3] = state[15]; + state[7] = v; + state[11] = u; + state[15] = t; + + for (var _j6 = 0; _j6 < 16; _j6 += 4) { + var s0 = state[_j6 + 0]; + var s1 = state[_j6 + 1]; + var s2 = state[_j6 + 2]; + var s3 = state[_j6 + 3]; + t = s0 ^ s1 ^ s2 ^ s3; + state[_j6 + 0] ^= t ^ this._mixCol[s0 ^ s1]; + state[_j6 + 1] ^= t ^ this._mixCol[s1 ^ s2]; + state[_j6 + 2] ^= t ^ this._mixCol[s2 ^ s3]; + state[_j6 + 3] ^= t ^ this._mixCol[s3 ^ s0]; + } + + for (var _j7 = 0, k = i * 16; _j7 < 16; ++_j7, ++k) { + state[_j7] ^= key[k]; + } + } + + for (var _j8 = 0; _j8 < 16; ++_j8) { + state[_j8] = s[state[_j8]]; + } + + v = state[1]; + state[1] = state[5]; + state[5] = state[9]; + state[9] = state[13]; + state[13] = v; + v = state[2]; + u = state[6]; + state[2] = state[10]; + state[6] = state[14]; + state[10] = v; + state[14] = u; + v = state[3]; + u = state[7]; + t = state[11]; + state[3] = state[15]; + state[7] = v; + state[11] = u; + state[15] = t; + + for (var _j9 = 0, _k2 = this._keySize; _j9 < 16; ++_j9, ++_k2) { + state[_j9] ^= key[_k2]; + } + + return state; + } + }, { + key: "_decryptBlock2", + value: function _decryptBlock2(data, finalize) { + var sourceLength = data.length; + var buffer = this.buffer, + bufferLength = this.bufferPosition; + var result = [], + iv = this.iv; + + for (var i = 0; i < sourceLength; ++i) { + buffer[bufferLength] = data[i]; + ++bufferLength; + + if (bufferLength < 16) { + continue; + } + + var plain = this._decrypt(buffer, this._key); + + for (var j = 0; j < 16; ++j) { + plain[j] ^= iv[j]; + } + + iv = buffer; + result.push(plain); + buffer = new Uint8Array(16); + bufferLength = 0; + } + + this.buffer = buffer; + this.bufferLength = bufferLength; + this.iv = iv; + + if (result.length === 0) { + return new Uint8Array(0); + } + + var outputLength = 16 * result.length; + + if (finalize) { + var lastBlock = result[result.length - 1]; + var psLen = lastBlock[15]; + + if (psLen <= 16) { + for (var _i = 15, ii = 16 - psLen; _i >= ii; --_i) { + if (lastBlock[_i] !== psLen) { + psLen = 0; + break; + } + } + + outputLength -= psLen; + result[result.length - 1] = lastBlock.subarray(0, 16 - psLen); + } + } + + var output = new Uint8Array(outputLength); + + for (var _i2 = 0, _j10 = 0, _ii = result.length; _i2 < _ii; ++_i2, _j10 += 16) { + output.set(result[_i2], _j10); + } + + return output; + } + }, { + key: "decryptBlock", + value: function decryptBlock(data, finalize) { + var iv = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + var sourceLength = data.length; + var buffer = this.buffer, + bufferLength = this.bufferPosition; + + if (iv) { + this.iv = iv; + } else { + for (var i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) { + buffer[bufferLength] = data[i]; + } + + if (bufferLength < 16) { + this.bufferLength = bufferLength; + return new Uint8Array(0); + } + + this.iv = buffer; + data = data.subarray(16); + } + + this.buffer = new Uint8Array(16); + this.bufferLength = 0; + this.decryptBlock = this._decryptBlock2; + return this.decryptBlock(data, finalize); + } + }, { + key: "encrypt", + value: function encrypt(data, iv) { + var sourceLength = data.length; + var buffer = this.buffer, + bufferLength = this.bufferPosition; + var result = []; + + if (!iv) { + iv = new Uint8Array(16); + } + + for (var i = 0; i < sourceLength; ++i) { + buffer[bufferLength] = data[i]; + ++bufferLength; + + if (bufferLength < 16) { + continue; + } + + for (var j = 0; j < 16; ++j) { + buffer[j] ^= iv[j]; + } + + var cipher = this._encrypt(buffer, this._key); + + iv = cipher; + result.push(cipher); + buffer = new Uint8Array(16); + bufferLength = 0; + } + + this.buffer = buffer; + this.bufferLength = bufferLength; + this.iv = iv; + + if (result.length === 0) { + return new Uint8Array(0); + } + + var outputLength = 16 * result.length; + var output = new Uint8Array(outputLength); + + for (var _i3 = 0, _j11 = 0, ii = result.length; _i3 < ii; ++_i3, _j11 += 16) { + output.set(result[_i3], _j11); + } + + return output; + } + }]); + + return AESBaseCipher; +}(); + +var AES128Cipher = +/*#__PURE__*/ +function (_AESBaseCipher) { + _inherits(AES128Cipher, _AESBaseCipher); + + function AES128Cipher(key) { + var _this; + + _classCallCheck(this, AES128Cipher); + + _this = _possibleConstructorReturn(this, _getPrototypeOf(AES128Cipher).call(this)); + _this._cyclesOfRepetition = 10; + _this._keySize = 160; + _this._rcon = new Uint8Array([0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d]); + _this._key = _this._expandKey(key); + return _this; + } + + _createClass(AES128Cipher, [{ + key: "_expandKey", + value: function _expandKey(cipherKey) { + var b = 176; + var s = this._s; + var rcon = this._rcon; + var result = new Uint8Array(b); + result.set(cipherKey); + + for (var j = 16, i = 1; j < b; ++i) { + var t1 = result[j - 3]; + var t2 = result[j - 2]; + var t3 = result[j - 1]; + var t4 = result[j - 4]; + t1 = s[t1]; + t2 = s[t2]; + t3 = s[t3]; + t4 = s[t4]; + t1 = t1 ^ rcon[i]; + + for (var n = 0; n < 4; ++n) { + result[j] = t1 ^= result[j - 16]; + j++; + result[j] = t2 ^= result[j - 16]; + j++; + result[j] = t3 ^= result[j - 16]; + j++; + result[j] = t4 ^= result[j - 16]; + j++; + } + } + + return result; + } + }]); + + return AES128Cipher; +}(AESBaseCipher); + +exports.AES128Cipher = AES128Cipher; + +var AES256Cipher = +/*#__PURE__*/ +function (_AESBaseCipher2) { + _inherits(AES256Cipher, _AESBaseCipher2); + + function AES256Cipher(key) { + var _this2; + + _classCallCheck(this, AES256Cipher); + + _this2 = _possibleConstructorReturn(this, _getPrototypeOf(AES256Cipher).call(this)); + _this2._cyclesOfRepetition = 14; + _this2._keySize = 224; + _this2._key = _this2._expandKey(key); + return _this2; + } + + _createClass(AES256Cipher, [{ + key: "_expandKey", + value: function _expandKey(cipherKey) { + var b = 240; + var s = this._s; + var result = new Uint8Array(b); + result.set(cipherKey); + var r = 1; + var t1, t2, t3, t4; + + for (var j = 32, i = 1; j < b; ++i) { + if (j % 32 === 16) { + t1 = s[t1]; + t2 = s[t2]; + t3 = s[t3]; + t4 = s[t4]; + } else if (j % 32 === 0) { + t1 = result[j - 3]; + t2 = result[j - 2]; + t3 = result[j - 1]; + t4 = result[j - 4]; + t1 = s[t1]; + t2 = s[t2]; + t3 = s[t3]; + t4 = s[t4]; + t1 = t1 ^ r; + + if ((r <<= 1) >= 256) { + r = (r ^ 0x1b) & 0xFF; + } + } + + for (var n = 0; n < 4; ++n) { + result[j] = t1 ^= result[j - 32]; + j++; + result[j] = t2 ^= result[j - 32]; + j++; + result[j] = t3 ^= result[j - 32]; + j++; + result[j] = t4 ^= result[j - 32]; + j++; + } + } + + return result; + } + }]); + + return AES256Cipher; +}(AESBaseCipher); + +exports.AES256Cipher = AES256Cipher; + +var PDF17 = function PDF17Closure() { + function compareByteArrays(array1, array2) { + if (array1.length !== array2.length) { + return false; + } + + for (var i = 0; i < array1.length; i++) { + if (array1[i] !== array2[i]) { + return false; + } + } + + return true; + } + + function PDF17() {} + + PDF17.prototype = { + checkOwnerPassword: function PDF17_checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) { + var hashData = new Uint8Array(password.length + 56); + hashData.set(password, 0); + hashData.set(ownerValidationSalt, password.length); + hashData.set(userBytes, password.length + ownerValidationSalt.length); + var result = calculateSHA256(hashData, 0, hashData.length); + return compareByteArrays(result, ownerPassword); + }, + checkUserPassword: function PDF17_checkUserPassword(password, userValidationSalt, userPassword) { + var hashData = new Uint8Array(password.length + 8); + hashData.set(password, 0); + hashData.set(userValidationSalt, password.length); + var result = calculateSHA256(hashData, 0, hashData.length); + return compareByteArrays(result, userPassword); + }, + getOwnerKey: function PDF17_getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) { + var hashData = new Uint8Array(password.length + 56); + hashData.set(password, 0); + hashData.set(ownerKeySalt, password.length); + hashData.set(userBytes, password.length + ownerKeySalt.length); + var key = calculateSHA256(hashData, 0, hashData.length); + var cipher = new AES256Cipher(key); + return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16)); + }, + getUserKey: function PDF17_getUserKey(password, userKeySalt, userEncryption) { + var hashData = new Uint8Array(password.length + 8); + hashData.set(password, 0); + hashData.set(userKeySalt, password.length); + var key = calculateSHA256(hashData, 0, hashData.length); + var cipher = new AES256Cipher(key); + return cipher.decryptBlock(userEncryption, false, new Uint8Array(16)); + } + }; + return PDF17; +}(); + +exports.PDF17 = PDF17; + +var PDF20 = function PDF20Closure() { + function concatArrays(array1, array2) { + var t = new Uint8Array(array1.length + array2.length); + t.set(array1, 0); + t.set(array2, array1.length); + return t; + } + + function calculatePDF20Hash(password, input, userBytes) { + var k = calculateSHA256(input, 0, input.length).subarray(0, 32); + var e = [0]; + var i = 0; + + while (i < 64 || e[e.length - 1] > i - 32) { + var arrayLength = password.length + k.length + userBytes.length; + var k1 = new Uint8Array(arrayLength * 64); + var array = concatArrays(password, k); + array = concatArrays(array, userBytes); + + for (var j = 0, pos = 0; j < 64; j++, pos += arrayLength) { + k1.set(array, pos); + } + + var cipher = new AES128Cipher(k.subarray(0, 16)); + e = cipher.encrypt(k1, k.subarray(16, 32)); + var remainder = 0; + + for (var z = 0; z < 16; z++) { + remainder *= 256 % 3; + remainder %= 3; + remainder += (e[z] >>> 0) % 3; + remainder %= 3; + } + + if (remainder === 0) { + k = calculateSHA256(e, 0, e.length); + } else if (remainder === 1) { + k = calculateSHA384(e, 0, e.length); + } else if (remainder === 2) { + k = calculateSHA512(e, 0, e.length); + } + + i++; + } + + return k.subarray(0, 32); + } + + function PDF20() {} + + function compareByteArrays(array1, array2) { + if (array1.length !== array2.length) { + return false; + } + + for (var i = 0; i < array1.length; i++) { + if (array1[i] !== array2[i]) { + return false; + } + } + + return true; + } + + PDF20.prototype = { + hash: function PDF20_hash(password, concatBytes, userBytes) { + return calculatePDF20Hash(password, concatBytes, userBytes); + }, + checkOwnerPassword: function PDF20_checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) { + var hashData = new Uint8Array(password.length + 56); + hashData.set(password, 0); + hashData.set(ownerValidationSalt, password.length); + hashData.set(userBytes, password.length + ownerValidationSalt.length); + var result = calculatePDF20Hash(password, hashData, userBytes); + return compareByteArrays(result, ownerPassword); + }, + checkUserPassword: function PDF20_checkUserPassword(password, userValidationSalt, userPassword) { + var hashData = new Uint8Array(password.length + 8); + hashData.set(password, 0); + hashData.set(userValidationSalt, password.length); + var result = calculatePDF20Hash(password, hashData, []); + return compareByteArrays(result, userPassword); + }, + getOwnerKey: function PDF20_getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) { + var hashData = new Uint8Array(password.length + 56); + hashData.set(password, 0); + hashData.set(ownerKeySalt, password.length); + hashData.set(userBytes, password.length + ownerKeySalt.length); + var key = calculatePDF20Hash(password, hashData, userBytes); + var cipher = new AES256Cipher(key); + return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16)); + }, + getUserKey: function PDF20_getUserKey(password, userKeySalt, userEncryption) { + var hashData = new Uint8Array(password.length + 8); + hashData.set(password, 0); + hashData.set(userKeySalt, password.length); + var key = calculatePDF20Hash(password, hashData, []); + var cipher = new AES256Cipher(key); + return cipher.decryptBlock(userEncryption, false, new Uint8Array(16)); + } + }; + return PDF20; +}(); + +exports.PDF20 = PDF20; + +var CipherTransform = function CipherTransformClosure() { + function CipherTransform(stringCipherConstructor, streamCipherConstructor) { + this.StringCipherConstructor = stringCipherConstructor; + this.StreamCipherConstructor = streamCipherConstructor; + } + + CipherTransform.prototype = { + createStream: function CipherTransform_createStream(stream, length) { + var cipher = new this.StreamCipherConstructor(); + return new _stream.DecryptStream(stream, length, function cipherTransformDecryptStream(data, finalize) { + return cipher.decryptBlock(data, finalize); + }); + }, + decryptString: function CipherTransform_decryptString(s) { + var cipher = new this.StringCipherConstructor(); + var data = (0, _util.stringToBytes)(s); + data = cipher.decryptBlock(data, true); + return (0, _util.bytesToString)(data); + } + }; + return CipherTransform; +}(); + +var CipherTransformFactory = function CipherTransformFactoryClosure() { + var defaultPasswordBytes = new Uint8Array([0x28, 0xBF, 0x4E, 0x5E, 0x4E, 0x75, 0x8A, 0x41, 0x64, 0x00, 0x4E, 0x56, 0xFF, 0xFA, 0x01, 0x08, 0x2E, 0x2E, 0x00, 0xB6, 0xD0, 0x68, 0x3E, 0x80, 0x2F, 0x0C, 0xA9, 0xFE, 0x64, 0x53, 0x69, 0x7A]); + + function createEncryptionKey20(revision, password, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms) { + if (password) { + var passwordLength = Math.min(127, password.length); + password = password.subarray(0, passwordLength); + } else { + password = []; + } + + var pdfAlgorithm; + + if (revision === 6) { + pdfAlgorithm = new PDF20(); + } else { + pdfAlgorithm = new PDF17(); + } + + if (pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)) { + return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption); + } else if (password.length && pdfAlgorithm.checkOwnerPassword(password, ownerValidationSalt, uBytes, ownerPassword)) { + return pdfAlgorithm.getOwnerKey(password, ownerKeySalt, uBytes, ownerEncryption); + } + + return null; + } + + function prepareKeyData(fileId, password, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata) { + var hashDataSize = 40 + ownerPassword.length + fileId.length; + var hashData = new Uint8Array(hashDataSize), + i = 0, + j, + n; + + if (password) { + n = Math.min(32, password.length); + + for (; i < n; ++i) { + hashData[i] = password[i]; + } + } + + j = 0; + + while (i < 32) { + hashData[i++] = defaultPasswordBytes[j++]; + } + + for (j = 0, n = ownerPassword.length; j < n; ++j) { + hashData[i++] = ownerPassword[j]; + } + + hashData[i++] = flags & 0xFF; + hashData[i++] = flags >> 8 & 0xFF; + hashData[i++] = flags >> 16 & 0xFF; + hashData[i++] = flags >>> 24 & 0xFF; + + for (j = 0, n = fileId.length; j < n; ++j) { + hashData[i++] = fileId[j]; + } + + if (revision >= 4 && !encryptMetadata) { + hashData[i++] = 0xFF; + hashData[i++] = 0xFF; + hashData[i++] = 0xFF; + hashData[i++] = 0xFF; + } + + var hash = calculateMD5(hashData, 0, i); + var keyLengthInBytes = keyLength >> 3; + + if (revision >= 3) { + for (j = 0; j < 50; ++j) { + hash = calculateMD5(hash, 0, keyLengthInBytes); + } + } + + var encryptionKey = hash.subarray(0, keyLengthInBytes); + var cipher, checkData; + + if (revision >= 3) { + for (i = 0; i < 32; ++i) { + hashData[i] = defaultPasswordBytes[i]; + } + + for (j = 0, n = fileId.length; j < n; ++j) { + hashData[i++] = fileId[j]; + } + + cipher = new ARCFourCipher(encryptionKey); + checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i)); + n = encryptionKey.length; + var derivedKey = new Uint8Array(n), + k; + + for (j = 1; j <= 19; ++j) { + for (k = 0; k < n; ++k) { + derivedKey[k] = encryptionKey[k] ^ j; + } + + cipher = new ARCFourCipher(derivedKey); + checkData = cipher.encryptBlock(checkData); + } + + for (j = 0, n = checkData.length; j < n; ++j) { + if (userPassword[j] !== checkData[j]) { + return null; + } + } + } else { + cipher = new ARCFourCipher(encryptionKey); + checkData = cipher.encryptBlock(defaultPasswordBytes); + + for (j = 0, n = checkData.length; j < n; ++j) { + if (userPassword[j] !== checkData[j]) { + return null; + } + } + } + + return encryptionKey; + } + + function decodeUserPassword(password, ownerPassword, revision, keyLength) { + var hashData = new Uint8Array(32), + i = 0, + j, + n; + n = Math.min(32, password.length); + + for (; i < n; ++i) { + hashData[i] = password[i]; + } + + j = 0; + + while (i < 32) { + hashData[i++] = defaultPasswordBytes[j++]; + } + + var hash = calculateMD5(hashData, 0, i); + var keyLengthInBytes = keyLength >> 3; + + if (revision >= 3) { + for (j = 0; j < 50; ++j) { + hash = calculateMD5(hash, 0, hash.length); + } + } + + var cipher, userPassword; + + if (revision >= 3) { + userPassword = ownerPassword; + var derivedKey = new Uint8Array(keyLengthInBytes), + k; + + for (j = 19; j >= 0; j--) { + for (k = 0; k < keyLengthInBytes; ++k) { + derivedKey[k] = hash[k] ^ j; + } + + cipher = new ARCFourCipher(derivedKey); + userPassword = cipher.encryptBlock(userPassword); + } + } else { + cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes)); + userPassword = cipher.encryptBlock(ownerPassword); + } + + return userPassword; + } + + var identityName = _primitives.Name.get('Identity'); + + function CipherTransformFactory(dict, fileId, password) { + var filter = dict.get('Filter'); + + if (!(0, _primitives.isName)(filter, 'Standard')) { + throw new _util.FormatError('unknown encryption method'); + } + + this.dict = dict; + var algorithm = dict.get('V'); + + if (!Number.isInteger(algorithm) || algorithm !== 1 && algorithm !== 2 && algorithm !== 4 && algorithm !== 5) { + throw new _util.FormatError('unsupported encryption algorithm'); + } + + this.algorithm = algorithm; + var keyLength = dict.get('Length'); + + if (!keyLength) { + if (algorithm <= 3) { + keyLength = 40; + } else { + var cfDict = dict.get('CF'); + var streamCryptoName = dict.get('StmF'); + + if ((0, _primitives.isDict)(cfDict) && (0, _primitives.isName)(streamCryptoName)) { + cfDict.suppressEncryption = true; + var handlerDict = cfDict.get(streamCryptoName.name); + keyLength = handlerDict && handlerDict.get('Length') || 128; + + if (keyLength < 40) { + keyLength <<= 3; + } + } + } + } + + if (!Number.isInteger(keyLength) || keyLength < 40 || keyLength % 8 !== 0) { + throw new _util.FormatError('invalid key length'); + } + + var ownerPassword = (0, _util.stringToBytes)(dict.get('O')).subarray(0, 32); + var userPassword = (0, _util.stringToBytes)(dict.get('U')).subarray(0, 32); + var flags = dict.get('P'); + var revision = dict.get('R'); + var encryptMetadata = (algorithm === 4 || algorithm === 5) && dict.get('EncryptMetadata') !== false; + this.encryptMetadata = encryptMetadata; + var fileIdBytes = (0, _util.stringToBytes)(fileId); + var passwordBytes; + + if (password) { + if (revision === 6) { + try { + password = (0, _util.utf8StringToString)(password); + } catch (ex) { + (0, _util.warn)('CipherTransformFactory: ' + 'Unable to convert UTF8 encoded password.'); + } + } + + passwordBytes = (0, _util.stringToBytes)(password); + } + + var encryptionKey; + + if (algorithm !== 5) { + encryptionKey = prepareKeyData(fileIdBytes, passwordBytes, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata); + } else { + var ownerValidationSalt = (0, _util.stringToBytes)(dict.get('O')).subarray(32, 40); + var ownerKeySalt = (0, _util.stringToBytes)(dict.get('O')).subarray(40, 48); + var uBytes = (0, _util.stringToBytes)(dict.get('U')).subarray(0, 48); + var userValidationSalt = (0, _util.stringToBytes)(dict.get('U')).subarray(32, 40); + var userKeySalt = (0, _util.stringToBytes)(dict.get('U')).subarray(40, 48); + var ownerEncryption = (0, _util.stringToBytes)(dict.get('OE')); + var userEncryption = (0, _util.stringToBytes)(dict.get('UE')); + var perms = (0, _util.stringToBytes)(dict.get('Perms')); + encryptionKey = createEncryptionKey20(revision, passwordBytes, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms); + } + + if (!encryptionKey && !password) { + throw new _util.PasswordException('No password given', _util.PasswordResponses.NEED_PASSWORD); + } else if (!encryptionKey && password) { + var decodedPassword = decodeUserPassword(passwordBytes, ownerPassword, revision, keyLength); + encryptionKey = prepareKeyData(fileIdBytes, decodedPassword, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata); + } + + if (!encryptionKey) { + throw new _util.PasswordException('Incorrect Password', _util.PasswordResponses.INCORRECT_PASSWORD); + } + + this.encryptionKey = encryptionKey; + + if (algorithm >= 4) { + var cf = dict.get('CF'); + + if ((0, _primitives.isDict)(cf)) { + cf.suppressEncryption = true; + } + + this.cf = cf; + this.stmf = dict.get('StmF') || identityName; + this.strf = dict.get('StrF') || identityName; + this.eff = dict.get('EFF') || this.stmf; + } + } + + function buildObjectKey(num, gen, encryptionKey, isAes) { + var key = new Uint8Array(encryptionKey.length + 9), + i, + n; + + for (i = 0, n = encryptionKey.length; i < n; ++i) { + key[i] = encryptionKey[i]; + } + + key[i++] = num & 0xFF; + key[i++] = num >> 8 & 0xFF; + key[i++] = num >> 16 & 0xFF; + key[i++] = gen & 0xFF; + key[i++] = gen >> 8 & 0xFF; + + if (isAes) { + key[i++] = 0x73; + key[i++] = 0x41; + key[i++] = 0x6C; + key[i++] = 0x54; + } + + var hash = calculateMD5(key, 0, i); + return hash.subarray(0, Math.min(encryptionKey.length + 5, 16)); + } + + function buildCipherConstructor(cf, name, num, gen, key) { + if (!(0, _primitives.isName)(name)) { + throw new _util.FormatError('Invalid crypt filter name.'); + } + + var cryptFilter = cf.get(name.name); + var cfm; + + if (cryptFilter !== null && cryptFilter !== undefined) { + cfm = cryptFilter.get('CFM'); + } + + if (!cfm || cfm.name === 'None') { + return function cipherTransformFactoryBuildCipherConstructorNone() { + return new NullCipher(); + }; + } + + if (cfm.name === 'V2') { + return function cipherTransformFactoryBuildCipherConstructorV2() { + return new ARCFourCipher(buildObjectKey(num, gen, key, false)); + }; + } + + if (cfm.name === 'AESV2') { + return function cipherTransformFactoryBuildCipherConstructorAESV2() { + return new AES128Cipher(buildObjectKey(num, gen, key, true)); + }; + } + + if (cfm.name === 'AESV3') { + return function cipherTransformFactoryBuildCipherConstructorAESV3() { + return new AES256Cipher(key); + }; + } + + throw new _util.FormatError('Unknown crypto method'); + } + + CipherTransformFactory.prototype = { + createCipherTransform: function CipherTransformFactory_createCipherTransform(num, gen) { + if (this.algorithm === 4 || this.algorithm === 5) { + return new CipherTransform(buildCipherConstructor(this.cf, this.stmf, num, gen, this.encryptionKey), buildCipherConstructor(this.cf, this.strf, num, gen, this.encryptionKey)); + } + + var key = buildObjectKey(num, gen, this.encryptionKey, false); + + var cipherConstructor = function buildCipherCipherConstructor() { + return new ARCFourCipher(key); + }; + + return new CipherTransform(cipherConstructor, cipherConstructor); + } + }; + return CipherTransformFactory; +}(); + +exports.CipherTransformFactory = CipherTransformFactory; + +/***/ }), +/* 168 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ColorSpace = void 0; + +var _util = __w_pdfjs_require__(6); + +var _primitives = __w_pdfjs_require__(155); + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) { + var COMPONENTS = 3; + alpha01 = alpha01 !== 1 ? 0 : alpha01; + var xRatio = w1 / w2; + var yRatio = h1 / h2; + var newIndex = 0, + oldIndex; + var xScaled = new Uint16Array(w2); + var w1Scanline = w1 * COMPONENTS; + + for (var i = 0; i < w2; i++) { + xScaled[i] = Math.floor(i * xRatio) * COMPONENTS; + } + + for (var _i = 0; _i < h2; _i++) { + var py = Math.floor(_i * yRatio) * w1Scanline; + + for (var j = 0; j < w2; j++) { + oldIndex = py + xScaled[j]; + dest[newIndex++] = src[oldIndex++]; + dest[newIndex++] = src[oldIndex++]; + dest[newIndex++] = src[oldIndex++]; + newIndex += alpha01; + } + } +} + +var ColorSpace = +/*#__PURE__*/ +function () { + function ColorSpace(name, numComps) { + _classCallCheck(this, ColorSpace); + + if (this.constructor === ColorSpace) { + (0, _util.unreachable)('Cannot initialize ColorSpace.'); + } + + this.name = name; + this.numComps = numComps; + } + + _createClass(ColorSpace, [{ + key: "getRgb", + value: function getRgb(src, srcOffset) { + var rgb = new Uint8ClampedArray(3); + this.getRgbItem(src, srcOffset, rgb, 0); + return rgb; + } + }, { + key: "getRgbItem", + value: function getRgbItem(src, srcOffset, dest, destOffset) { + (0, _util.unreachable)('Should not call ColorSpace.getRgbItem'); + } + }, { + key: "getRgbBuffer", + value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + (0, _util.unreachable)('Should not call ColorSpace.getRgbBuffer'); + } + }, { + key: "getOutputLength", + value: function getOutputLength(inputLength, alpha01) { + (0, _util.unreachable)('Should not call ColorSpace.getOutputLength'); + } + }, { + key: "isPassthrough", + value: function isPassthrough(bits) { + return false; + } + }, { + key: "isDefaultDecode", + value: function isDefaultDecode(decodeMap, bpc) { + return ColorSpace.isDefaultDecode(decodeMap, this.numComps); + } + }, { + key: "fillRgb", + value: function fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) { + var count = originalWidth * originalHeight; + var rgbBuf = null; + var numComponentColors = 1 << bpc; + var needsResizing = originalHeight !== height || originalWidth !== width; + + if (this.isPassthrough(bpc)) { + rgbBuf = comps; + } else if (this.numComps === 1 && count > numComponentColors && this.name !== 'DeviceGray' && this.name !== 'DeviceRGB') { + var allColors = bpc <= 8 ? new Uint8Array(numComponentColors) : new Uint16Array(numComponentColors); + + for (var i = 0; i < numComponentColors; i++) { + allColors[i] = i; + } + + var colorMap = new Uint8ClampedArray(numComponentColors * 3); + this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bpc, 0); + + if (!needsResizing) { + var destPos = 0; + + for (var _i2 = 0; _i2 < count; ++_i2) { + var key = comps[_i2] * 3; + dest[destPos++] = colorMap[key]; + dest[destPos++] = colorMap[key + 1]; + dest[destPos++] = colorMap[key + 2]; + destPos += alpha01; + } + } else { + rgbBuf = new Uint8Array(count * 3); + var rgbPos = 0; + + for (var _i3 = 0; _i3 < count; ++_i3) { + var _key = comps[_i3] * 3; + + rgbBuf[rgbPos++] = colorMap[_key]; + rgbBuf[rgbPos++] = colorMap[_key + 1]; + rgbBuf[rgbPos++] = colorMap[_key + 2]; + } + } + } else { + if (!needsResizing) { + this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01); + } else { + rgbBuf = new Uint8ClampedArray(count * 3); + this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, 0); + } + } + + if (rgbBuf) { + if (needsResizing) { + resizeRgbImage(rgbBuf, dest, originalWidth, originalHeight, width, height, alpha01); + } else { + var _destPos = 0, + _rgbPos = 0; + + for (var _i4 = 0, ii = width * actualHeight; _i4 < ii; _i4++) { + dest[_destPos++] = rgbBuf[_rgbPos++]; + dest[_destPos++] = rgbBuf[_rgbPos++]; + dest[_destPos++] = rgbBuf[_rgbPos++]; + _destPos += alpha01; + } + } + } + } + }, { + key: "usesZeroToOneRange", + get: function get() { + return (0, _util.shadow)(this, 'usesZeroToOneRange', true); + } + }], [{ + key: "parse", + value: function parse(cs, xref, res, pdfFunctionFactory) { + var IR = this.parseToIR(cs, xref, res, pdfFunctionFactory); + return this.fromIR(IR); + } + }, { + key: "fromIR", + value: function fromIR(IR) { + var name = Array.isArray(IR) ? IR[0] : IR; + var whitePoint, blackPoint, gamma; + + switch (name) { + case 'DeviceGrayCS': + return this.singletons.gray; + + case 'DeviceRgbCS': + return this.singletons.rgb; + + case 'DeviceCmykCS': + return this.singletons.cmyk; + + case 'CalGrayCS': + whitePoint = IR[1]; + blackPoint = IR[2]; + gamma = IR[3]; + return new CalGrayCS(whitePoint, blackPoint, gamma); + + case 'CalRGBCS': + whitePoint = IR[1]; + blackPoint = IR[2]; + gamma = IR[3]; + var matrix = IR[4]; + return new CalRGBCS(whitePoint, blackPoint, gamma, matrix); + + case 'PatternCS': + var basePatternCS = IR[1]; + + if (basePatternCS) { + basePatternCS = this.fromIR(basePatternCS); + } + + return new PatternCS(basePatternCS); + + case 'IndexedCS': + var baseIndexedCS = IR[1]; + var hiVal = IR[2]; + var lookup = IR[3]; + return new IndexedCS(this.fromIR(baseIndexedCS), hiVal, lookup); + + case 'AlternateCS': + var numComps = IR[1]; + var alt = IR[2]; + var tintFn = IR[3]; + return new AlternateCS(numComps, this.fromIR(alt), tintFn); + + case 'LabCS': + whitePoint = IR[1]; + blackPoint = IR[2]; + var range = IR[3]; + return new LabCS(whitePoint, blackPoint, range); + + default: + throw new _util.FormatError("Unknown colorspace name: ".concat(name)); + } + } + }, { + key: "parseToIR", + value: function parseToIR(cs, xref) { + var res = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + var pdfFunctionFactory = arguments.length > 3 ? arguments[3] : undefined; + cs = xref.fetchIfRef(cs); + + if ((0, _primitives.isName)(cs)) { + switch (cs.name) { + case 'DeviceGray': + case 'G': + return 'DeviceGrayCS'; + + case 'DeviceRGB': + case 'RGB': + return 'DeviceRgbCS'; + + case 'DeviceCMYK': + case 'CMYK': + return 'DeviceCmykCS'; + + case 'Pattern': + return ['PatternCS', null]; + + default: + if ((0, _primitives.isDict)(res)) { + var colorSpaces = res.get('ColorSpace'); + + if ((0, _primitives.isDict)(colorSpaces)) { + var resCS = colorSpaces.get(cs.name); + + if (resCS) { + if ((0, _primitives.isName)(resCS)) { + return this.parseToIR(resCS, xref, res, pdfFunctionFactory); + } + + cs = resCS; + break; + } + } + } + + throw new _util.FormatError("unrecognized colorspace ".concat(cs.name)); + } + } + + if (Array.isArray(cs)) { + var mode = xref.fetchIfRef(cs[0]).name; + var numComps, params, alt, whitePoint, blackPoint, gamma; + + switch (mode) { + case 'DeviceGray': + case 'G': + return 'DeviceGrayCS'; + + case 'DeviceRGB': + case 'RGB': + return 'DeviceRgbCS'; + + case 'DeviceCMYK': + case 'CMYK': + return 'DeviceCmykCS'; + + case 'CalGray': + params = xref.fetchIfRef(cs[1]); + whitePoint = params.getArray('WhitePoint'); + blackPoint = params.getArray('BlackPoint'); + gamma = params.get('Gamma'); + return ['CalGrayCS', whitePoint, blackPoint, gamma]; + + case 'CalRGB': + params = xref.fetchIfRef(cs[1]); + whitePoint = params.getArray('WhitePoint'); + blackPoint = params.getArray('BlackPoint'); + gamma = params.getArray('Gamma'); + var matrix = params.getArray('Matrix'); + return ['CalRGBCS', whitePoint, blackPoint, gamma, matrix]; + + case 'ICCBased': + var stream = xref.fetchIfRef(cs[1]); + var dict = stream.dict; + numComps = dict.get('N'); + alt = dict.get('Alternate'); + + if (alt) { + var altIR = this.parseToIR(alt, xref, res, pdfFunctionFactory); + var altCS = this.fromIR(altIR, pdfFunctionFactory); + + if (altCS.numComps === numComps) { + return altIR; + } + + (0, _util.warn)('ICCBased color space: Ignoring incorrect /Alternate entry.'); + } + + if (numComps === 1) { + return 'DeviceGrayCS'; + } else if (numComps === 3) { + return 'DeviceRgbCS'; + } else if (numComps === 4) { + return 'DeviceCmykCS'; + } + + break; + + case 'Pattern': + var basePatternCS = cs[1] || null; + + if (basePatternCS) { + basePatternCS = this.parseToIR(basePatternCS, xref, res, pdfFunctionFactory); + } + + return ['PatternCS', basePatternCS]; + + case 'Indexed': + case 'I': + var baseIndexedCS = this.parseToIR(cs[1], xref, res, pdfFunctionFactory); + var hiVal = xref.fetchIfRef(cs[2]) + 1; + var lookup = xref.fetchIfRef(cs[3]); + + if ((0, _primitives.isStream)(lookup)) { + lookup = lookup.getBytes(); + } + + return ['IndexedCS', baseIndexedCS, hiVal, lookup]; + + case 'Separation': + case 'DeviceN': + var name = xref.fetchIfRef(cs[1]); + numComps = Array.isArray(name) ? name.length : 1; + alt = this.parseToIR(cs[2], xref, res, pdfFunctionFactory); + var tintFn = pdfFunctionFactory.create(xref.fetchIfRef(cs[3])); + return ['AlternateCS', numComps, alt, tintFn]; + + case 'Lab': + params = xref.fetchIfRef(cs[1]); + whitePoint = params.getArray('WhitePoint'); + blackPoint = params.getArray('BlackPoint'); + var range = params.getArray('Range'); + return ['LabCS', whitePoint, blackPoint, range]; + + default: + throw new _util.FormatError("unimplemented color space object \"".concat(mode, "\"")); + } + } + + throw new _util.FormatError("unrecognized color space object: \"".concat(cs, "\"")); + } + }, { + key: "isDefaultDecode", + value: function isDefaultDecode(decode, numComps) { + if (!Array.isArray(decode)) { + return true; + } + + if (numComps * 2 !== decode.length) { + (0, _util.warn)('The decode map is not the correct length'); + return true; + } + + for (var i = 0, ii = decode.length; i < ii; i += 2) { + if (decode[i] !== 0 || decode[i + 1] !== 1) { + return false; + } + } + + return true; + } + }, { + key: "singletons", + get: function get() { + return (0, _util.shadow)(this, 'singletons', { + get gray() { + return (0, _util.shadow)(this, 'gray', new DeviceGrayCS()); + }, + + get rgb() { + return (0, _util.shadow)(this, 'rgb', new DeviceRgbCS()); + }, + + get cmyk() { + return (0, _util.shadow)(this, 'cmyk', new DeviceCmykCS()); + } + + }); + } + }]); + + return ColorSpace; +}(); + +exports.ColorSpace = ColorSpace; + +var AlternateCS = +/*#__PURE__*/ +function (_ColorSpace) { + _inherits(AlternateCS, _ColorSpace); + + function AlternateCS(numComps, base, tintFn) { + var _this; + + _classCallCheck(this, AlternateCS); + + _this = _possibleConstructorReturn(this, _getPrototypeOf(AlternateCS).call(this, 'Alternate', numComps)); + _this.base = base; + _this.tintFn = tintFn; + _this.tmpBuf = new Float32Array(base.numComps); + return _this; + } + + _createClass(AlternateCS, [{ + key: "getRgbItem", + value: function getRgbItem(src, srcOffset, dest, destOffset) { + var tmpBuf = this.tmpBuf; + this.tintFn(src, srcOffset, tmpBuf, 0); + this.base.getRgbItem(tmpBuf, 0, dest, destOffset); + } + }, { + key: "getRgbBuffer", + value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + var tintFn = this.tintFn; + var base = this.base; + var scale = 1 / ((1 << bits) - 1); + var baseNumComps = base.numComps; + var usesZeroToOneRange = base.usesZeroToOneRange; + var isPassthrough = (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0; + var pos = isPassthrough ? destOffset : 0; + var baseBuf = isPassthrough ? dest : new Uint8ClampedArray(baseNumComps * count); + var numComps = this.numComps; + var scaled = new Float32Array(numComps); + var tinted = new Float32Array(baseNumComps); + var i, j; + + for (i = 0; i < count; i++) { + for (j = 0; j < numComps; j++) { + scaled[j] = src[srcOffset++] * scale; + } + + tintFn(scaled, 0, tinted, 0); + + if (usesZeroToOneRange) { + for (j = 0; j < baseNumComps; j++) { + baseBuf[pos++] = tinted[j] * 255; + } + } else { + base.getRgbItem(tinted, 0, baseBuf, pos); + pos += baseNumComps; + } + } + + if (!isPassthrough) { + base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01); + } + } + }, { + key: "getOutputLength", + value: function getOutputLength(inputLength, alpha01) { + return this.base.getOutputLength(inputLength * this.base.numComps / this.numComps, alpha01); + } + }]); + + return AlternateCS; +}(ColorSpace); + +var PatternCS = +/*#__PURE__*/ +function (_ColorSpace2) { + _inherits(PatternCS, _ColorSpace2); + + function PatternCS(baseCS) { + var _this2; + + _classCallCheck(this, PatternCS); + + _this2 = _possibleConstructorReturn(this, _getPrototypeOf(PatternCS).call(this, 'Pattern', null)); + _this2.base = baseCS; + return _this2; + } + + _createClass(PatternCS, [{ + key: "isDefaultDecode", + value: function isDefaultDecode(decodeMap, bpc) { + (0, _util.unreachable)('Should not call PatternCS.isDefaultDecode'); + } + }]); + + return PatternCS; +}(ColorSpace); + +var IndexedCS = +/*#__PURE__*/ +function (_ColorSpace3) { + _inherits(IndexedCS, _ColorSpace3); + + function IndexedCS(base, highVal, lookup) { + var _this3; + + _classCallCheck(this, IndexedCS); + + _this3 = _possibleConstructorReturn(this, _getPrototypeOf(IndexedCS).call(this, 'Indexed', 1)); + _this3.base = base; + _this3.highVal = highVal; + var baseNumComps = base.numComps; + var length = baseNumComps * highVal; + + if ((0, _primitives.isStream)(lookup)) { + _this3.lookup = new Uint8Array(length); + var bytes = lookup.getBytes(length); + + _this3.lookup.set(bytes); + } else if ((0, _util.isString)(lookup)) { + _this3.lookup = new Uint8Array(length); + + for (var i = 0; i < length; ++i) { + _this3.lookup[i] = lookup.charCodeAt(i); + } + } else if (lookup instanceof Uint8Array) { + _this3.lookup = lookup; + } else { + throw new _util.FormatError("Unrecognized lookup table: ".concat(lookup)); + } + + return _this3; + } + + _createClass(IndexedCS, [{ + key: "getRgbItem", + value: function getRgbItem(src, srcOffset, dest, destOffset) { + var numComps = this.base.numComps; + var start = src[srcOffset] * numComps; + this.base.getRgbBuffer(this.lookup, start, 1, dest, destOffset, 8, 0); + } + }, { + key: "getRgbBuffer", + value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + var base = this.base; + var numComps = base.numComps; + var outputDelta = base.getOutputLength(numComps, alpha01); + var lookup = this.lookup; + + for (var i = 0; i < count; ++i) { + var lookupPos = src[srcOffset++] * numComps; + base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01); + destOffset += outputDelta; + } + } + }, { + key: "getOutputLength", + value: function getOutputLength(inputLength, alpha01) { + return this.base.getOutputLength(inputLength * this.base.numComps, alpha01); + } + }, { + key: "isDefaultDecode", + value: function isDefaultDecode(decodeMap, bpc) { + if (!Array.isArray(decodeMap)) { + return true; + } + + if (decodeMap.length !== 2) { + (0, _util.warn)('Decode map length is not correct'); + return true; + } + + if (!Number.isInteger(bpc) || bpc < 1) { + (0, _util.warn)('Bits per component is not correct'); + return true; + } + + return decodeMap[0] === 0 && decodeMap[1] === (1 << bpc) - 1; + } + }]); + + return IndexedCS; +}(ColorSpace); + +var DeviceGrayCS = +/*#__PURE__*/ +function (_ColorSpace4) { + _inherits(DeviceGrayCS, _ColorSpace4); + + function DeviceGrayCS() { + _classCallCheck(this, DeviceGrayCS); + + return _possibleConstructorReturn(this, _getPrototypeOf(DeviceGrayCS).call(this, 'DeviceGray', 1)); + } + + _createClass(DeviceGrayCS, [{ + key: "getRgbItem", + value: function getRgbItem(src, srcOffset, dest, destOffset) { + var c = src[srcOffset] * 255; + dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c; + } + }, { + key: "getRgbBuffer", + value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + var scale = 255 / ((1 << bits) - 1); + var j = srcOffset, + q = destOffset; + + for (var i = 0; i < count; ++i) { + var c = scale * src[j++]; + dest[q++] = c; + dest[q++] = c; + dest[q++] = c; + q += alpha01; + } + } + }, { + key: "getOutputLength", + value: function getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01); + } + }]); + + return DeviceGrayCS; +}(ColorSpace); + +var DeviceRgbCS = +/*#__PURE__*/ +function (_ColorSpace5) { + _inherits(DeviceRgbCS, _ColorSpace5); + + function DeviceRgbCS() { + _classCallCheck(this, DeviceRgbCS); + + return _possibleConstructorReturn(this, _getPrototypeOf(DeviceRgbCS).call(this, 'DeviceRGB', 3)); + } + + _createClass(DeviceRgbCS, [{ + key: "getRgbItem", + value: function getRgbItem(src, srcOffset, dest, destOffset) { + dest[destOffset] = src[srcOffset] * 255; + dest[destOffset + 1] = src[srcOffset + 1] * 255; + dest[destOffset + 2] = src[srcOffset + 2] * 255; + } + }, { + key: "getRgbBuffer", + value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + if (bits === 8 && alpha01 === 0) { + dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset); + return; + } + + var scale = 255 / ((1 << bits) - 1); + var j = srcOffset, + q = destOffset; + + for (var i = 0; i < count; ++i) { + dest[q++] = scale * src[j++]; + dest[q++] = scale * src[j++]; + dest[q++] = scale * src[j++]; + q += alpha01; + } + } + }, { + key: "getOutputLength", + value: function getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01) / 3 | 0; + } + }, { + key: "isPassthrough", + value: function isPassthrough(bits) { + return bits === 8; + } + }]); + + return DeviceRgbCS; +}(ColorSpace); + +var DeviceCmykCS = function DeviceCmykCSClosure() { + function convertToRgb(src, srcOffset, srcScale, dest, destOffset) { + var c = src[srcOffset] * srcScale; + var m = src[srcOffset + 1] * srcScale; + var y = src[srcOffset + 2] * srcScale; + var k = src[srcOffset + 3] * srcScale; + dest[destOffset] = 255 + c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k + -285.2331026137004) + m * (1.7149763477362134 * m - 5.6096736904047315 * y + -17.873870861415444 * k - 5.497006427196366) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) + k * (-21.86122147463605 * k - 189.48180835922747); + dest[destOffset + 1] = 255 + c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k + -79.2970844816548) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 190.9453302588951) + y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) + k * (-20.737325471181034 * k - 187.80453709719578); + dest[destOffset + 2] = 255 + c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k + -14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k + -193.58209356861505) + k * (-22.33816807309886 * k - 180.12613974708367); + } + + var DeviceCmykCS = + /*#__PURE__*/ + function (_ColorSpace6) { + _inherits(DeviceCmykCS, _ColorSpace6); + + function DeviceCmykCS() { + _classCallCheck(this, DeviceCmykCS); + + return _possibleConstructorReturn(this, _getPrototypeOf(DeviceCmykCS).call(this, 'DeviceCMYK', 4)); + } + + _createClass(DeviceCmykCS, [{ + key: "getRgbItem", + value: function getRgbItem(src, srcOffset, dest, destOffset) { + convertToRgb(src, srcOffset, 1, dest, destOffset); + } + }, { + key: "getRgbBuffer", + value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + var scale = 1 / ((1 << bits) - 1); + + for (var i = 0; i < count; i++) { + convertToRgb(src, srcOffset, scale, dest, destOffset); + srcOffset += 4; + destOffset += 3 + alpha01; + } + } + }, { + key: "getOutputLength", + value: function getOutputLength(inputLength, alpha01) { + return inputLength / 4 * (3 + alpha01) | 0; + } + }]); + + return DeviceCmykCS; + }(ColorSpace); + + return DeviceCmykCS; +}(); + +var CalGrayCS = function CalGrayCSClosure() { + function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) { + var A = src[srcOffset] * scale; + var AG = Math.pow(A, cs.G); + var L = cs.YW * AG; + var val = Math.max(295.8 * Math.pow(L, 0.333333333333333333) - 40.8, 0); + dest[destOffset] = val; + dest[destOffset + 1] = val; + dest[destOffset + 2] = val; + } + + var CalGrayCS = + /*#__PURE__*/ + function (_ColorSpace7) { + _inherits(CalGrayCS, _ColorSpace7); + + function CalGrayCS(whitePoint, blackPoint, gamma) { + var _this4; + + _classCallCheck(this, CalGrayCS); + + _this4 = _possibleConstructorReturn(this, _getPrototypeOf(CalGrayCS).call(this, 'CalGray', 1)); + + if (!whitePoint) { + throw new _util.FormatError('WhitePoint missing - required for color space CalGray'); + } + + blackPoint = blackPoint || [0, 0, 0]; + gamma = gamma || 1; + _this4.XW = whitePoint[0]; + _this4.YW = whitePoint[1]; + _this4.ZW = whitePoint[2]; + _this4.XB = blackPoint[0]; + _this4.YB = blackPoint[1]; + _this4.ZB = blackPoint[2]; + _this4.G = gamma; + + if (_this4.XW < 0 || _this4.ZW < 0 || _this4.YW !== 1) { + throw new _util.FormatError("Invalid WhitePoint components for ".concat(_this4.name) + ', no fallback available'); + } + + if (_this4.XB < 0 || _this4.YB < 0 || _this4.ZB < 0) { + (0, _util.info)("Invalid BlackPoint for ".concat(_this4.name, ", falling back to default.")); + _this4.XB = _this4.YB = _this4.ZB = 0; + } + + if (_this4.XB !== 0 || _this4.YB !== 0 || _this4.ZB !== 0) { + (0, _util.warn)("".concat(_this4.name, ", BlackPoint: XB: ").concat(_this4.XB, ", YB: ").concat(_this4.YB, ", ") + "ZB: ".concat(_this4.ZB, ", only default values are supported.")); + } + + if (_this4.G < 1) { + (0, _util.info)("Invalid Gamma: ".concat(_this4.G, " for ").concat(_this4.name, ", ") + 'falling back to default.'); + _this4.G = 1; + } + + return _this4; + } + + _createClass(CalGrayCS, [{ + key: "getRgbItem", + value: function getRgbItem(src, srcOffset, dest, destOffset) { + convertToRgb(this, src, srcOffset, dest, destOffset, 1); + } + }, { + key: "getRgbBuffer", + value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + var scale = 1 / ((1 << bits) - 1); + + for (var i = 0; i < count; ++i) { + convertToRgb(this, src, srcOffset, dest, destOffset, scale); + srcOffset += 1; + destOffset += 3 + alpha01; + } + } + }, { + key: "getOutputLength", + value: function getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01); + } + }]); + + return CalGrayCS; + }(ColorSpace); + + return CalGrayCS; +}(); + +var CalRGBCS = function CalRGBCSClosure() { + var BRADFORD_SCALE_MATRIX = new Float32Array([0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296]); + var BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912, -0.0085287, 0.0400428, 0.9684867]); + var SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([3.2404542, -1.5371385, -0.4985314, -0.9692660, 1.8760108, 0.0415560, 0.0556434, -0.2040259, 1.0572252]); + var FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]); + var tempNormalizeMatrix = new Float32Array(3); + var tempConvertMatrix1 = new Float32Array(3); + var tempConvertMatrix2 = new Float32Array(3); + var DECODE_L_CONSTANT = Math.pow((8 + 16) / 116, 3) / 8.0; + + function matrixProduct(a, b, result) { + result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; + result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2]; + result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2]; + } + + function convertToFlat(sourceWhitePoint, LMS, result) { + result[0] = LMS[0] * 1 / sourceWhitePoint[0]; + result[1] = LMS[1] * 1 / sourceWhitePoint[1]; + result[2] = LMS[2] * 1 / sourceWhitePoint[2]; + } + + function convertToD65(sourceWhitePoint, LMS, result) { + var D65X = 0.95047; + var D65Y = 1; + var D65Z = 1.08883; + result[0] = LMS[0] * D65X / sourceWhitePoint[0]; + result[1] = LMS[1] * D65Y / sourceWhitePoint[1]; + result[2] = LMS[2] * D65Z / sourceWhitePoint[2]; + } + + function sRGBTransferFunction(color) { + if (color <= 0.0031308) { + return adjustToRange(0, 1, 12.92 * color); + } + + return adjustToRange(0, 1, (1 + 0.055) * Math.pow(color, 1 / 2.4) - 0.055); + } + + function adjustToRange(min, max, value) { + return Math.max(min, Math.min(max, value)); + } + + function decodeL(L) { + if (L < 0) { + return -decodeL(-L); + } + + if (L > 8.0) { + return Math.pow((L + 16) / 116, 3); + } + + return L * DECODE_L_CONSTANT; + } + + function compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) { + if (sourceBlackPoint[0] === 0 && sourceBlackPoint[1] === 0 && sourceBlackPoint[2] === 0) { + result[0] = XYZ_Flat[0]; + result[1] = XYZ_Flat[1]; + result[2] = XYZ_Flat[2]; + return; + } + + var zeroDecodeL = decodeL(0); + var X_DST = zeroDecodeL; + var X_SRC = decodeL(sourceBlackPoint[0]); + var Y_DST = zeroDecodeL; + var Y_SRC = decodeL(sourceBlackPoint[1]); + var Z_DST = zeroDecodeL; + var Z_SRC = decodeL(sourceBlackPoint[2]); + var X_Scale = (1 - X_DST) / (1 - X_SRC); + var X_Offset = 1 - X_Scale; + var Y_Scale = (1 - Y_DST) / (1 - Y_SRC); + var Y_Offset = 1 - Y_Scale; + var Z_Scale = (1 - Z_DST) / (1 - Z_SRC); + var Z_Offset = 1 - Z_Scale; + result[0] = XYZ_Flat[0] * X_Scale + X_Offset; + result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset; + result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset; + } + + function normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) { + if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) { + result[0] = XYZ_In[0]; + result[1] = XYZ_In[1]; + result[2] = XYZ_In[2]; + return; + } + + var LMS = result; + matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS); + var LMS_Flat = tempNormalizeMatrix; + convertToFlat(sourceWhitePoint, LMS, LMS_Flat); + matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result); + } + + function normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) { + var LMS = result; + matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS); + var LMS_D65 = tempNormalizeMatrix; + convertToD65(sourceWhitePoint, LMS, LMS_D65); + matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result); + } + + function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) { + var A = adjustToRange(0, 1, src[srcOffset] * scale); + var B = adjustToRange(0, 1, src[srcOffset + 1] * scale); + var C = adjustToRange(0, 1, src[srcOffset + 2] * scale); + var AGR = Math.pow(A, cs.GR); + var BGG = Math.pow(B, cs.GG); + var CGB = Math.pow(C, cs.GB); + var X = cs.MXA * AGR + cs.MXB * BGG + cs.MXC * CGB; + var Y = cs.MYA * AGR + cs.MYB * BGG + cs.MYC * CGB; + var Z = cs.MZA * AGR + cs.MZB * BGG + cs.MZC * CGB; + var XYZ = tempConvertMatrix1; + XYZ[0] = X; + XYZ[1] = Y; + XYZ[2] = Z; + var XYZ_Flat = tempConvertMatrix2; + normalizeWhitePointToFlat(cs.whitePoint, XYZ, XYZ_Flat); + var XYZ_Black = tempConvertMatrix1; + compensateBlackPoint(cs.blackPoint, XYZ_Flat, XYZ_Black); + var XYZ_D65 = tempConvertMatrix2; + normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65); + var SRGB = tempConvertMatrix1; + matrixProduct(SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB); + dest[destOffset] = sRGBTransferFunction(SRGB[0]) * 255; + dest[destOffset + 1] = sRGBTransferFunction(SRGB[1]) * 255; + dest[destOffset + 2] = sRGBTransferFunction(SRGB[2]) * 255; + } + + var CalRGBCS = + /*#__PURE__*/ + function (_ColorSpace8) { + _inherits(CalRGBCS, _ColorSpace8); + + function CalRGBCS(whitePoint, blackPoint, gamma, matrix) { + var _this5; + + _classCallCheck(this, CalRGBCS); + + _this5 = _possibleConstructorReturn(this, _getPrototypeOf(CalRGBCS).call(this, 'CalRGB', 3)); + + if (!whitePoint) { + throw new _util.FormatError('WhitePoint missing - required for color space CalRGB'); + } + + blackPoint = blackPoint || new Float32Array(3); + gamma = gamma || new Float32Array([1, 1, 1]); + matrix = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]); + var XW = whitePoint[0]; + var YW = whitePoint[1]; + var ZW = whitePoint[2]; + _this5.whitePoint = whitePoint; + var XB = blackPoint[0]; + var YB = blackPoint[1]; + var ZB = blackPoint[2]; + _this5.blackPoint = blackPoint; + _this5.GR = gamma[0]; + _this5.GG = gamma[1]; + _this5.GB = gamma[2]; + _this5.MXA = matrix[0]; + _this5.MYA = matrix[1]; + _this5.MZA = matrix[2]; + _this5.MXB = matrix[3]; + _this5.MYB = matrix[4]; + _this5.MZB = matrix[5]; + _this5.MXC = matrix[6]; + _this5.MYC = matrix[7]; + _this5.MZC = matrix[8]; + + if (XW < 0 || ZW < 0 || YW !== 1) { + throw new _util.FormatError("Invalid WhitePoint components for ".concat(_this5.name) + ', no fallback available'); + } + + if (XB < 0 || YB < 0 || ZB < 0) { + (0, _util.info)("Invalid BlackPoint for ".concat(_this5.name, " [").concat(XB, ", ").concat(YB, ", ").concat(ZB, "], ") + 'falling back to default.'); + _this5.blackPoint = new Float32Array(3); + } + + if (_this5.GR < 0 || _this5.GG < 0 || _this5.GB < 0) { + (0, _util.info)("Invalid Gamma [".concat(_this5.GR, ", ").concat(_this5.GG, ", ").concat(_this5.GB, "] for ") + "".concat(_this5.name, ", falling back to default.")); + _this5.GR = _this5.GG = _this5.GB = 1; + } + + return _this5; + } + + _createClass(CalRGBCS, [{ + key: "getRgbItem", + value: function getRgbItem(src, srcOffset, dest, destOffset) { + convertToRgb(this, src, srcOffset, dest, destOffset, 1); + } + }, { + key: "getRgbBuffer", + value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + var scale = 1 / ((1 << bits) - 1); + + for (var i = 0; i < count; ++i) { + convertToRgb(this, src, srcOffset, dest, destOffset, scale); + srcOffset += 3; + destOffset += 3 + alpha01; + } + } + }, { + key: "getOutputLength", + value: function getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01) / 3 | 0; + } + }]); + + return CalRGBCS; + }(ColorSpace); + + return CalRGBCS; +}(); + +var LabCS = function LabCSClosure() { + function fn_g(x) { + var result; + + if (x >= 6 / 29) { + result = x * x * x; + } else { + result = 108 / 841 * (x - 4 / 29); + } + + return result; + } + + function decode(value, high1, low2, high2) { + return low2 + value * (high2 - low2) / high1; + } + + function convertToRgb(cs, src, srcOffset, maxVal, dest, destOffset) { + var Ls = src[srcOffset]; + var as = src[srcOffset + 1]; + var bs = src[srcOffset + 2]; + + if (maxVal !== false) { + Ls = decode(Ls, maxVal, 0, 100); + as = decode(as, maxVal, cs.amin, cs.amax); + bs = decode(bs, maxVal, cs.bmin, cs.bmax); + } + + as = as > cs.amax ? cs.amax : as < cs.amin ? cs.amin : as; + bs = bs > cs.bmax ? cs.bmax : bs < cs.bmin ? cs.bmin : bs; + var M = (Ls + 16) / 116; + var L = M + as / 500; + var N = M - bs / 200; + var X = cs.XW * fn_g(L); + var Y = cs.YW * fn_g(M); + var Z = cs.ZW * fn_g(N); + var r, g, b; + + if (cs.ZW < 1) { + r = X * 3.1339 + Y * -1.6170 + Z * -0.4906; + g = X * -0.9785 + Y * 1.9160 + Z * 0.0333; + b = X * 0.0720 + Y * -0.2290 + Z * 1.4057; + } else { + r = X * 3.2406 + Y * -1.5372 + Z * -0.4986; + g = X * -0.9689 + Y * 1.8758 + Z * 0.0415; + b = X * 0.0557 + Y * -0.2040 + Z * 1.0570; + } + + dest[destOffset] = Math.sqrt(r) * 255; + dest[destOffset + 1] = Math.sqrt(g) * 255; + dest[destOffset + 2] = Math.sqrt(b) * 255; + } + + var LabCS = + /*#__PURE__*/ + function (_ColorSpace9) { + _inherits(LabCS, _ColorSpace9); + + function LabCS(whitePoint, blackPoint, range) { + var _this6; + + _classCallCheck(this, LabCS); + + _this6 = _possibleConstructorReturn(this, _getPrototypeOf(LabCS).call(this, 'Lab', 3)); + + if (!whitePoint) { + throw new _util.FormatError('WhitePoint missing - required for color space Lab'); + } + + blackPoint = blackPoint || [0, 0, 0]; + range = range || [-100, 100, -100, 100]; + _this6.XW = whitePoint[0]; + _this6.YW = whitePoint[1]; + _this6.ZW = whitePoint[2]; + _this6.amin = range[0]; + _this6.amax = range[1]; + _this6.bmin = range[2]; + _this6.bmax = range[3]; + _this6.XB = blackPoint[0]; + _this6.YB = blackPoint[1]; + _this6.ZB = blackPoint[2]; + + if (_this6.XW < 0 || _this6.ZW < 0 || _this6.YW !== 1) { + throw new _util.FormatError('Invalid WhitePoint components, no fallback available'); + } + + if (_this6.XB < 0 || _this6.YB < 0 || _this6.ZB < 0) { + (0, _util.info)('Invalid BlackPoint, falling back to default'); + _this6.XB = _this6.YB = _this6.ZB = 0; + } + + if (_this6.amin > _this6.amax || _this6.bmin > _this6.bmax) { + (0, _util.info)('Invalid Range, falling back to defaults'); + _this6.amin = -100; + _this6.amax = 100; + _this6.bmin = -100; + _this6.bmax = 100; + } + + return _this6; + } + + _createClass(LabCS, [{ + key: "getRgbItem", + value: function getRgbItem(src, srcOffset, dest, destOffset) { + convertToRgb(this, src, srcOffset, false, dest, destOffset); + } + }, { + key: "getRgbBuffer", + value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) { + var maxVal = (1 << bits) - 1; + + for (var i = 0; i < count; i++) { + convertToRgb(this, src, srcOffset, maxVal, dest, destOffset); + srcOffset += 3; + destOffset += 3 + alpha01; + } + } + }, { + key: "getOutputLength", + value: function getOutputLength(inputLength, alpha01) { + return inputLength * (3 + alpha01) / 3 | 0; + } + }, { + key: "isDefaultDecode", + value: function isDefaultDecode(decodeMap, bpc) { + return true; + } + }, { + key: "usesZeroToOneRange", + get: function get() { + return (0, _util.shadow)(this, 'usesZeroToOneRange', false); + } + }]); + + return LabCS; + }(ColorSpace); + + return LabCS; +}(); + +/***/ }), +/* 169 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.AnnotationFactory = exports.AnnotationBorderStyle = exports.Annotation = void 0; + +var _util = __w_pdfjs_require__(6); + +var _obj = __w_pdfjs_require__(154); + +var _primitives = __w_pdfjs_require__(155); + +var _colorspace = __w_pdfjs_require__(168); + +var _operator_list = __w_pdfjs_require__(170); + +var _stream = __w_pdfjs_require__(157); + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var AnnotationFactory = +/*#__PURE__*/ +function () { + function AnnotationFactory() { + _classCallCheck(this, AnnotationFactory); + } + + _createClass(AnnotationFactory, null, [{ + key: "create", + value: function create(xref, ref, pdfManager, idFactory) { + return pdfManager.ensure(this, '_create', [xref, ref, pdfManager, idFactory]); + } + }, { + key: "_create", + value: function _create(xref, ref, pdfManager, idFactory) { + var dict = xref.fetchIfRef(ref); + + if (!(0, _primitives.isDict)(dict)) { + return; + } + + var id = (0, _primitives.isRef)(ref) ? ref.toString() : 'annot_' + idFactory.createObjId(); + var subtype = dict.get('Subtype'); + subtype = (0, _primitives.isName)(subtype) ? subtype.name : null; + var parameters = { + xref: xref, + dict: dict, + ref: (0, _primitives.isRef)(ref) ? ref : null, + subtype: subtype, + id: id, + pdfManager: pdfManager + }; + + switch (subtype) { + case 'Link': + return new LinkAnnotation(parameters); + + case 'Text': + return new TextAnnotation(parameters); + + case 'Widget': + var fieldType = (0, _util.getInheritableProperty)({ + dict: dict, + key: 'FT' + }); + fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null; + + switch (fieldType) { + case 'Tx': + return new TextWidgetAnnotation(parameters); + + case 'Btn': + return new ButtonWidgetAnnotation(parameters); + + case 'Ch': + return new ChoiceWidgetAnnotation(parameters); + } + + (0, _util.warn)('Unimplemented widget field type "' + fieldType + '", ' + 'falling back to base field type.'); + return new WidgetAnnotation(parameters); + + case 'Popup': + return new PopupAnnotation(parameters); + + case 'Line': + return new LineAnnotation(parameters); + + case 'Square': + return new SquareAnnotation(parameters); + + case 'Circle': + return new CircleAnnotation(parameters); + + case 'PolyLine': + return new PolylineAnnotation(parameters); + + case 'Polygon': + return new PolygonAnnotation(parameters); + + case 'Ink': + return new InkAnnotation(parameters); + + case 'Highlight': + return new HighlightAnnotation(parameters); + + case 'Underline': + return new UnderlineAnnotation(parameters); + + case 'Squiggly': + return new SquigglyAnnotation(parameters); + + case 'StrikeOut': + return new StrikeOutAnnotation(parameters); + + case 'Stamp': + return new StampAnnotation(parameters); + + case 'FileAttachment': + return new FileAttachmentAnnotation(parameters); + + default: + if (!subtype) { + (0, _util.warn)('Annotation is missing the required /Subtype.'); + } else { + (0, _util.warn)('Unimplemented annotation type "' + subtype + '", ' + 'falling back to base annotation.'); + } + + return new Annotation(parameters); + } + } + }]); + + return AnnotationFactory; +}(); + +exports.AnnotationFactory = AnnotationFactory; + +function getTransformMatrix(rect, bbox, matrix) { + var bounds = _util.Util.getAxialAlignedBoundingBox(bbox, matrix); + + var minX = bounds[0]; + var minY = bounds[1]; + var maxX = bounds[2]; + var maxY = bounds[3]; + + if (minX === maxX || minY === maxY) { + return [1, 0, 0, 1, rect[0], rect[1]]; + } + + var xRatio = (rect[2] - rect[0]) / (maxX - minX); + var yRatio = (rect[3] - rect[1]) / (maxY - minY); + return [xRatio, 0, 0, yRatio, rect[0] - minX * xRatio, rect[1] - minY * yRatio]; +} + +var Annotation = +/*#__PURE__*/ +function () { + function Annotation(params) { + _classCallCheck(this, Annotation); + + var dict = params.dict; + this.setFlags(dict.get('F')); + this.setRectangle(dict.getArray('Rect')); + this.setColor(dict.getArray('C')); + this.setBorderStyle(dict); + this.setAppearance(dict); + this.data = { + annotationFlags: this.flags, + borderStyle: this.borderStyle, + color: this.color, + hasAppearance: !!this.appearance, + id: params.id, + rect: this.rectangle, + subtype: params.subtype + }; + } + + _createClass(Annotation, [{ + key: "_hasFlag", + value: function _hasFlag(flags, flag) { + return !!(flags & flag); + } + }, { + key: "_isViewable", + value: function _isViewable(flags) { + return !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN) && !this._hasFlag(flags, _util.AnnotationFlag.NOVIEW); + } + }, { + key: "_isPrintable", + value: function _isPrintable(flags) { + return this._hasFlag(flags, _util.AnnotationFlag.PRINT) && !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN); + } + }, { + key: "setFlags", + value: function setFlags(flags) { + this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0; + } + }, { + key: "hasFlag", + value: function hasFlag(flag) { + return this._hasFlag(this.flags, flag); + } + }, { + key: "setRectangle", + value: function setRectangle(rectangle) { + if (Array.isArray(rectangle) && rectangle.length === 4) { + this.rectangle = _util.Util.normalizeRect(rectangle); + } else { + this.rectangle = [0, 0, 0, 0]; + } + } + }, { + key: "setColor", + value: function setColor(color) { + var rgbColor = new Uint8ClampedArray(3); + + if (!Array.isArray(color)) { + this.color = rgbColor; + return; + } + + switch (color.length) { + case 0: + this.color = null; + break; + + case 1: + _colorspace.ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0); + + this.color = rgbColor; + break; + + case 3: + _colorspace.ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0); + + this.color = rgbColor; + break; + + case 4: + _colorspace.ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0); + + this.color = rgbColor; + break; + + default: + this.color = rgbColor; + break; + } + } + }, { + key: "setBorderStyle", + value: function setBorderStyle(borderStyle) { + this.borderStyle = new AnnotationBorderStyle(); + + if (!(0, _primitives.isDict)(borderStyle)) { + return; + } + + if (borderStyle.has('BS')) { + var dict = borderStyle.get('BS'); + var dictType = dict.get('Type'); + + if (!dictType || (0, _primitives.isName)(dictType, 'Border')) { + this.borderStyle.setWidth(dict.get('W')); + this.borderStyle.setStyle(dict.get('S')); + this.borderStyle.setDashArray(dict.getArray('D')); + } + } else if (borderStyle.has('Border')) { + var array = borderStyle.getArray('Border'); + + if (Array.isArray(array) && array.length >= 3) { + this.borderStyle.setHorizontalCornerRadius(array[0]); + this.borderStyle.setVerticalCornerRadius(array[1]); + this.borderStyle.setWidth(array[2]); + + if (array.length === 4) { + this.borderStyle.setDashArray(array[3]); + } + } + } else { + this.borderStyle.setWidth(0); + } + } + }, { + key: "setAppearance", + value: function setAppearance(dict) { + this.appearance = null; + var appearanceStates = dict.get('AP'); + + if (!(0, _primitives.isDict)(appearanceStates)) { + return; + } + + var normalAppearanceState = appearanceStates.get('N'); + + if ((0, _primitives.isStream)(normalAppearanceState)) { + this.appearance = normalAppearanceState; + return; + } + + if (!(0, _primitives.isDict)(normalAppearanceState)) { + return; + } + + var as = dict.get('AS'); + + if (!(0, _primitives.isName)(as) || !normalAppearanceState.has(as.name)) { + return; + } + + this.appearance = normalAppearanceState.get(as.name); + } + }, { + key: "_preparePopup", + value: function _preparePopup(dict) { + if (!dict.has('C')) { + this.data.color = null; + } + + this.data.hasPopup = dict.has('Popup'); + this.data.title = (0, _util.stringToPDFString)(dict.get('T') || ''); + this.data.contents = (0, _util.stringToPDFString)(dict.get('Contents') || ''); + } + }, { + key: "loadResources", + value: function loadResources(keys) { + return this.appearance.dict.getAsync('Resources').then(function (resources) { + if (!resources) { + return; + } + + var objectLoader = new _obj.ObjectLoader(resources, keys, resources.xref); + return objectLoader.load().then(function () { + return resources; + }); + }); + } + }, { + key: "getOperatorList", + value: function getOperatorList(evaluator, task, renderForms) { + var _this = this; + + if (!this.appearance) { + return Promise.resolve(new _operator_list.OperatorList()); + } + + var data = this.data; + var appearanceDict = this.appearance.dict; + var resourcesPromise = this.loadResources(['ExtGState', 'ColorSpace', 'Pattern', 'Shading', 'XObject', 'Font']); + var bbox = appearanceDict.getArray('BBox') || [0, 0, 1, 1]; + var matrix = appearanceDict.getArray('Matrix') || [1, 0, 0, 1, 0, 0]; + var transform = getTransformMatrix(data.rect, bbox, matrix); + return resourcesPromise.then(function (resources) { + var opList = new _operator_list.OperatorList(); + opList.addOp(_util.OPS.beginAnnotation, [data.rect, transform, matrix]); + return evaluator.getOperatorList({ + stream: _this.appearance, + task: task, + resources: resources, + operatorList: opList + }).then(function () { + opList.addOp(_util.OPS.endAnnotation, []); + + _this.appearance.reset(); + + return opList; + }); + }); + } + }, { + key: "viewable", + get: function get() { + if (this.flags === 0) { + return true; + } + + return this._isViewable(this.flags); + } + }, { + key: "printable", + get: function get() { + if (this.flags === 0) { + return false; + } + + return this._isPrintable(this.flags); + } + }]); + + return Annotation; +}(); + +exports.Annotation = Annotation; + +var AnnotationBorderStyle = +/*#__PURE__*/ +function () { + function AnnotationBorderStyle() { + _classCallCheck(this, AnnotationBorderStyle); + + this.width = 1; + this.style = _util.AnnotationBorderStyleType.SOLID; + this.dashArray = [3]; + this.horizontalCornerRadius = 0; + this.verticalCornerRadius = 0; + } + + _createClass(AnnotationBorderStyle, [{ + key: "setWidth", + value: function setWidth(width) { + if ((0, _primitives.isName)(width)) { + this.width = 0; + return; + } + + if (Number.isInteger(width)) { + this.width = width; + } + } + }, { + key: "setStyle", + value: function setStyle(style) { + if (!(0, _primitives.isName)(style)) { + return; + } + + switch (style.name) { + case 'S': + this.style = _util.AnnotationBorderStyleType.SOLID; + break; + + case 'D': + this.style = _util.AnnotationBorderStyleType.DASHED; + break; + + case 'B': + this.style = _util.AnnotationBorderStyleType.BEVELED; + break; + + case 'I': + this.style = _util.AnnotationBorderStyleType.INSET; + break; + + case 'U': + this.style = _util.AnnotationBorderStyleType.UNDERLINE; + break; + + default: + break; + } + } + }, { + key: "setDashArray", + value: function setDashArray(dashArray) { + if (Array.isArray(dashArray) && dashArray.length > 0) { + var isValid = true; + var allZeros = true; + + for (var i = 0, len = dashArray.length; i < len; i++) { + var element = dashArray[i]; + var validNumber = +element >= 0; + + if (!validNumber) { + isValid = false; + break; + } else if (element > 0) { + allZeros = false; + } + } + + if (isValid && !allZeros) { + this.dashArray = dashArray; + } else { + this.width = 0; + } + } else if (dashArray) { + this.width = 0; + } + } + }, { + key: "setHorizontalCornerRadius", + value: function setHorizontalCornerRadius(radius) { + if (Number.isInteger(radius)) { + this.horizontalCornerRadius = radius; + } + } + }, { + key: "setVerticalCornerRadius", + value: function setVerticalCornerRadius(radius) { + if (Number.isInteger(radius)) { + this.verticalCornerRadius = radius; + } + } + }]); + + return AnnotationBorderStyle; +}(); + +exports.AnnotationBorderStyle = AnnotationBorderStyle; + +var WidgetAnnotation = +/*#__PURE__*/ +function (_Annotation) { + _inherits(WidgetAnnotation, _Annotation); + + function WidgetAnnotation(params) { + var _this2; + + _classCallCheck(this, WidgetAnnotation); + + _this2 = _possibleConstructorReturn(this, _getPrototypeOf(WidgetAnnotation).call(this, params)); + var dict = params.dict; + var data = _this2.data; + data.annotationType = _util.AnnotationType.WIDGET; + data.fieldName = _this2._constructFieldName(dict); + data.fieldValue = (0, _util.getInheritableProperty)({ + dict: dict, + key: 'V', + getArray: true + }); + data.alternativeText = (0, _util.stringToPDFString)(dict.get('TU') || ''); + data.defaultAppearance = (0, _util.getInheritableProperty)({ + dict: dict, + key: 'DA' + }) || ''; + var fieldType = (0, _util.getInheritableProperty)({ + dict: dict, + key: 'FT' + }); + data.fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null; + _this2.fieldResources = (0, _util.getInheritableProperty)({ + dict: dict, + key: 'DR' + }) || _primitives.Dict.empty; + data.fieldFlags = (0, _util.getInheritableProperty)({ + dict: dict, + key: 'Ff' + }); + + if (!Number.isInteger(data.fieldFlags) || data.fieldFlags < 0) { + data.fieldFlags = 0; + } + + data.readOnly = _this2.hasFieldFlag(_util.AnnotationFieldFlag.READONLY); + + if (data.fieldType === 'Sig') { + data.fieldValue = null; + + _this2.setFlags(_util.AnnotationFlag.HIDDEN); + } + + return _this2; + } + + _createClass(WidgetAnnotation, [{ + key: "_constructFieldName", + value: function _constructFieldName(dict) { + if (!dict.has('T') && !dict.has('Parent')) { + (0, _util.warn)('Unknown field name, falling back to empty field name.'); + return ''; + } + + if (!dict.has('Parent')) { + return (0, _util.stringToPDFString)(dict.get('T')); + } + + var fieldName = []; + + if (dict.has('T')) { + fieldName.unshift((0, _util.stringToPDFString)(dict.get('T'))); + } + + var loopDict = dict; + + while (loopDict.has('Parent')) { + loopDict = loopDict.get('Parent'); + + if (!(0, _primitives.isDict)(loopDict)) { + break; + } + + if (loopDict.has('T')) { + fieldName.unshift((0, _util.stringToPDFString)(loopDict.get('T'))); + } + } + + return fieldName.join('.'); + } + }, { + key: "hasFieldFlag", + value: function hasFieldFlag(flag) { + return !!(this.data.fieldFlags & flag); + } + }, { + key: "getOperatorList", + value: function getOperatorList(evaluator, task, renderForms) { + if (renderForms) { + return Promise.resolve(new _operator_list.OperatorList()); + } + + return _get(_getPrototypeOf(WidgetAnnotation.prototype), "getOperatorList", this).call(this, evaluator, task, renderForms); + } + }]); + + return WidgetAnnotation; +}(Annotation); + +var TextWidgetAnnotation = +/*#__PURE__*/ +function (_WidgetAnnotation) { + _inherits(TextWidgetAnnotation, _WidgetAnnotation); + + function TextWidgetAnnotation(params) { + var _this3; + + _classCallCheck(this, TextWidgetAnnotation); + + _this3 = _possibleConstructorReturn(this, _getPrototypeOf(TextWidgetAnnotation).call(this, params)); + var dict = params.dict; + _this3.data.fieldValue = (0, _util.stringToPDFString)(_this3.data.fieldValue || ''); + var alignment = (0, _util.getInheritableProperty)({ + dict: dict, + key: 'Q' + }); + + if (!Number.isInteger(alignment) || alignment < 0 || alignment > 2) { + alignment = null; + } + + _this3.data.textAlignment = alignment; + var maximumLength = (0, _util.getInheritableProperty)({ + dict: dict, + key: 'MaxLen' + }); + + if (!Number.isInteger(maximumLength) || maximumLength < 0) { + maximumLength = null; + } + + _this3.data.maxLen = maximumLength; + _this3.data.multiLine = _this3.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE); + _this3.data.comb = _this3.hasFieldFlag(_util.AnnotationFieldFlag.COMB) && !_this3.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE) && !_this3.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD) && !_this3.hasFieldFlag(_util.AnnotationFieldFlag.FILESELECT) && _this3.data.maxLen !== null; + return _this3; + } + + _createClass(TextWidgetAnnotation, [{ + key: "getOperatorList", + value: function getOperatorList(evaluator, task, renderForms) { + if (renderForms || this.appearance) { + return _get(_getPrototypeOf(TextWidgetAnnotation.prototype), "getOperatorList", this).call(this, evaluator, task, renderForms); + } + + var operatorList = new _operator_list.OperatorList(); + + if (!this.data.defaultAppearance) { + return Promise.resolve(operatorList); + } + + var stream = new _stream.Stream((0, _util.stringToBytes)(this.data.defaultAppearance)); + return evaluator.getOperatorList({ + stream: stream, + task: task, + resources: this.fieldResources, + operatorList: operatorList + }).then(function () { + return operatorList; + }); + } + }]); + + return TextWidgetAnnotation; +}(WidgetAnnotation); + +var ButtonWidgetAnnotation = +/*#__PURE__*/ +function (_WidgetAnnotation2) { + _inherits(ButtonWidgetAnnotation, _WidgetAnnotation2); + + function ButtonWidgetAnnotation(params) { + var _this4; + + _classCallCheck(this, ButtonWidgetAnnotation); + + _this4 = _possibleConstructorReturn(this, _getPrototypeOf(ButtonWidgetAnnotation).call(this, params)); + _this4.data.checkBox = !_this4.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !_this4.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON); + _this4.data.radioButton = _this4.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !_this4.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON); + _this4.data.pushButton = _this4.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON); + + if (_this4.data.checkBox) { + _this4._processCheckBox(params); + } else if (_this4.data.radioButton) { + _this4._processRadioButton(params); + } else if (_this4.data.pushButton) { + _this4._processPushButton(params); + } else { + (0, _util.warn)('Invalid field flags for button widget annotation'); + } + + return _this4; + } + + _createClass(ButtonWidgetAnnotation, [{ + key: "_processCheckBox", + value: function _processCheckBox(params) { + if ((0, _primitives.isName)(this.data.fieldValue)) { + this.data.fieldValue = this.data.fieldValue.name; + } + + var customAppearance = params.dict.get('AP'); + + if (!(0, _primitives.isDict)(customAppearance)) { + return; + } + + var exportValueOptionsDict = customAppearance.get('D'); + + if (!(0, _primitives.isDict)(exportValueOptionsDict)) { + return; + } + + var exportValues = exportValueOptionsDict.getKeys(); + var hasCorrectOptionCount = exportValues.length === 2; + + if (!hasCorrectOptionCount) { + return; + } + + this.data.exportValue = exportValues[0] === 'Off' ? exportValues[1] : exportValues[0]; + } + }, { + key: "_processRadioButton", + value: function _processRadioButton(params) { + this.data.fieldValue = this.data.buttonValue = null; + var fieldParent = params.dict.get('Parent'); + + if ((0, _primitives.isDict)(fieldParent) && fieldParent.has('V')) { + var fieldParentValue = fieldParent.get('V'); + + if ((0, _primitives.isName)(fieldParentValue)) { + this.data.fieldValue = fieldParentValue.name; + } + } + + var appearanceStates = params.dict.get('AP'); + + if (!(0, _primitives.isDict)(appearanceStates)) { + return; + } + + var normalAppearanceState = appearanceStates.get('N'); + + if (!(0, _primitives.isDict)(normalAppearanceState)) { + return; + } + + var keys = normalAppearanceState.getKeys(); + + for (var i = 0, ii = keys.length; i < ii; i++) { + if (keys[i] !== 'Off') { + this.data.buttonValue = keys[i]; + break; + } + } + } + }, { + key: "_processPushButton", + value: function _processPushButton(params) { + if (!params.dict.has('A')) { + (0, _util.warn)('Push buttons without action dictionaries are not supported'); + return; + } + + _obj.Catalog.parseDestDictionary({ + destDict: params.dict, + resultObj: this.data, + docBaseUrl: params.pdfManager.docBaseUrl + }); + } + }]); + + return ButtonWidgetAnnotation; +}(WidgetAnnotation); + +var ChoiceWidgetAnnotation = +/*#__PURE__*/ +function (_WidgetAnnotation3) { + _inherits(ChoiceWidgetAnnotation, _WidgetAnnotation3); + + function ChoiceWidgetAnnotation(params) { + var _this5; + + _classCallCheck(this, ChoiceWidgetAnnotation); + + _this5 = _possibleConstructorReturn(this, _getPrototypeOf(ChoiceWidgetAnnotation).call(this, params)); + _this5.data.options = []; + var options = (0, _util.getInheritableProperty)({ + dict: params.dict, + key: 'Opt' + }); + + if (Array.isArray(options)) { + var xref = params.xref; + + for (var i = 0, ii = options.length; i < ii; i++) { + var option = xref.fetchIfRef(options[i]); + var isOptionArray = Array.isArray(option); + _this5.data.options[i] = { + exportValue: isOptionArray ? xref.fetchIfRef(option[0]) : option, + displayValue: (0, _util.stringToPDFString)(isOptionArray ? xref.fetchIfRef(option[1]) : option) + }; + } + } + + if (!Array.isArray(_this5.data.fieldValue)) { + _this5.data.fieldValue = [_this5.data.fieldValue]; + } + + _this5.data.combo = _this5.hasFieldFlag(_util.AnnotationFieldFlag.COMBO); + _this5.data.multiSelect = _this5.hasFieldFlag(_util.AnnotationFieldFlag.MULTISELECT); + return _this5; + } + + return ChoiceWidgetAnnotation; +}(WidgetAnnotation); + +var TextAnnotation = +/*#__PURE__*/ +function (_Annotation2) { + _inherits(TextAnnotation, _Annotation2); + + function TextAnnotation(parameters) { + var _this6; + + _classCallCheck(this, TextAnnotation); + + var DEFAULT_ICON_SIZE = 22; + _this6 = _possibleConstructorReturn(this, _getPrototypeOf(TextAnnotation).call(this, parameters)); + _this6.data.annotationType = _util.AnnotationType.TEXT; + + if (_this6.data.hasAppearance) { + _this6.data.name = 'NoIcon'; + } else { + _this6.data.rect[1] = _this6.data.rect[3] - DEFAULT_ICON_SIZE; + _this6.data.rect[2] = _this6.data.rect[0] + DEFAULT_ICON_SIZE; + _this6.data.name = parameters.dict.has('Name') ? parameters.dict.get('Name').name : 'Note'; + } + + _this6._preparePopup(parameters.dict); + + return _this6; + } + + return TextAnnotation; +}(Annotation); + +var LinkAnnotation = +/*#__PURE__*/ +function (_Annotation3) { + _inherits(LinkAnnotation, _Annotation3); + + function LinkAnnotation(params) { + var _this7; + + _classCallCheck(this, LinkAnnotation); + + _this7 = _possibleConstructorReturn(this, _getPrototypeOf(LinkAnnotation).call(this, params)); + _this7.data.annotationType = _util.AnnotationType.LINK; + + _obj.Catalog.parseDestDictionary({ + destDict: params.dict, + resultObj: _this7.data, + docBaseUrl: params.pdfManager.docBaseUrl + }); + + return _this7; + } + + return LinkAnnotation; +}(Annotation); + +var PopupAnnotation = +/*#__PURE__*/ +function (_Annotation4) { + _inherits(PopupAnnotation, _Annotation4); + + function PopupAnnotation(parameters) { + var _this8; + + _classCallCheck(this, PopupAnnotation); + + _this8 = _possibleConstructorReturn(this, _getPrototypeOf(PopupAnnotation).call(this, parameters)); + _this8.data.annotationType = _util.AnnotationType.POPUP; + var dict = parameters.dict; + var parentItem = dict.get('Parent'); + + if (!parentItem) { + (0, _util.warn)('Popup annotation has a missing or invalid parent annotation.'); + return _possibleConstructorReturn(_this8); + } + + var parentSubtype = parentItem.get('Subtype'); + _this8.data.parentType = (0, _primitives.isName)(parentSubtype) ? parentSubtype.name : null; + _this8.data.parentId = dict.getRaw('Parent').toString(); + _this8.data.title = (0, _util.stringToPDFString)(parentItem.get('T') || ''); + _this8.data.contents = (0, _util.stringToPDFString)(parentItem.get('Contents') || ''); + + if (!parentItem.has('C')) { + _this8.data.color = null; + } else { + _this8.setColor(parentItem.getArray('C')); + + _this8.data.color = _this8.color; + } + + if (!_this8.viewable) { + var parentFlags = parentItem.get('F'); + + if (_this8._isViewable(parentFlags)) { + _this8.setFlags(parentFlags); + } + } + + return _this8; + } + + return PopupAnnotation; +}(Annotation); + +var LineAnnotation = +/*#__PURE__*/ +function (_Annotation5) { + _inherits(LineAnnotation, _Annotation5); + + function LineAnnotation(parameters) { + var _this9; + + _classCallCheck(this, LineAnnotation); + + _this9 = _possibleConstructorReturn(this, _getPrototypeOf(LineAnnotation).call(this, parameters)); + _this9.data.annotationType = _util.AnnotationType.LINE; + var dict = parameters.dict; + _this9.data.lineCoordinates = _util.Util.normalizeRect(dict.getArray('L')); + + _this9._preparePopup(dict); + + return _this9; + } + + return LineAnnotation; +}(Annotation); + +var SquareAnnotation = +/*#__PURE__*/ +function (_Annotation6) { + _inherits(SquareAnnotation, _Annotation6); + + function SquareAnnotation(parameters) { + var _this10; + + _classCallCheck(this, SquareAnnotation); + + _this10 = _possibleConstructorReturn(this, _getPrototypeOf(SquareAnnotation).call(this, parameters)); + _this10.data.annotationType = _util.AnnotationType.SQUARE; + + _this10._preparePopup(parameters.dict); + + return _this10; + } + + return SquareAnnotation; +}(Annotation); + +var CircleAnnotation = +/*#__PURE__*/ +function (_Annotation7) { + _inherits(CircleAnnotation, _Annotation7); + + function CircleAnnotation(parameters) { + var _this11; + + _classCallCheck(this, CircleAnnotation); + + _this11 = _possibleConstructorReturn(this, _getPrototypeOf(CircleAnnotation).call(this, parameters)); + _this11.data.annotationType = _util.AnnotationType.CIRCLE; + + _this11._preparePopup(parameters.dict); + + return _this11; + } + + return CircleAnnotation; +}(Annotation); + +var PolylineAnnotation = +/*#__PURE__*/ +function (_Annotation8) { + _inherits(PolylineAnnotation, _Annotation8); + + function PolylineAnnotation(parameters) { + var _this12; + + _classCallCheck(this, PolylineAnnotation); + + _this12 = _possibleConstructorReturn(this, _getPrototypeOf(PolylineAnnotation).call(this, parameters)); + _this12.data.annotationType = _util.AnnotationType.POLYLINE; + var dict = parameters.dict; + var rawVertices = dict.getArray('Vertices'); + _this12.data.vertices = []; + + for (var i = 0, ii = rawVertices.length; i < ii; i += 2) { + _this12.data.vertices.push({ + x: rawVertices[i], + y: rawVertices[i + 1] + }); + } + + _this12._preparePopup(dict); + + return _this12; + } + + return PolylineAnnotation; +}(Annotation); + +var PolygonAnnotation = +/*#__PURE__*/ +function (_PolylineAnnotation) { + _inherits(PolygonAnnotation, _PolylineAnnotation); + + function PolygonAnnotation(parameters) { + var _this13; + + _classCallCheck(this, PolygonAnnotation); + + _this13 = _possibleConstructorReturn(this, _getPrototypeOf(PolygonAnnotation).call(this, parameters)); + _this13.data.annotationType = _util.AnnotationType.POLYGON; + return _this13; + } + + return PolygonAnnotation; +}(PolylineAnnotation); + +var InkAnnotation = +/*#__PURE__*/ +function (_Annotation9) { + _inherits(InkAnnotation, _Annotation9); + + function InkAnnotation(parameters) { + var _this14; + + _classCallCheck(this, InkAnnotation); + + _this14 = _possibleConstructorReturn(this, _getPrototypeOf(InkAnnotation).call(this, parameters)); + _this14.data.annotationType = _util.AnnotationType.INK; + var dict = parameters.dict; + var xref = parameters.xref; + var originalInkLists = dict.getArray('InkList'); + _this14.data.inkLists = []; + + for (var i = 0, ii = originalInkLists.length; i < ii; ++i) { + _this14.data.inkLists.push([]); + + for (var j = 0, jj = originalInkLists[i].length; j < jj; j += 2) { + _this14.data.inkLists[i].push({ + x: xref.fetchIfRef(originalInkLists[i][j]), + y: xref.fetchIfRef(originalInkLists[i][j + 1]) + }); + } + } + + _this14._preparePopup(dict); + + return _this14; + } + + return InkAnnotation; +}(Annotation); + +var HighlightAnnotation = +/*#__PURE__*/ +function (_Annotation10) { + _inherits(HighlightAnnotation, _Annotation10); + + function HighlightAnnotation(parameters) { + var _this15; + + _classCallCheck(this, HighlightAnnotation); + + _this15 = _possibleConstructorReturn(this, _getPrototypeOf(HighlightAnnotation).call(this, parameters)); + _this15.data.annotationType = _util.AnnotationType.HIGHLIGHT; + + _this15._preparePopup(parameters.dict); + + return _this15; + } + + return HighlightAnnotation; +}(Annotation); + +var UnderlineAnnotation = +/*#__PURE__*/ +function (_Annotation11) { + _inherits(UnderlineAnnotation, _Annotation11); + + function UnderlineAnnotation(parameters) { + var _this16; + + _classCallCheck(this, UnderlineAnnotation); + + _this16 = _possibleConstructorReturn(this, _getPrototypeOf(UnderlineAnnotation).call(this, parameters)); + _this16.data.annotationType = _util.AnnotationType.UNDERLINE; + + _this16._preparePopup(parameters.dict); + + return _this16; + } + + return UnderlineAnnotation; +}(Annotation); + +var SquigglyAnnotation = +/*#__PURE__*/ +function (_Annotation12) { + _inherits(SquigglyAnnotation, _Annotation12); + + function SquigglyAnnotation(parameters) { + var _this17; + + _classCallCheck(this, SquigglyAnnotation); + + _this17 = _possibleConstructorReturn(this, _getPrototypeOf(SquigglyAnnotation).call(this, parameters)); + _this17.data.annotationType = _util.AnnotationType.SQUIGGLY; + + _this17._preparePopup(parameters.dict); + + return _this17; + } + + return SquigglyAnnotation; +}(Annotation); + +var StrikeOutAnnotation = +/*#__PURE__*/ +function (_Annotation13) { + _inherits(StrikeOutAnnotation, _Annotation13); + + function StrikeOutAnnotation(parameters) { + var _this18; + + _classCallCheck(this, StrikeOutAnnotation); + + _this18 = _possibleConstructorReturn(this, _getPrototypeOf(StrikeOutAnnotation).call(this, parameters)); + _this18.data.annotationType = _util.AnnotationType.STRIKEOUT; + + _this18._preparePopup(parameters.dict); + + return _this18; + } + + return StrikeOutAnnotation; +}(Annotation); + +var StampAnnotation = +/*#__PURE__*/ +function (_Annotation14) { + _inherits(StampAnnotation, _Annotation14); + + function StampAnnotation(parameters) { + var _this19; + + _classCallCheck(this, StampAnnotation); + + _this19 = _possibleConstructorReturn(this, _getPrototypeOf(StampAnnotation).call(this, parameters)); + _this19.data.annotationType = _util.AnnotationType.STAMP; + + _this19._preparePopup(parameters.dict); + + return _this19; + } + + return StampAnnotation; +}(Annotation); + +var FileAttachmentAnnotation = +/*#__PURE__*/ +function (_Annotation15) { + _inherits(FileAttachmentAnnotation, _Annotation15); + + function FileAttachmentAnnotation(parameters) { + var _this20; + + _classCallCheck(this, FileAttachmentAnnotation); + + _this20 = _possibleConstructorReturn(this, _getPrototypeOf(FileAttachmentAnnotation).call(this, parameters)); + var file = new _obj.FileSpec(parameters.dict.get('FS'), parameters.xref); + _this20.data.annotationType = _util.AnnotationType.FILEATTACHMENT; + _this20.data.file = file.serializable; + + _this20._preparePopup(parameters.dict); + + return _this20; + } + + return FileAttachmentAnnotation; +}(Annotation); + +/***/ }), +/* 170 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.OperatorList = void 0; + +var _util = __w_pdfjs_require__(6); + +var QueueOptimizer = function QueueOptimizerClosure() { + function addState(parentState, pattern, checkFn, iterateFn, processFn) { + var state = parentState; + + for (var i = 0, ii = pattern.length - 1; i < ii; i++) { + var item = pattern[i]; + state = state[item] || (state[item] = []); + } + + state[pattern[pattern.length - 1]] = { + checkFn: checkFn, + iterateFn: iterateFn, + processFn: processFn + }; + } + + function handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray) { + var iFirstPIMXO = iFirstSave + 2; + + for (var i = 0; i < count; i++) { + var arg = argsArray[iFirstPIMXO + 4 * i]; + var imageMask = arg.length === 1 && arg[0]; + + if (imageMask && imageMask.width === 1 && imageMask.height === 1 && (!imageMask.data.length || imageMask.data.length === 1 && imageMask.data[0] === 0)) { + fnArray[iFirstPIMXO + 4 * i] = _util.OPS.paintSolidColorImageMask; + continue; + } + + break; + } + + return count - i; + } + + var InitialState = []; + addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintInlineImageXObject, _util.OPS.restore], null, function iterateInlineImageGroup(context, i) { + var fnArray = context.fnArray; + var iFirstSave = context.iCurr - 3; + var pos = (i - iFirstSave) % 4; + + switch (pos) { + case 0: + return fnArray[i] === _util.OPS.save; + + case 1: + return fnArray[i] === _util.OPS.transform; + + case 2: + return fnArray[i] === _util.OPS.paintInlineImageXObject; + + case 3: + return fnArray[i] === _util.OPS.restore; + } + }, function foundInlineImageGroup(context, i) { + var MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10; + var MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200; + var MAX_WIDTH = 1000; + var IMAGE_PADDING = 1; + var fnArray = context.fnArray, + argsArray = context.argsArray; + var curr = context.iCurr; + var iFirstSave = curr - 3; + var iFirstTransform = curr - 2; + var iFirstPIIXO = curr - 1; + var count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_INLINE_IMAGES_BLOCK); + + if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) { + return i - (i - iFirstSave) % 4; + } + + var maxX = 0; + var map = [], + maxLineHeight = 0; + var currentX = IMAGE_PADDING, + currentY = IMAGE_PADDING; + var q; + + for (q = 0; q < count; q++) { + var transform = argsArray[iFirstTransform + (q << 2)]; + var img = argsArray[iFirstPIIXO + (q << 2)][0]; + + if (currentX + img.width > MAX_WIDTH) { + maxX = Math.max(maxX, currentX); + currentY += maxLineHeight + 2 * IMAGE_PADDING; + currentX = 0; + maxLineHeight = 0; + } + + map.push({ + transform: transform, + x: currentX, + y: currentY, + w: img.width, + h: img.height + }); + currentX += img.width + 2 * IMAGE_PADDING; + maxLineHeight = Math.max(maxLineHeight, img.height); + } + + var imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING; + var imgHeight = currentY + maxLineHeight + IMAGE_PADDING; + var imgData = new Uint8ClampedArray(imgWidth * imgHeight * 4); + var imgRowSize = imgWidth << 2; + + for (q = 0; q < count; q++) { + var data = argsArray[iFirstPIIXO + (q << 2)][0].data; + var rowSize = map[q].w << 2; + var dataOffset = 0; + var offset = map[q].x + map[q].y * imgWidth << 2; + imgData.set(data.subarray(0, rowSize), offset - imgRowSize); + + for (var k = 0, kk = map[q].h; k < kk; k++) { + imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset); + dataOffset += rowSize; + offset += imgRowSize; + } + + imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset); + + while (offset >= 0) { + data[offset - 4] = data[offset]; + data[offset - 3] = data[offset + 1]; + data[offset - 2] = data[offset + 2]; + data[offset - 1] = data[offset + 3]; + data[offset + rowSize] = data[offset + rowSize - 4]; + data[offset + rowSize + 1] = data[offset + rowSize - 3]; + data[offset + rowSize + 2] = data[offset + rowSize - 2]; + data[offset + rowSize + 3] = data[offset + rowSize - 1]; + offset -= imgRowSize; + } + } + + fnArray.splice(iFirstSave, count * 4, _util.OPS.paintInlineImageXObjectGroup); + argsArray.splice(iFirstSave, count * 4, [{ + width: imgWidth, + height: imgHeight, + kind: _util.ImageKind.RGBA_32BPP, + data: imgData + }, map]); + return iFirstSave + 1; + }); + addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageMaskXObject, _util.OPS.restore], null, function iterateImageMaskGroup(context, i) { + var fnArray = context.fnArray; + var iFirstSave = context.iCurr - 3; + var pos = (i - iFirstSave) % 4; + + switch (pos) { + case 0: + return fnArray[i] === _util.OPS.save; + + case 1: + return fnArray[i] === _util.OPS.transform; + + case 2: + return fnArray[i] === _util.OPS.paintImageMaskXObject; + + case 3: + return fnArray[i] === _util.OPS.restore; + } + }, function foundImageMaskGroup(context, i) { + var MIN_IMAGES_IN_MASKS_BLOCK = 10; + var MAX_IMAGES_IN_MASKS_BLOCK = 100; + var MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000; + var fnArray = context.fnArray, + argsArray = context.argsArray; + var curr = context.iCurr; + var iFirstSave = curr - 3; + var iFirstTransform = curr - 2; + var iFirstPIMXO = curr - 1; + var count = Math.floor((i - iFirstSave) / 4); + count = handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray); + + if (count < MIN_IMAGES_IN_MASKS_BLOCK) { + return i - (i - iFirstSave) % 4; + } + + var q; + var isSameImage = false; + var iTransform, transformArgs; + var firstPIMXOArg0 = argsArray[iFirstPIMXO][0]; + + if (argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0) { + isSameImage = true; + var firstTransformArg0 = argsArray[iFirstTransform][0]; + var firstTransformArg3 = argsArray[iFirstTransform][3]; + iTransform = iFirstTransform + 4; + var iPIMXO = iFirstPIMXO + 4; + + for (q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) { + transformArgs = argsArray[iTransform]; + + if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== 0 || transformArgs[2] !== 0 || transformArgs[3] !== firstTransformArg3) { + if (q < MIN_IMAGES_IN_MASKS_BLOCK) { + isSameImage = false; + } else { + count = q; + } + + break; + } + } + } + + if (isSameImage) { + count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK); + var positions = new Float32Array(count * 2); + iTransform = iFirstTransform; + + for (q = 0; q < count; q++, iTransform += 4) { + transformArgs = argsArray[iTransform]; + positions[q << 1] = transformArgs[4]; + positions[(q << 1) + 1] = transformArgs[5]; + } + + fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectRepeat); + argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg3, positions]); + } else { + count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK); + var images = []; + + for (q = 0; q < count; q++) { + transformArgs = argsArray[iFirstTransform + (q << 2)]; + var maskParams = argsArray[iFirstPIMXO + (q << 2)][0]; + images.push({ + data: maskParams.data, + width: maskParams.width, + height: maskParams.height, + transform: transformArgs + }); + } + + fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectGroup); + argsArray.splice(iFirstSave, count * 4, [images]); + } + + return iFirstSave + 1; + }); + addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageXObject, _util.OPS.restore], function (context) { + var argsArray = context.argsArray; + var iFirstTransform = context.iCurr - 2; + return argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0; + }, function (context, i) { + var fnArray = context.fnArray, + argsArray = context.argsArray; + var iFirstSave = context.iCurr - 3; + var pos = (i - iFirstSave) % 4; + + switch (pos) { + case 0: + return fnArray[i] === _util.OPS.save; + + case 1: + if (fnArray[i] !== _util.OPS.transform) { + return false; + } + + var iFirstTransform = context.iCurr - 2; + var firstTransformArg0 = argsArray[iFirstTransform][0]; + var firstTransformArg3 = argsArray[iFirstTransform][3]; + + if (argsArray[i][0] !== firstTransformArg0 || argsArray[i][1] !== 0 || argsArray[i][2] !== 0 || argsArray[i][3] !== firstTransformArg3) { + return false; + } + + return true; + + case 2: + if (fnArray[i] !== _util.OPS.paintImageXObject) { + return false; + } + + var iFirstPIXO = context.iCurr - 1; + var firstPIXOArg0 = argsArray[iFirstPIXO][0]; + + if (argsArray[i][0] !== firstPIXOArg0) { + return false; + } + + return true; + + case 3: + return fnArray[i] === _util.OPS.restore; + } + }, function (context, i) { + var MIN_IMAGES_IN_BLOCK = 3; + var MAX_IMAGES_IN_BLOCK = 1000; + var fnArray = context.fnArray, + argsArray = context.argsArray; + var curr = context.iCurr; + var iFirstSave = curr - 3; + var iFirstTransform = curr - 2; + var iFirstPIXO = curr - 1; + var firstPIXOArg0 = argsArray[iFirstPIXO][0]; + var firstTransformArg0 = argsArray[iFirstTransform][0]; + var firstTransformArg3 = argsArray[iFirstTransform][3]; + var count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_BLOCK); + + if (count < MIN_IMAGES_IN_BLOCK) { + return i - (i - iFirstSave) % 4; + } + + var positions = new Float32Array(count * 2); + var iTransform = iFirstTransform; + + for (var q = 0; q < count; q++, iTransform += 4) { + var transformArgs = argsArray[iTransform]; + positions[q << 1] = transformArgs[4]; + positions[(q << 1) + 1] = transformArgs[5]; + } + + var args = [firstPIXOArg0, firstTransformArg0, firstTransformArg3, positions]; + fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageXObjectRepeat); + argsArray.splice(iFirstSave, count * 4, args); + return iFirstSave + 1; + }); + addState(InitialState, [_util.OPS.beginText, _util.OPS.setFont, _util.OPS.setTextMatrix, _util.OPS.showText, _util.OPS.endText], null, function (context, i) { + var fnArray = context.fnArray, + argsArray = context.argsArray; + var iFirstSave = context.iCurr - 4; + var pos = (i - iFirstSave) % 5; + + switch (pos) { + case 0: + return fnArray[i] === _util.OPS.beginText; + + case 1: + return fnArray[i] === _util.OPS.setFont; + + case 2: + return fnArray[i] === _util.OPS.setTextMatrix; + + case 3: + if (fnArray[i] !== _util.OPS.showText) { + return false; + } + + var iFirstSetFont = context.iCurr - 3; + var firstSetFontArg0 = argsArray[iFirstSetFont][0]; + var firstSetFontArg1 = argsArray[iFirstSetFont][1]; + + if (argsArray[i][0] !== firstSetFontArg0 || argsArray[i][1] !== firstSetFontArg1) { + return false; + } + + return true; + + case 4: + return fnArray[i] === _util.OPS.endText; + } + }, function (context, i) { + var MIN_CHARS_IN_BLOCK = 3; + var MAX_CHARS_IN_BLOCK = 1000; + var fnArray = context.fnArray, + argsArray = context.argsArray; + var curr = context.iCurr; + var iFirstBeginText = curr - 4; + var iFirstSetFont = curr - 3; + var iFirstSetTextMatrix = curr - 2; + var iFirstShowText = curr - 1; + var iFirstEndText = curr; + var firstSetFontArg0 = argsArray[iFirstSetFont][0]; + var firstSetFontArg1 = argsArray[iFirstSetFont][1]; + var count = Math.min(Math.floor((i - iFirstBeginText) / 5), MAX_CHARS_IN_BLOCK); + + if (count < MIN_CHARS_IN_BLOCK) { + return i - (i - iFirstBeginText) % 5; + } + + var iFirst = iFirstBeginText; + + if (iFirstBeginText >= 4 && fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] && fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] && fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] && fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] && argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 && argsArray[iFirstBeginText - 4][1] === firstSetFontArg1) { + count++; + iFirst -= 5; + } + + var iEndText = iFirst + 4; + + for (var q = 1; q < count; q++) { + fnArray.splice(iEndText, 3); + argsArray.splice(iEndText, 3); + iEndText += 2; + } + + return iEndText + 1; + }); + + function QueueOptimizer(queue) { + this.queue = queue; + this.state = null; + this.context = { + iCurr: 0, + fnArray: queue.fnArray, + argsArray: queue.argsArray + }; + this.match = null; + this.lastProcessed = 0; + } + + QueueOptimizer.prototype = { + _optimize: function _optimize() { + var fnArray = this.queue.fnArray; + var i = this.lastProcessed, + ii = fnArray.length; + var state = this.state; + var match = this.match; + + if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) { + this.lastProcessed = ii; + return; + } + + var context = this.context; + + while (i < ii) { + if (match) { + var iterate = (0, match.iterateFn)(context, i); + + if (iterate) { + i++; + continue; + } + + i = (0, match.processFn)(context, i + 1); + ii = fnArray.length; + match = null; + state = null; + + if (i >= ii) { + break; + } + } + + state = (state || InitialState)[fnArray[i]]; + + if (!state || Array.isArray(state)) { + i++; + continue; + } + + context.iCurr = i; + i++; + + if (state.checkFn && !(0, state.checkFn)(context)) { + state = null; + continue; + } + + match = state; + state = null; + } + + this.state = state; + this.match = match; + this.lastProcessed = i; + }, + push: function push(fn, args) { + this.queue.fnArray.push(fn); + this.queue.argsArray.push(args); + + this._optimize(); + }, + flush: function flush() { + while (this.match) { + var length = this.queue.fnArray.length; + this.lastProcessed = (0, this.match.processFn)(this.context, length); + this.match = null; + this.state = null; + + this._optimize(); + } + }, + reset: function reset() { + this.state = null; + this.match = null; + this.lastProcessed = 0; + } + }; + return QueueOptimizer; +}(); + +var NullOptimizer = function NullOptimizerClosure() { + function NullOptimizer(queue) { + this.queue = queue; + } + + NullOptimizer.prototype = { + push: function push(fn, args) { + this.queue.fnArray.push(fn); + this.queue.argsArray.push(args); + }, + flush: function flush() {} + }; + return NullOptimizer; +}(); + +var OperatorList = function OperatorListClosure() { + var CHUNK_SIZE = 1000; + var CHUNK_SIZE_ABOUT = CHUNK_SIZE - 5; + + function getTransfers(queue) { + var transfers = []; + var fnArray = queue.fnArray, + argsArray = queue.argsArray; + + for (var i = 0, ii = queue.length; i < ii; i++) { + switch (fnArray[i]) { + case _util.OPS.paintInlineImageXObject: + case _util.OPS.paintInlineImageXObjectGroup: + case _util.OPS.paintImageMaskXObject: + var arg = argsArray[i][0]; + ; + + if (!arg.cached) { + transfers.push(arg.data.buffer); + } + + break; + } + } + + return transfers; + } + + function OperatorList(intent, messageHandler, pageIndex) { + this.messageHandler = messageHandler; + this.fnArray = []; + this.argsArray = []; + + if (messageHandler && this.intent !== 'oplist') { + this.optimizer = new QueueOptimizer(this); + } else { + this.optimizer = new NullOptimizer(this); + } + + this.dependencies = Object.create(null); + this._totalLength = 0; + this.pageIndex = pageIndex; + this.intent = intent; + this.weight = 0; + } + + OperatorList.prototype = { + get length() { + return this.argsArray.length; + }, + + get totalLength() { + return this._totalLength + this.length; + }, + + addOp: function addOp(fn, args) { + this.optimizer.push(fn, args); + this.weight++; + + if (this.messageHandler) { + if (this.weight >= CHUNK_SIZE) { + this.flush(); + } else if (this.weight >= CHUNK_SIZE_ABOUT && (fn === _util.OPS.restore || fn === _util.OPS.endText)) { + this.flush(); + } + } + }, + addDependency: function addDependency(dependency) { + if (dependency in this.dependencies) { + return; + } + + this.dependencies[dependency] = true; + this.addOp(_util.OPS.dependency, [dependency]); + }, + addDependencies: function addDependencies(dependencies) { + for (var key in dependencies) { + this.addDependency(key); + } + }, + addOpList: function addOpList(opList) { + Object.assign(this.dependencies, opList.dependencies); + + for (var i = 0, ii = opList.length; i < ii; i++) { + this.addOp(opList.fnArray[i], opList.argsArray[i]); + } + }, + getIR: function getIR() { + return { + fnArray: this.fnArray, + argsArray: this.argsArray, + length: this.length + }; + }, + flush: function flush(lastChunk) { + this.optimizer.flush(); + var transfers = getTransfers(this); + var length = this.length; + this._totalLength += length; + this.messageHandler.send('RenderPageChunk', { + operatorList: { + fnArray: this.fnArray, + argsArray: this.argsArray, + lastChunk: lastChunk, + length: length + }, + pageIndex: this.pageIndex, + intent: this.intent + }, transfers); + this.dependencies = Object.create(null); + this.fnArray.length = 0; + this.argsArray.length = 0; + this.weight = 0; + this.optimizer.reset(); + } + }; + return OperatorList; +}(); + +exports.OperatorList = OperatorList; + +/***/ }), +/* 171 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PartialEvaluator = void 0; + +var _regenerator = _interopRequireDefault(__w_pdfjs_require__(2)); + +var _util = __w_pdfjs_require__(6); + +var _cmap = __w_pdfjs_require__(172); + +var _stream = __w_pdfjs_require__(157); + +var _primitives = __w_pdfjs_require__(155); + +var _fonts = __w_pdfjs_require__(173); + +var _encodings = __w_pdfjs_require__(176); + +var _unicode = __w_pdfjs_require__(179); + +var _standard_fonts = __w_pdfjs_require__(178); + +var _pattern = __w_pdfjs_require__(182); + +var _parser = __w_pdfjs_require__(156); + +var _bidi = __w_pdfjs_require__(183); + +var _colorspace = __w_pdfjs_require__(168); + +var _glyphlist = __w_pdfjs_require__(177); + +var _metrics = __w_pdfjs_require__(184); + +var _function = __w_pdfjs_require__(185); + +var _jpeg_stream = __w_pdfjs_require__(163); + +var _murmurhash = __w_pdfjs_require__(187); + +var _operator_list = __w_pdfjs_require__(170); + +var _image = __w_pdfjs_require__(188); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +var PartialEvaluator = function PartialEvaluatorClosure() { + var DefaultPartialEvaluatorOptions = { + forceDataSchema: false, + maxImageSize: -1, + disableFontFace: false, + nativeImageDecoderSupport: _util.NativeImageDecoding.DECODE, + ignoreErrors: false, + isEvalSupported: true + }; + + function NativeImageDecoder(_ref) { + var xref = _ref.xref, + resources = _ref.resources, + handler = _ref.handler, + _ref$forceDataSchema = _ref.forceDataSchema, + forceDataSchema = _ref$forceDataSchema === void 0 ? false : _ref$forceDataSchema, + pdfFunctionFactory = _ref.pdfFunctionFactory; + this.xref = xref; + this.resources = resources; + this.handler = handler; + this.forceDataSchema = forceDataSchema; + this.pdfFunctionFactory = pdfFunctionFactory; + } + + NativeImageDecoder.prototype = { + canDecode: function canDecode(image) { + return image instanceof _jpeg_stream.JpegStream && NativeImageDecoder.isDecodable(image, this.xref, this.resources, this.pdfFunctionFactory); + }, + decode: function decode(image) { + var dict = image.dict; + var colorSpace = dict.get('ColorSpace', 'CS'); + colorSpace = _colorspace.ColorSpace.parse(colorSpace, this.xref, this.resources, this.pdfFunctionFactory); + return this.handler.sendWithPromise('JpegDecode', [image.getIR(this.forceDataSchema), colorSpace.numComps]).then(function (_ref2) { + var data = _ref2.data, + width = _ref2.width, + height = _ref2.height; + return new _stream.Stream(data, 0, data.length, image.dict); + }); + } + }; + + NativeImageDecoder.isSupported = function (image, xref, res, pdfFunctionFactory) { + var dict = image.dict; + + if (dict.has('DecodeParms') || dict.has('DP')) { + return false; + } + + var cs = _colorspace.ColorSpace.parse(dict.get('ColorSpace', 'CS'), xref, res, pdfFunctionFactory); + + return (cs.name === 'DeviceGray' || cs.name === 'DeviceRGB') && cs.isDefaultDecode(dict.getArray('Decode', 'D')); + }; + + NativeImageDecoder.isDecodable = function (image, xref, res, pdfFunctionFactory) { + var dict = image.dict; + + if (dict.has('DecodeParms') || dict.has('DP')) { + return false; + } + + var cs = _colorspace.ColorSpace.parse(dict.get('ColorSpace', 'CS'), xref, res, pdfFunctionFactory); + + var bpc = dict.get('BitsPerComponent', 'BPC') || 1; + return (cs.numComps === 1 || cs.numComps === 3) && cs.isDefaultDecode(dict.getArray('Decode', 'D'), bpc); + }; + + function PartialEvaluator(_ref3) { + var _this = this; + + var pdfManager = _ref3.pdfManager, + xref = _ref3.xref, + handler = _ref3.handler, + pageIndex = _ref3.pageIndex, + idFactory = _ref3.idFactory, + fontCache = _ref3.fontCache, + builtInCMapCache = _ref3.builtInCMapCache, + _ref3$options = _ref3.options, + options = _ref3$options === void 0 ? null : _ref3$options, + pdfFunctionFactory = _ref3.pdfFunctionFactory; + this.pdfManager = pdfManager; + this.xref = xref; + this.handler = handler; + this.pageIndex = pageIndex; + this.idFactory = idFactory; + this.fontCache = fontCache; + this.builtInCMapCache = builtInCMapCache; + this.options = options || DefaultPartialEvaluatorOptions; + this.pdfFunctionFactory = pdfFunctionFactory; + + this.fetchBuiltInCMap = + /*#__PURE__*/ + function () { + var _ref4 = _asyncToGenerator( + /*#__PURE__*/ + _regenerator.default.mark(function _callee(name) { + var data; + return _regenerator.default.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + if (!_this.builtInCMapCache.has(name)) { + _context.next = 2; + break; + } + + return _context.abrupt("return", _this.builtInCMapCache.get(name)); + + case 2: + _context.next = 4; + return _this.handler.sendWithPromise('FetchBuiltInCMap', { + name: name + }); + + case 4: + data = _context.sent; + + if (data.compressionType !== _util.CMapCompressionType.NONE) { + _this.builtInCMapCache.set(name, data); + } + + return _context.abrupt("return", data); + + case 7: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + return function (_x) { + return _ref4.apply(this, arguments); + }; + }(); + } + + var TIME_SLOT_DURATION_MS = 20; + var CHECK_TIME_EVERY = 100; + + function TimeSlotManager() { + this.reset(); + } + + TimeSlotManager.prototype = { + check: function TimeSlotManager_check() { + if (++this.checked < CHECK_TIME_EVERY) { + return false; + } + + this.checked = 0; + return this.endTime <= Date.now(); + }, + reset: function TimeSlotManager_reset() { + this.endTime = Date.now() + TIME_SLOT_DURATION_MS; + this.checked = 0; + } + }; + + function normalizeBlendMode(value) { + if (!(0, _primitives.isName)(value)) { + return 'source-over'; + } + + switch (value.name) { + case 'Normal': + case 'Compatible': + return 'source-over'; + + case 'Multiply': + return 'multiply'; + + case 'Screen': + return 'screen'; + + case 'Overlay': + return 'overlay'; + + case 'Darken': + return 'darken'; + + case 'Lighten': + return 'lighten'; + + case 'ColorDodge': + return 'color-dodge'; + + case 'ColorBurn': + return 'color-burn'; + + case 'HardLight': + return 'hard-light'; + + case 'SoftLight': + return 'soft-light'; + + case 'Difference': + return 'difference'; + + case 'Exclusion': + return 'exclusion'; + + case 'Hue': + return 'hue'; + + case 'Saturation': + return 'saturation'; + + case 'Color': + return 'color'; + + case 'Luminosity': + return 'luminosity'; + } + + (0, _util.warn)('Unsupported blend mode: ' + value.name); + return 'source-over'; + } + + var deferred = Promise.resolve(); + var TILING_PATTERN = 1, + SHADING_PATTERN = 2; + PartialEvaluator.prototype = { + clone: function clone() { + var newOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DefaultPartialEvaluatorOptions; + var newEvaluator = Object.create(this); + newEvaluator.options = newOptions; + return newEvaluator; + }, + hasBlendModes: function PartialEvaluator_hasBlendModes(resources) { + if (!(0, _primitives.isDict)(resources)) { + return false; + } + + var processed = Object.create(null); + + if (resources.objId) { + processed[resources.objId] = true; + } + + var nodes = [resources], + xref = this.xref; + + while (nodes.length) { + var key, i, ii; + var node = nodes.shift(); + var graphicStates = node.get('ExtGState'); + + if ((0, _primitives.isDict)(graphicStates)) { + var graphicStatesKeys = graphicStates.getKeys(); + + for (i = 0, ii = graphicStatesKeys.length; i < ii; i++) { + key = graphicStatesKeys[i]; + var graphicState = graphicStates.get(key); + var bm = graphicState.get('BM'); + + if ((0, _primitives.isName)(bm) && bm.name !== 'Normal') { + return true; + } + } + } + + var xObjects = node.get('XObject'); + + if (!(0, _primitives.isDict)(xObjects)) { + continue; + } + + var xObjectsKeys = xObjects.getKeys(); + + for (i = 0, ii = xObjectsKeys.length; i < ii; i++) { + key = xObjectsKeys[i]; + var xObject = xObjects.getRaw(key); + + if ((0, _primitives.isRef)(xObject)) { + if (processed[xObject.toString()]) { + continue; + } + + xObject = xref.fetch(xObject); + } + + if (!(0, _primitives.isStream)(xObject)) { + continue; + } + + if (xObject.dict.objId) { + if (processed[xObject.dict.objId]) { + continue; + } + + processed[xObject.dict.objId] = true; + } + + var xResources = xObject.dict.get('Resources'); + + if ((0, _primitives.isDict)(xResources) && (!xResources.objId || !processed[xResources.objId])) { + nodes.push(xResources); + + if (xResources.objId) { + processed[xResources.objId] = true; + } + } + } + } + + return false; + }, + buildFormXObject: function PartialEvaluator_buildFormXObject(resources, xobj, smask, operatorList, task, initialState) { + var dict = xobj.dict; + var matrix = dict.getArray('Matrix'); + var bbox = dict.getArray('BBox'); + + if (Array.isArray(bbox) && bbox.length === 4) { + bbox = _util.Util.normalizeRect(bbox); + } else { + bbox = null; + } + + var group = dict.get('Group'); + + if (group) { + var groupOptions = { + matrix: matrix, + bbox: bbox, + smask: smask, + isolated: false, + knockout: false + }; + var groupSubtype = group.get('S'); + var colorSpace = null; + + if ((0, _primitives.isName)(groupSubtype, 'Transparency')) { + groupOptions.isolated = group.get('I') || false; + groupOptions.knockout = group.get('K') || false; + + if (group.has('CS')) { + colorSpace = _colorspace.ColorSpace.parse(group.get('CS'), this.xref, resources, this.pdfFunctionFactory); + } + } + + if (smask && smask.backdrop) { + colorSpace = colorSpace || _colorspace.ColorSpace.singletons.rgb; + smask.backdrop = colorSpace.getRgb(smask.backdrop, 0); + } + + operatorList.addOp(_util.OPS.beginGroup, [groupOptions]); + } + + operatorList.addOp(_util.OPS.paintFormXObjectBegin, [matrix, bbox]); + return this.getOperatorList({ + stream: xobj, + task: task, + resources: dict.get('Resources') || resources, + operatorList: operatorList, + initialState: initialState + }).then(function () { + operatorList.addOp(_util.OPS.paintFormXObjectEnd, []); + + if (group) { + operatorList.addOp(_util.OPS.endGroup, [groupOptions]); + } + }); + }, + buildPaintImageXObject: function buildPaintImageXObject(_ref5) { + var _this2 = this; + + var resources = _ref5.resources, + image = _ref5.image, + _ref5$isInline = _ref5.isInline, + isInline = _ref5$isInline === void 0 ? false : _ref5$isInline, + operatorList = _ref5.operatorList, + cacheKey = _ref5.cacheKey, + imageCache = _ref5.imageCache, + _ref5$forceDisableNat = _ref5.forceDisableNativeImageDecoder, + forceDisableNativeImageDecoder = _ref5$forceDisableNat === void 0 ? false : _ref5$forceDisableNat; + var dict = image.dict; + var w = dict.get('Width', 'W'); + var h = dict.get('Height', 'H'); + + if (!(w && (0, _util.isNum)(w)) || !(h && (0, _util.isNum)(h))) { + (0, _util.warn)('Image dimensions are missing, or not numbers.'); + return Promise.resolve(); + } + + var maxImageSize = this.options.maxImageSize; + + if (maxImageSize !== -1 && w * h > maxImageSize) { + (0, _util.warn)('Image exceeded maximum allowed size and was removed.'); + return Promise.resolve(); + } + + var imageMask = dict.get('ImageMask', 'IM') || false; + var imgData, args; + + if (imageMask) { + var width = dict.get('Width', 'W'); + var height = dict.get('Height', 'H'); + var bitStrideLength = width + 7 >> 3; + var imgArray = image.getBytes(bitStrideLength * height, true); + var decode = dict.getArray('Decode', 'D'); + imgData = _image.PDFImage.createMask({ + imgArray: imgArray, + width: width, + height: height, + imageIsFromDecodeStream: image instanceof _stream.DecodeStream, + inverseDecode: !!decode && decode[0] > 0 + }); + imgData.cached = true; + args = [imgData]; + operatorList.addOp(_util.OPS.paintImageMaskXObject, args); + + if (cacheKey) { + imageCache[cacheKey] = { + fn: _util.OPS.paintImageMaskXObject, + args: args + }; + } + + return Promise.resolve(); + } + + var softMask = dict.get('SMask', 'SM') || false; + var mask = dict.get('Mask') || false; + var SMALL_IMAGE_DIMENSIONS = 200; + + if (isInline && !softMask && !mask && !(image instanceof _jpeg_stream.JpegStream) && w + h < SMALL_IMAGE_DIMENSIONS) { + var imageObj = new _image.PDFImage({ + xref: this.xref, + res: resources, + image: image, + isInline: isInline, + pdfFunctionFactory: this.pdfFunctionFactory + }); + imgData = imageObj.createImageData(true); + operatorList.addOp(_util.OPS.paintInlineImageXObject, [imgData]); + return Promise.resolve(); + } + + var nativeImageDecoderSupport = forceDisableNativeImageDecoder ? _util.NativeImageDecoding.NONE : this.options.nativeImageDecoderSupport; + var objId = 'img_' + this.idFactory.createObjId(); + + if (nativeImageDecoderSupport !== _util.NativeImageDecoding.NONE && !softMask && !mask && image instanceof _jpeg_stream.JpegStream && NativeImageDecoder.isSupported(image, this.xref, resources, this.pdfFunctionFactory)) { + return this.handler.sendWithPromise('obj', [objId, this.pageIndex, 'JpegStream', image.getIR(this.options.forceDataSchema)]).then(function () { + operatorList.addDependency(objId); + args = [objId, w, h]; + operatorList.addOp(_util.OPS.paintJpegXObject, args); + + if (cacheKey) { + imageCache[cacheKey] = { + fn: _util.OPS.paintJpegXObject, + args: args + }; + } + }, function (reason) { + (0, _util.warn)('Native JPEG decoding failed -- trying to recover: ' + (reason && reason.message)); + return _this2.buildPaintImageXObject({ + resources: resources, + image: image, + isInline: isInline, + operatorList: operatorList, + cacheKey: cacheKey, + imageCache: imageCache, + forceDisableNativeImageDecoder: true + }); + }); + } + + var nativeImageDecoder = null; + + if (nativeImageDecoderSupport === _util.NativeImageDecoding.DECODE && (image instanceof _jpeg_stream.JpegStream || mask instanceof _jpeg_stream.JpegStream || softMask instanceof _jpeg_stream.JpegStream)) { + nativeImageDecoder = new NativeImageDecoder({ + xref: this.xref, + resources: resources, + handler: this.handler, + forceDataSchema: this.options.forceDataSchema, + pdfFunctionFactory: this.pdfFunctionFactory + }); + } + + operatorList.addDependency(objId); + args = [objId, w, h]; + + _image.PDFImage.buildImage({ + handler: this.handler, + xref: this.xref, + res: resources, + image: image, + isInline: isInline, + nativeDecoder: nativeImageDecoder, + pdfFunctionFactory: this.pdfFunctionFactory + }).then(function (imageObj) { + var imgData = imageObj.createImageData(false); + + _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', imgData], [imgData.data.buffer]); + }).catch(function (reason) { + (0, _util.warn)('Unable to decode image: ' + reason); + + _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', null]); + }); + + operatorList.addOp(_util.OPS.paintImageXObject, args); + + if (cacheKey) { + imageCache[cacheKey] = { + fn: _util.OPS.paintImageXObject, + args: args + }; + } + + return Promise.resolve(); + }, + handleSMask: function PartialEvaluator_handleSmask(smask, resources, operatorList, task, stateManager) { + var smaskContent = smask.get('G'); + var smaskOptions = { + subtype: smask.get('S').name, + backdrop: smask.get('BC') + }; + var transferObj = smask.get('TR'); + + if ((0, _function.isPDFFunction)(transferObj)) { + var transferFn = this.pdfFunctionFactory.create(transferObj); + var transferMap = new Uint8Array(256); + var tmp = new Float32Array(1); + + for (var i = 0; i < 256; i++) { + tmp[0] = i / 255; + transferFn(tmp, 0, tmp, 0); + transferMap[i] = tmp[0] * 255 | 0; + } + + smaskOptions.transferMap = transferMap; + } + + return this.buildFormXObject(resources, smaskContent, smaskOptions, operatorList, task, stateManager.state.clone()); + }, + handleTilingType: function handleTilingType(fn, args, resources, pattern, patternDict, operatorList, task) { + var _this3 = this; + + var tilingOpList = new _operator_list.OperatorList(); + var resourcesArray = [patternDict.get('Resources'), resources]; + + var patternResources = _primitives.Dict.merge(this.xref, resourcesArray); + + return this.getOperatorList({ + stream: pattern, + task: task, + resources: patternResources, + operatorList: tilingOpList + }).then(function () { + return (0, _pattern.getTilingPatternIR)({ + fnArray: tilingOpList.fnArray, + argsArray: tilingOpList.argsArray + }, patternDict, args); + }).then(function (tilingPatternIR) { + operatorList.addDependencies(tilingOpList.dependencies); + operatorList.addOp(fn, tilingPatternIR); + }, function (reason) { + if (_this3.options.ignoreErrors) { + _this3.handler.send('UnsupportedFeature', { + featureId: _util.UNSUPPORTED_FEATURES.unknown + }); + + (0, _util.warn)("handleTilingType - ignoring pattern: \"".concat(reason, "\".")); + return; + } + + throw reason; + }); + }, + handleSetFont: function PartialEvaluator_handleSetFont(resources, fontArgs, fontRef, operatorList, task, state) { + var _this4 = this; + + var fontName; + + if (fontArgs) { + fontArgs = fontArgs.slice(); + fontName = fontArgs[0].name; + } + + return this.loadFont(fontName, fontRef, resources).then(function (translated) { + if (!translated.font.isType3Font) { + return translated; + } + + return translated.loadType3Data(_this4, resources, operatorList, task).then(function () { + return translated; + }).catch(function (reason) { + _this4.handler.send('UnsupportedFeature', { + featureId: _util.UNSUPPORTED_FEATURES.font + }); + + return new TranslatedFont('g_font_error', new _fonts.ErrorFont('Type3 font load error: ' + reason), translated.font); + }); + }).then(function (translated) { + state.font = translated.font; + translated.send(_this4.handler); + return translated.loadedName; + }); + }, + handleText: function handleText(chars, state) { + var font = state.font; + var glyphs = font.charsToGlyphs(chars); + + if (font.data) { + var isAddToPathSet = !!(state.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG); + + if (isAddToPathSet || state.fillColorSpace.name === 'Pattern' || font.disableFontFace || this.options.disableFontFace) { + PartialEvaluator.buildFontPaths(font, glyphs, this.handler); + } + } + + return glyphs; + }, + setGState: function PartialEvaluator_setGState(resources, gState, operatorList, task, stateManager) { + var _this5 = this; + + var gStateObj = []; + var gStateKeys = gState.getKeys(); + var promise = Promise.resolve(); + + var _loop = function _loop() { + var key = gStateKeys[i]; + var value = gState.get(key); + + switch (key) { + case 'Type': + break; + + case 'LW': + case 'LC': + case 'LJ': + case 'ML': + case 'D': + case 'RI': + case 'FL': + case 'CA': + case 'ca': + gStateObj.push([key, value]); + break; + + case 'Font': + promise = promise.then(function () { + return _this5.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state).then(function (loadedName) { + operatorList.addDependency(loadedName); + gStateObj.push([key, [loadedName, value[1]]]); + }); + }); + break; + + case 'BM': + gStateObj.push([key, normalizeBlendMode(value)]); + break; + + case 'SMask': + if ((0, _primitives.isName)(value, 'None')) { + gStateObj.push([key, false]); + break; + } + + if ((0, _primitives.isDict)(value)) { + promise = promise.then(function () { + return _this5.handleSMask(value, resources, operatorList, task, stateManager); + }); + gStateObj.push([key, true]); + } else { + (0, _util.warn)('Unsupported SMask type'); + } + + break; + + case 'OP': + case 'op': + case 'OPM': + case 'BG': + case 'BG2': + case 'UCR': + case 'UCR2': + case 'TR': + case 'TR2': + case 'HT': + case 'SM': + case 'SA': + case 'AIS': + case 'TK': + (0, _util.info)('graphic state operator ' + key); + break; + + default: + (0, _util.info)('Unknown graphic state operator ' + key); + break; + } + }; + + for (var i = 0, ii = gStateKeys.length; i < ii; i++) { + _loop(); + } + + return promise.then(function () { + if (gStateObj.length > 0) { + operatorList.addOp(_util.OPS.setGState, [gStateObj]); + } + }); + }, + loadFont: function PartialEvaluator_loadFont(fontName, font, resources) { + var _this6 = this; + + function errorFont() { + return Promise.resolve(new TranslatedFont('g_font_error', new _fonts.ErrorFont('Font ' + fontName + ' is not available'), font)); + } + + var fontRef, + xref = this.xref; + + if (font) { + if (!(0, _primitives.isRef)(font)) { + throw new Error('The "font" object should be a reference.'); + } + + fontRef = font; + } else { + var fontRes = resources.get('Font'); + + if (fontRes) { + fontRef = fontRes.getRaw(fontName); + } else { + (0, _util.warn)('fontRes not available'); + return errorFont(); + } + } + + if (!fontRef) { + (0, _util.warn)('fontRef not available'); + return errorFont(); + } + + if (this.fontCache.has(fontRef)) { + return this.fontCache.get(fontRef); + } + + font = xref.fetchIfRef(fontRef); + + if (!(0, _primitives.isDict)(font)) { + return errorFont(); + } + + if (font.translated) { + return font.translated; + } + + var fontCapability = (0, _util.createPromiseCapability)(); + var preEvaluatedFont = this.preEvaluateFont(font); + var descriptor = preEvaluatedFont.descriptor; + var fontRefIsRef = (0, _primitives.isRef)(fontRef), + fontID; + + if (fontRefIsRef) { + fontID = fontRef.toString(); + } + + if ((0, _primitives.isDict)(descriptor)) { + if (!descriptor.fontAliases) { + descriptor.fontAliases = Object.create(null); + } + + var fontAliases = descriptor.fontAliases; + var hash = preEvaluatedFont.hash; + + if (fontAliases[hash]) { + var aliasFontRef = fontAliases[hash].aliasRef; + + if (fontRefIsRef && aliasFontRef && this.fontCache.has(aliasFontRef)) { + this.fontCache.putAlias(fontRef, aliasFontRef); + return this.fontCache.get(fontRef); + } + } else { + fontAliases[hash] = { + fontID: _fonts.Font.getFontID() + }; + } + + if (fontRefIsRef) { + fontAliases[hash].aliasRef = fontRef; + } + + fontID = fontAliases[hash].fontID; + } + + if (fontRefIsRef) { + this.fontCache.put(fontRef, fontCapability.promise); + } else { + if (!fontID) { + fontID = this.idFactory.createObjId(); + } + + this.fontCache.put('id_' + fontID, fontCapability.promise); + } + + (0, _util.assert)(fontID, 'The "fontID" must be defined.'); + font.loadedName = 'g_' + this.pdfManager.docId + '_f' + fontID; + font.translated = fontCapability.promise; + var translatedPromise; + + try { + translatedPromise = this.translateFont(preEvaluatedFont); + } catch (e) { + translatedPromise = Promise.reject(e); + } + + translatedPromise.then(function (translatedFont) { + if (translatedFont.fontType !== undefined) { + var xrefFontStats = xref.stats.fontTypes; + xrefFontStats[translatedFont.fontType] = true; + } + + fontCapability.resolve(new TranslatedFont(font.loadedName, translatedFont, font)); + }).catch(function (reason) { + _this6.handler.send('UnsupportedFeature', { + featureId: _util.UNSUPPORTED_FEATURES.font + }); + + try { + var descriptor = preEvaluatedFont.descriptor; + var fontFile3 = descriptor && descriptor.get('FontFile3'); + var subtype = fontFile3 && fontFile3.get('Subtype'); + var fontType = (0, _fonts.getFontType)(preEvaluatedFont.type, subtype && subtype.name); + var xrefFontStats = xref.stats.fontTypes; + xrefFontStats[fontType] = true; + } catch (ex) {} + + fontCapability.resolve(new TranslatedFont(font.loadedName, new _fonts.ErrorFont(reason instanceof Error ? reason.message : reason), font)); + }); + return fontCapability.promise; + }, + buildPath: function PartialEvaluator_buildPath(operatorList, fn, args) { + var lastIndex = operatorList.length - 1; + + if (!args) { + args = []; + } + + if (lastIndex < 0 || operatorList.fnArray[lastIndex] !== _util.OPS.constructPath) { + operatorList.addOp(_util.OPS.constructPath, [[fn], args]); + } else { + var opArgs = operatorList.argsArray[lastIndex]; + opArgs[0].push(fn); + Array.prototype.push.apply(opArgs[1], args); + } + }, + handleColorN: function PartialEvaluator_handleColorN(operatorList, fn, args, cs, patterns, resources, task) { + var patternName = args[args.length - 1]; + var pattern; + + if ((0, _primitives.isName)(patternName) && (pattern = patterns.get(patternName.name))) { + var dict = (0, _primitives.isStream)(pattern) ? pattern.dict : pattern; + var typeNum = dict.get('PatternType'); + + if (typeNum === TILING_PATTERN) { + var color = cs.base ? cs.base.getRgb(args, 0) : null; + return this.handleTilingType(fn, color, resources, pattern, dict, operatorList, task); + } else if (typeNum === SHADING_PATTERN) { + var shading = dict.get('Shading'); + var matrix = dict.getArray('Matrix'); + pattern = _pattern.Pattern.parseShading(shading, matrix, this.xref, resources, this.handler, this.pdfFunctionFactory); + operatorList.addOp(fn, pattern.getIR()); + return Promise.resolve(); + } + + return Promise.reject(new Error('Unknown PatternType: ' + typeNum)); + } + + operatorList.addOp(fn, args); + return Promise.resolve(); + }, + getOperatorList: function getOperatorList(_ref6) { + var _this7 = this; + + var stream = _ref6.stream, + task = _ref6.task, + resources = _ref6.resources, + operatorList = _ref6.operatorList, + _ref6$initialState = _ref6.initialState, + initialState = _ref6$initialState === void 0 ? null : _ref6$initialState; + resources = resources || _primitives.Dict.empty; + initialState = initialState || new EvalState(); + + if (!operatorList) { + throw new Error('getOperatorList: missing "operatorList" parameter'); + } + + var self = this; + var xref = this.xref; + var imageCache = Object.create(null); + + var xobjs = resources.get('XObject') || _primitives.Dict.empty; + + var patterns = resources.get('Pattern') || _primitives.Dict.empty; + + var stateManager = new StateManager(initialState); + var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager); + var timeSlotManager = new TimeSlotManager(); + + function closePendingRestoreOPS(argument) { + for (var i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) { + operatorList.addOp(_util.OPS.restore, []); + } + } + + return new Promise(function promiseBody(resolve, reject) { + var next = function next(promise) { + promise.then(function () { + try { + promiseBody(resolve, reject); + } catch (ex) { + reject(ex); + } + }, reject); + }; + + task.ensureNotTerminated(); + timeSlotManager.reset(); + var stop, + operation = {}, + i, + ii, + cs; + + while (!(stop = timeSlotManager.check())) { + operation.args = null; + + if (!preprocessor.read(operation)) { + break; + } + + var args = operation.args; + var fn = operation.fn; + + switch (fn | 0) { + case _util.OPS.paintXObject: + var name = args[0].name; + + if (name && imageCache[name] !== undefined) { + operatorList.addOp(imageCache[name].fn, imageCache[name].args); + args = null; + continue; + } + + next(new Promise(function (resolveXObject, rejectXObject) { + if (!name) { + throw new _util.FormatError('XObject must be referred to by name.'); + } + + var xobj = xobjs.get(name); + + if (!xobj) { + operatorList.addOp(fn, args); + resolveXObject(); + return; + } + + if (!(0, _primitives.isStream)(xobj)) { + throw new _util.FormatError('XObject should be a stream'); + } + + var type = xobj.dict.get('Subtype'); + + if (!(0, _primitives.isName)(type)) { + throw new _util.FormatError('XObject should have a Name subtype'); + } + + if (type.name === 'Form') { + stateManager.save(); + self.buildFormXObject(resources, xobj, null, operatorList, task, stateManager.state.clone()).then(function () { + stateManager.restore(); + resolveXObject(); + }, rejectXObject); + return; + } else if (type.name === 'Image') { + self.buildPaintImageXObject({ + resources: resources, + image: xobj, + operatorList: operatorList, + cacheKey: name, + imageCache: imageCache + }).then(resolveXObject, rejectXObject); + return; + } else if (type.name === 'PS') { + (0, _util.info)('Ignored XObject subtype PS'); + } else { + throw new _util.FormatError("Unhandled XObject subtype ".concat(type.name)); + } + + resolveXObject(); + }).catch(function (reason) { + if (self.options.ignoreErrors) { + self.handler.send('UnsupportedFeature', { + featureId: _util.UNSUPPORTED_FEATURES.unknown + }); + (0, _util.warn)("getOperatorList - ignoring XObject: \"".concat(reason, "\".")); + return; + } + + throw reason; + })); + return; + + case _util.OPS.setFont: + var fontSize = args[1]; + next(self.handleSetFont(resources, args, null, operatorList, task, stateManager.state).then(function (loadedName) { + operatorList.addDependency(loadedName); + operatorList.addOp(_util.OPS.setFont, [loadedName, fontSize]); + })); + return; + + case _util.OPS.endInlineImage: + var cacheKey = args[0].cacheKey; + + if (cacheKey) { + var cacheEntry = imageCache[cacheKey]; + + if (cacheEntry !== undefined) { + operatorList.addOp(cacheEntry.fn, cacheEntry.args); + args = null; + continue; + } + } + + next(self.buildPaintImageXObject({ + resources: resources, + image: args[0], + isInline: true, + operatorList: operatorList, + cacheKey: cacheKey, + imageCache: imageCache + })); + return; + + case _util.OPS.showText: + args[0] = self.handleText(args[0], stateManager.state); + break; + + case _util.OPS.showSpacedText: + var arr = args[0]; + var combinedGlyphs = []; + var arrLength = arr.length; + var state = stateManager.state; + + for (i = 0; i < arrLength; ++i) { + var arrItem = arr[i]; + + if ((0, _util.isString)(arrItem)) { + Array.prototype.push.apply(combinedGlyphs, self.handleText(arrItem, state)); + } else if ((0, _util.isNum)(arrItem)) { + combinedGlyphs.push(arrItem); + } + } + + args[0] = combinedGlyphs; + fn = _util.OPS.showText; + break; + + case _util.OPS.nextLineShowText: + operatorList.addOp(_util.OPS.nextLine); + args[0] = self.handleText(args[0], stateManager.state); + fn = _util.OPS.showText; + break; + + case _util.OPS.nextLineSetSpacingShowText: + operatorList.addOp(_util.OPS.nextLine); + operatorList.addOp(_util.OPS.setWordSpacing, [args.shift()]); + operatorList.addOp(_util.OPS.setCharSpacing, [args.shift()]); + args[0] = self.handleText(args[0], stateManager.state); + fn = _util.OPS.showText; + break; + + case _util.OPS.setTextRenderingMode: + stateManager.state.textRenderingMode = args[0]; + break; + + case _util.OPS.setFillColorSpace: + stateManager.state.fillColorSpace = _colorspace.ColorSpace.parse(args[0], xref, resources, self.pdfFunctionFactory); + continue; + + case _util.OPS.setStrokeColorSpace: + stateManager.state.strokeColorSpace = _colorspace.ColorSpace.parse(args[0], xref, resources, self.pdfFunctionFactory); + continue; + + case _util.OPS.setFillColor: + cs = stateManager.state.fillColorSpace; + args = cs.getRgb(args, 0); + fn = _util.OPS.setFillRGBColor; + break; + + case _util.OPS.setStrokeColor: + cs = stateManager.state.strokeColorSpace; + args = cs.getRgb(args, 0); + fn = _util.OPS.setStrokeRGBColor; + break; + + case _util.OPS.setFillGray: + stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.gray; + args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0); + fn = _util.OPS.setFillRGBColor; + break; + + case _util.OPS.setStrokeGray: + stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.gray; + args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0); + fn = _util.OPS.setStrokeRGBColor; + break; + + case _util.OPS.setFillCMYKColor: + stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.cmyk; + args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0); + fn = _util.OPS.setFillRGBColor; + break; + + case _util.OPS.setStrokeCMYKColor: + stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.cmyk; + args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0); + fn = _util.OPS.setStrokeRGBColor; + break; + + case _util.OPS.setFillRGBColor: + stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.rgb; + args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0); + break; + + case _util.OPS.setStrokeRGBColor: + stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.rgb; + args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0); + break; + + case _util.OPS.setFillColorN: + cs = stateManager.state.fillColorSpace; + + if (cs.name === 'Pattern') { + next(self.handleColorN(operatorList, _util.OPS.setFillColorN, args, cs, patterns, resources, task)); + return; + } + + args = cs.getRgb(args, 0); + fn = _util.OPS.setFillRGBColor; + break; + + case _util.OPS.setStrokeColorN: + cs = stateManager.state.strokeColorSpace; + + if (cs.name === 'Pattern') { + next(self.handleColorN(operatorList, _util.OPS.setStrokeColorN, args, cs, patterns, resources, task)); + return; + } + + args = cs.getRgb(args, 0); + fn = _util.OPS.setStrokeRGBColor; + break; + + case _util.OPS.shadingFill: + var shadingRes = resources.get('Shading'); + + if (!shadingRes) { + throw new _util.FormatError('No shading resource found'); + } + + var shading = shadingRes.get(args[0].name); + + if (!shading) { + throw new _util.FormatError('No shading object found'); + } + + var shadingFill = _pattern.Pattern.parseShading(shading, null, xref, resources, self.handler, self.pdfFunctionFactory); + + var patternIR = shadingFill.getIR(); + args = [patternIR]; + fn = _util.OPS.shadingFill; + break; + + case _util.OPS.setGState: + var dictName = args[0]; + var extGState = resources.get('ExtGState'); + + if (!(0, _primitives.isDict)(extGState) || !extGState.has(dictName.name)) { + break; + } + + var gState = extGState.get(dictName.name); + next(self.setGState(resources, gState, operatorList, task, stateManager)); + return; + + case _util.OPS.moveTo: + case _util.OPS.lineTo: + case _util.OPS.curveTo: + case _util.OPS.curveTo2: + case _util.OPS.curveTo3: + case _util.OPS.closePath: + self.buildPath(operatorList, fn, args); + continue; + + case _util.OPS.rectangle: + self.buildPath(operatorList, fn, args); + continue; + + case _util.OPS.markPoint: + case _util.OPS.markPointProps: + case _util.OPS.beginMarkedContent: + case _util.OPS.beginMarkedContentProps: + case _util.OPS.endMarkedContent: + case _util.OPS.beginCompat: + case _util.OPS.endCompat: + continue; + + default: + if (args !== null) { + for (i = 0, ii = args.length; i < ii; i++) { + if (args[i] instanceof _primitives.Dict) { + break; + } + } + + if (i < ii) { + (0, _util.warn)('getOperatorList - ignoring operator: ' + fn); + continue; + } + } + + } + + operatorList.addOp(fn, args); + } + + if (stop) { + next(deferred); + return; + } + + closePendingRestoreOPS(); + resolve(); + }).catch(function (reason) { + if (_this7.options.ignoreErrors) { + _this7.handler.send('UnsupportedFeature', { + featureId: _util.UNSUPPORTED_FEATURES.unknown + }); + + (0, _util.warn)("getOperatorList - ignoring errors during \"".concat(task.name, "\" ") + "task: \"".concat(reason, "\".")); + closePendingRestoreOPS(); + return; + } + + throw reason; + }); + }, + getTextContent: function getTextContent(_ref7) { + var _this8 = this; + + var stream = _ref7.stream, + task = _ref7.task, + resources = _ref7.resources, + _ref7$stateManager = _ref7.stateManager, + stateManager = _ref7$stateManager === void 0 ? null : _ref7$stateManager, + _ref7$normalizeWhites = _ref7.normalizeWhitespace, + normalizeWhitespace = _ref7$normalizeWhites === void 0 ? false : _ref7$normalizeWhites, + _ref7$combineTextItem = _ref7.combineTextItems, + combineTextItems = _ref7$combineTextItem === void 0 ? false : _ref7$combineTextItem, + sink = _ref7.sink, + _ref7$seenStyles = _ref7.seenStyles, + seenStyles = _ref7$seenStyles === void 0 ? Object.create(null) : _ref7$seenStyles; + resources = resources || _primitives.Dict.empty; + stateManager = stateManager || new StateManager(new TextState()); + var WhitespaceRegexp = /\s/g; + var textContent = { + items: [], + styles: Object.create(null) + }; + var textContentItem = { + initialized: false, + str: [], + width: 0, + height: 0, + vertical: false, + lastAdvanceWidth: 0, + lastAdvanceHeight: 0, + textAdvanceScale: 0, + spaceWidth: 0, + fakeSpaceMin: Infinity, + fakeMultiSpaceMin: Infinity, + fakeMultiSpaceMax: -0, + textRunBreakAllowed: false, + transform: null, + fontName: null + }; + var SPACE_FACTOR = 0.3; + var MULTI_SPACE_FACTOR = 1.5; + var MULTI_SPACE_FACTOR_MAX = 4; + var self = this; + var xref = this.xref; + var xobjs = null; + var skipEmptyXObjs = Object.create(null); + var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager); + var textState; + + function ensureTextContentItem() { + if (textContentItem.initialized) { + return textContentItem; + } + + var font = textState.font; + + if (!(font.loadedName in seenStyles)) { + seenStyles[font.loadedName] = true; + textContent.styles[font.loadedName] = { + fontFamily: font.fallbackName, + ascent: font.ascent, + descent: font.descent, + vertical: !!font.vertical + }; + } + + textContentItem.fontName = font.loadedName; + var tsm = [textState.fontSize * textState.textHScale, 0, 0, textState.fontSize, 0, textState.textRise]; + + if (font.isType3Font && textState.fontMatrix !== _util.FONT_IDENTITY_MATRIX && textState.fontSize === 1) { + var glyphHeight = font.bbox[3] - font.bbox[1]; + + if (glyphHeight > 0) { + glyphHeight = glyphHeight * textState.fontMatrix[3]; + tsm[3] *= glyphHeight; + } + } + + var trm = _util.Util.transform(textState.ctm, _util.Util.transform(textState.textMatrix, tsm)); + + textContentItem.transform = trm; + + if (!font.vertical) { + textContentItem.width = 0; + textContentItem.height = Math.sqrt(trm[2] * trm[2] + trm[3] * trm[3]); + textContentItem.vertical = false; + } else { + textContentItem.width = Math.sqrt(trm[0] * trm[0] + trm[1] * trm[1]); + textContentItem.height = 0; + textContentItem.vertical = true; + } + + var a = textState.textLineMatrix[0]; + var b = textState.textLineMatrix[1]; + var scaleLineX = Math.sqrt(a * a + b * b); + a = textState.ctm[0]; + b = textState.ctm[1]; + var scaleCtmX = Math.sqrt(a * a + b * b); + textContentItem.textAdvanceScale = scaleCtmX * scaleLineX; + textContentItem.lastAdvanceWidth = 0; + textContentItem.lastAdvanceHeight = 0; + var spaceWidth = font.spaceWidth / 1000 * textState.fontSize; + + if (spaceWidth) { + textContentItem.spaceWidth = spaceWidth; + textContentItem.fakeSpaceMin = spaceWidth * SPACE_FACTOR; + textContentItem.fakeMultiSpaceMin = spaceWidth * MULTI_SPACE_FACTOR; + textContentItem.fakeMultiSpaceMax = spaceWidth * MULTI_SPACE_FACTOR_MAX; + textContentItem.textRunBreakAllowed = !font.isMonospace; + } else { + textContentItem.spaceWidth = 0; + textContentItem.fakeSpaceMin = Infinity; + textContentItem.fakeMultiSpaceMin = Infinity; + textContentItem.fakeMultiSpaceMax = 0; + textContentItem.textRunBreakAllowed = false; + } + + textContentItem.initialized = true; + return textContentItem; + } + + function replaceWhitespace(str) { + var i = 0, + ii = str.length, + code; + + while (i < ii && (code = str.charCodeAt(i)) >= 0x20 && code <= 0x7F) { + i++; + } + + return i < ii ? str.replace(WhitespaceRegexp, ' ') : str; + } + + function runBidiTransform(textChunk) { + var str = textChunk.str.join(''); + var bidiResult = (0, _bidi.bidi)(str, -1, textChunk.vertical); + return { + str: normalizeWhitespace ? replaceWhitespace(bidiResult.str) : bidiResult.str, + dir: bidiResult.dir, + width: textChunk.width, + height: textChunk.height, + transform: textChunk.transform, + fontName: textChunk.fontName + }; + } + + function handleSetFont(fontName, fontRef) { + return self.loadFont(fontName, fontRef, resources).then(function (translated) { + textState.font = translated.font; + textState.fontMatrix = translated.font.fontMatrix || _util.FONT_IDENTITY_MATRIX; + }); + } + + function buildTextContentItem(chars) { + var font = textState.font; + var textChunk = ensureTextContentItem(); + var width = 0; + var height = 0; + var glyphs = font.charsToGlyphs(chars); + + for (var i = 0; i < glyphs.length; i++) { + var glyph = glyphs[i]; + var glyphWidth = null; + + if (font.vertical && glyph.vmetric) { + glyphWidth = glyph.vmetric[0]; + } else { + glyphWidth = glyph.width; + } + + var glyphUnicode = glyph.unicode; + var NormalizedUnicodes = (0, _unicode.getNormalizedUnicodes)(); + + if (NormalizedUnicodes[glyphUnicode] !== undefined) { + glyphUnicode = NormalizedUnicodes[glyphUnicode]; + } + + glyphUnicode = (0, _unicode.reverseIfRtl)(glyphUnicode); + var charSpacing = textState.charSpacing; + + if (glyph.isSpace) { + var wordSpacing = textState.wordSpacing; + charSpacing += wordSpacing; + + if (wordSpacing > 0) { + addFakeSpaces(wordSpacing, textChunk.str); + } + } + + var tx = 0; + var ty = 0; + + if (!font.vertical) { + var w0 = glyphWidth * textState.fontMatrix[0]; + tx = (w0 * textState.fontSize + charSpacing) * textState.textHScale; + width += tx; + } else { + var w1 = glyphWidth * textState.fontMatrix[0]; + ty = w1 * textState.fontSize + charSpacing; + height += ty; + } + + textState.translateTextMatrix(tx, ty); + textChunk.str.push(glyphUnicode); + } + + if (!font.vertical) { + textChunk.lastAdvanceWidth = width; + textChunk.width += width; + } else { + textChunk.lastAdvanceHeight = height; + textChunk.height += Math.abs(height); + } + + return textChunk; + } + + function addFakeSpaces(width, strBuf) { + if (width < textContentItem.fakeSpaceMin) { + return; + } + + if (width < textContentItem.fakeMultiSpaceMin) { + strBuf.push(' '); + return; + } + + var fakeSpaces = Math.round(width / textContentItem.spaceWidth); + + while (fakeSpaces-- > 0) { + strBuf.push(' '); + } + } + + function flushTextContentItem() { + if (!textContentItem.initialized) { + return; + } + + if (!textContentItem.vertical) { + textContentItem.width *= textContentItem.textAdvanceScale; + } else { + textContentItem.height *= textContentItem.textAdvanceScale; + } + + textContent.items.push(runBidiTransform(textContentItem)); + textContentItem.initialized = false; + textContentItem.str.length = 0; + } + + function enqueueChunk() { + var length = textContent.items.length; + + if (length > 0) { + sink.enqueue(textContent, length); + textContent.items = []; + textContent.styles = Object.create(null); + } + } + + var timeSlotManager = new TimeSlotManager(); + return new Promise(function promiseBody(resolve, reject) { + var next = function next(promise) { + enqueueChunk(); + Promise.all([promise, sink.ready]).then(function () { + try { + promiseBody(resolve, reject); + } catch (ex) { + reject(ex); + } + }, reject); + }; + + task.ensureNotTerminated(); + timeSlotManager.reset(); + var stop, + operation = {}, + args = []; + + while (!(stop = timeSlotManager.check())) { + args.length = 0; + operation.args = args; + + if (!preprocessor.read(operation)) { + break; + } + + textState = stateManager.state; + var fn = operation.fn; + args = operation.args; + var advance, diff; + + switch (fn | 0) { + case _util.OPS.setFont: + var fontNameArg = args[0].name, + fontSizeArg = args[1]; + + if (textState.font && fontNameArg === textState.fontName && fontSizeArg === textState.fontSize) { + break; + } + + flushTextContentItem(); + textState.fontName = fontNameArg; + textState.fontSize = fontSizeArg; + next(handleSetFont(fontNameArg, null)); + return; + + case _util.OPS.setTextRise: + flushTextContentItem(); + textState.textRise = args[0]; + break; + + case _util.OPS.setHScale: + flushTextContentItem(); + textState.textHScale = args[0] / 100; + break; + + case _util.OPS.setLeading: + flushTextContentItem(); + textState.leading = args[0]; + break; + + case _util.OPS.moveText: + var isSameTextLine = !textState.font ? false : (textState.font.vertical ? args[0] : args[1]) === 0; + advance = args[0] - args[1]; + + if (combineTextItems && isSameTextLine && textContentItem.initialized && advance > 0 && advance <= textContentItem.fakeMultiSpaceMax) { + textState.translateTextLineMatrix(args[0], args[1]); + textContentItem.width += args[0] - textContentItem.lastAdvanceWidth; + textContentItem.height += args[1] - textContentItem.lastAdvanceHeight; + diff = args[0] - textContentItem.lastAdvanceWidth - (args[1] - textContentItem.lastAdvanceHeight); + addFakeSpaces(diff, textContentItem.str); + break; + } + + flushTextContentItem(); + textState.translateTextLineMatrix(args[0], args[1]); + textState.textMatrix = textState.textLineMatrix.slice(); + break; + + case _util.OPS.setLeadingMoveText: + flushTextContentItem(); + textState.leading = -args[1]; + textState.translateTextLineMatrix(args[0], args[1]); + textState.textMatrix = textState.textLineMatrix.slice(); + break; + + case _util.OPS.nextLine: + flushTextContentItem(); + textState.carriageReturn(); + break; + + case _util.OPS.setTextMatrix: + advance = textState.calcTextLineMatrixAdvance(args[0], args[1], args[2], args[3], args[4], args[5]); + + if (combineTextItems && advance !== null && textContentItem.initialized && advance.value > 0 && advance.value <= textContentItem.fakeMultiSpaceMax) { + textState.translateTextLineMatrix(advance.width, advance.height); + textContentItem.width += advance.width - textContentItem.lastAdvanceWidth; + textContentItem.height += advance.height - textContentItem.lastAdvanceHeight; + diff = advance.width - textContentItem.lastAdvanceWidth - (advance.height - textContentItem.lastAdvanceHeight); + addFakeSpaces(diff, textContentItem.str); + break; + } + + flushTextContentItem(); + textState.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); + textState.setTextLineMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); + break; + + case _util.OPS.setCharSpacing: + textState.charSpacing = args[0]; + break; + + case _util.OPS.setWordSpacing: + textState.wordSpacing = args[0]; + break; + + case _util.OPS.beginText: + flushTextContentItem(); + textState.textMatrix = _util.IDENTITY_MATRIX.slice(); + textState.textLineMatrix = _util.IDENTITY_MATRIX.slice(); + break; + + case _util.OPS.showSpacedText: + var items = args[0]; + var offset; + + for (var j = 0, jj = items.length; j < jj; j++) { + if (typeof items[j] === 'string') { + buildTextContentItem(items[j]); + } else if ((0, _util.isNum)(items[j])) { + ensureTextContentItem(); + advance = items[j] * textState.fontSize / 1000; + var breakTextRun = false; + + if (textState.font.vertical) { + offset = advance; + textState.translateTextMatrix(0, offset); + breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax; + + if (!breakTextRun) { + textContentItem.height += offset; + } + } else { + advance = -advance; + offset = advance * textState.textHScale; + textState.translateTextMatrix(offset, 0); + breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax; + + if (!breakTextRun) { + textContentItem.width += offset; + } + } + + if (breakTextRun) { + flushTextContentItem(); + } else if (advance > 0) { + addFakeSpaces(advance, textContentItem.str); + } + } + } + + break; + + case _util.OPS.showText: + buildTextContentItem(args[0]); + break; + + case _util.OPS.nextLineShowText: + flushTextContentItem(); + textState.carriageReturn(); + buildTextContentItem(args[0]); + break; + + case _util.OPS.nextLineSetSpacingShowText: + flushTextContentItem(); + textState.wordSpacing = args[0]; + textState.charSpacing = args[1]; + textState.carriageReturn(); + buildTextContentItem(args[2]); + break; + + case _util.OPS.paintXObject: + flushTextContentItem(); + + if (!xobjs) { + xobjs = resources.get('XObject') || _primitives.Dict.empty; + } + + var name = args[0].name; + + if (name && skipEmptyXObjs[name] !== undefined) { + break; + } + + next(new Promise(function (resolveXObject, rejectXObject) { + if (!name) { + throw new _util.FormatError('XObject must be referred to by name.'); + } + + var xobj = xobjs.get(name); + + if (!xobj) { + resolveXObject(); + return; + } + + if (!(0, _primitives.isStream)(xobj)) { + throw new _util.FormatError('XObject should be a stream'); + } + + var type = xobj.dict.get('Subtype'); + + if (!(0, _primitives.isName)(type)) { + throw new _util.FormatError('XObject should have a Name subtype'); + } + + if (type.name !== 'Form') { + skipEmptyXObjs[name] = true; + resolveXObject(); + return; + } + + var currentState = stateManager.state.clone(); + var xObjStateManager = new StateManager(currentState); + var matrix = xobj.dict.getArray('Matrix'); + + if (Array.isArray(matrix) && matrix.length === 6) { + xObjStateManager.transform(matrix); + } + + enqueueChunk(); + var sinkWrapper = { + enqueueInvoked: false, + enqueue: function enqueue(chunk, size) { + this.enqueueInvoked = true; + sink.enqueue(chunk, size); + }, + + get desiredSize() { + return sink.desiredSize; + }, + + get ready() { + return sink.ready; + } + + }; + self.getTextContent({ + stream: xobj, + task: task, + resources: xobj.dict.get('Resources') || resources, + stateManager: xObjStateManager, + normalizeWhitespace: normalizeWhitespace, + combineTextItems: combineTextItems, + sink: sinkWrapper, + seenStyles: seenStyles + }).then(function () { + if (!sinkWrapper.enqueueInvoked) { + skipEmptyXObjs[name] = true; + } + + resolveXObject(); + }, rejectXObject); + }).catch(function (reason) { + if (reason instanceof _util.AbortException) { + return; + } + + if (self.options.ignoreErrors) { + (0, _util.warn)("getTextContent - ignoring XObject: \"".concat(reason, "\".")); + return; + } + + throw reason; + })); + return; + + case _util.OPS.setGState: + flushTextContentItem(); + var dictName = args[0]; + var extGState = resources.get('ExtGState'); + + if (!(0, _primitives.isDict)(extGState) || !(0, _primitives.isName)(dictName)) { + break; + } + + var gState = extGState.get(dictName.name); + + if (!(0, _primitives.isDict)(gState)) { + break; + } + + var gStateFont = gState.get('Font'); + + if (gStateFont) { + textState.fontName = null; + textState.fontSize = gStateFont[1]; + next(handleSetFont(null, gStateFont[0])); + return; + } + + break; + } + + if (textContent.items.length >= sink.desiredSize) { + stop = true; + break; + } + } + + if (stop) { + next(deferred); + return; + } + + flushTextContentItem(); + enqueueChunk(); + resolve(); + }).catch(function (reason) { + if (reason instanceof _util.AbortException) { + return; + } + + if (_this8.options.ignoreErrors) { + (0, _util.warn)("getTextContent - ignoring errors during \"".concat(task.name, "\" ") + "task: \"".concat(reason, "\".")); + flushTextContentItem(); + enqueueChunk(); + return; + } + + throw reason; + }); + }, + extractDataStructures: function PartialEvaluator_extractDataStructures(dict, baseDict, properties) { + var _this9 = this; + + var xref = this.xref; + var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode'); + var toUnicodePromise = toUnicode ? this.readToUnicode(toUnicode) : Promise.resolve(undefined); + + if (properties.composite) { + var cidSystemInfo = dict.get('CIDSystemInfo'); + + if ((0, _primitives.isDict)(cidSystemInfo)) { + properties.cidSystemInfo = { + registry: (0, _util.stringToPDFString)(cidSystemInfo.get('Registry')), + ordering: (0, _util.stringToPDFString)(cidSystemInfo.get('Ordering')), + supplement: cidSystemInfo.get('Supplement') + }; + } + + var cidToGidMap = dict.get('CIDToGIDMap'); + + if ((0, _primitives.isStream)(cidToGidMap)) { + properties.cidToGidMap = this.readCidToGidMap(cidToGidMap); + } + } + + var differences = []; + var baseEncodingName = null; + var encoding; + + if (dict.has('Encoding')) { + encoding = dict.get('Encoding'); + + if ((0, _primitives.isDict)(encoding)) { + baseEncodingName = encoding.get('BaseEncoding'); + baseEncodingName = (0, _primitives.isName)(baseEncodingName) ? baseEncodingName.name : null; + + if (encoding.has('Differences')) { + var diffEncoding = encoding.get('Differences'); + var index = 0; + + for (var j = 0, jj = diffEncoding.length; j < jj; j++) { + var data = xref.fetchIfRef(diffEncoding[j]); + + if ((0, _util.isNum)(data)) { + index = data; + } else if ((0, _primitives.isName)(data)) { + differences[index++] = data.name; + } else { + throw new _util.FormatError("Invalid entry in 'Differences' array: ".concat(data)); + } + } + } + } else if ((0, _primitives.isName)(encoding)) { + baseEncodingName = encoding.name; + } else { + throw new _util.FormatError('Encoding is not a Name nor a Dict'); + } + + if (baseEncodingName !== 'MacRomanEncoding' && baseEncodingName !== 'MacExpertEncoding' && baseEncodingName !== 'WinAnsiEncoding') { + baseEncodingName = null; + } + } + + if (baseEncodingName) { + properties.defaultEncoding = (0, _encodings.getEncoding)(baseEncodingName).slice(); + } else { + var isSymbolicFont = !!(properties.flags & _fonts.FontFlags.Symbolic); + var isNonsymbolicFont = !!(properties.flags & _fonts.FontFlags.Nonsymbolic); + encoding = _encodings.StandardEncoding; + + if (properties.type === 'TrueType' && !isNonsymbolicFont) { + encoding = _encodings.WinAnsiEncoding; + } + + if (isSymbolicFont) { + encoding = _encodings.MacRomanEncoding; + + if (!properties.file) { + if (/Symbol/i.test(properties.name)) { + encoding = _encodings.SymbolSetEncoding; + } else if (/Dingbats/i.test(properties.name)) { + encoding = _encodings.ZapfDingbatsEncoding; + } + } + } + + properties.defaultEncoding = encoding; + } + + properties.differences = differences; + properties.baseEncodingName = baseEncodingName; + properties.hasEncoding = !!baseEncodingName || differences.length > 0; + properties.dict = dict; + return toUnicodePromise.then(function (toUnicode) { + properties.toUnicode = toUnicode; + return _this9.buildToUnicode(properties); + }).then(function (toUnicode) { + properties.toUnicode = toUnicode; + return properties; + }); + }, + _buildSimpleFontToUnicode: function _buildSimpleFontToUnicode(properties) { + (0, _util.assert)(!properties.composite, 'Must be a simple font.'); + var toUnicode = [], + charcode, + glyphName; + var encoding = properties.defaultEncoding.slice(); + var baseEncodingName = properties.baseEncodingName; + var differences = properties.differences; + + for (charcode in differences) { + glyphName = differences[charcode]; + + if (glyphName === '.notdef') { + continue; + } + + encoding[charcode] = glyphName; + } + + var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)(); + + for (charcode in encoding) { + glyphName = encoding[charcode]; + + if (glyphName === '') { + continue; + } else if (glyphsUnicodeMap[glyphName] === undefined) { + var code = 0; + + switch (glyphName[0]) { + case 'G': + if (glyphName.length === 3) { + code = parseInt(glyphName.substring(1), 16); + } + + break; + + case 'g': + if (glyphName.length === 5) { + code = parseInt(glyphName.substring(1), 16); + } + + break; + + case 'C': + case 'c': + if (glyphName.length >= 3) { + code = +glyphName.substring(1); + } + + break; + + default: + var unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap); + + if (unicode !== -1) { + code = unicode; + } + + } + + if (code) { + if (baseEncodingName && code === +charcode) { + var baseEncoding = (0, _encodings.getEncoding)(baseEncodingName); + + if (baseEncoding && (glyphName = baseEncoding[charcode])) { + toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]); + continue; + } + } + + toUnicode[charcode] = String.fromCodePoint(code); + } + + continue; + } + + toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]); + } + + return new _fonts.ToUnicodeMap(toUnicode); + }, + buildToUnicode: function buildToUnicode(properties) { + properties.hasIncludedToUnicodeMap = !!properties.toUnicode && properties.toUnicode.length > 0; + + if (properties.hasIncludedToUnicodeMap) { + if (!properties.composite && properties.hasEncoding) { + properties.fallbackToUnicode = this._buildSimpleFontToUnicode(properties); + } + + return Promise.resolve(properties.toUnicode); + } + + if (!properties.composite) { + return Promise.resolve(this._buildSimpleFontToUnicode(properties)); + } + + if (properties.composite && (properties.cMap.builtInCMap && !(properties.cMap instanceof _cmap.IdentityCMap) || properties.cidSystemInfo.registry === 'Adobe' && (properties.cidSystemInfo.ordering === 'GB1' || properties.cidSystemInfo.ordering === 'CNS1' || properties.cidSystemInfo.ordering === 'Japan1' || properties.cidSystemInfo.ordering === 'Korea1'))) { + var registry = properties.cidSystemInfo.registry; + var ordering = properties.cidSystemInfo.ordering; + + var ucs2CMapName = _primitives.Name.get(registry + '-' + ordering + '-UCS2'); + + return _cmap.CMapFactory.create({ + encoding: ucs2CMapName, + fetchBuiltInCMap: this.fetchBuiltInCMap, + useCMap: null + }).then(function (ucs2CMap) { + var cMap = properties.cMap; + var toUnicode = []; + cMap.forEach(function (charcode, cid) { + if (cid > 0xffff) { + throw new _util.FormatError('Max size of CID is 65,535'); + } + + var ucs2 = ucs2CMap.lookup(cid); + + if (ucs2) { + toUnicode[charcode] = String.fromCharCode((ucs2.charCodeAt(0) << 8) + ucs2.charCodeAt(1)); + } + }); + return new _fonts.ToUnicodeMap(toUnicode); + }); + } + + return Promise.resolve(new _fonts.IdentityToUnicodeMap(properties.firstChar, properties.lastChar)); + }, + readToUnicode: function PartialEvaluator_readToUnicode(toUnicode) { + var cmapObj = toUnicode; + + if ((0, _primitives.isName)(cmapObj)) { + return _cmap.CMapFactory.create({ + encoding: cmapObj, + fetchBuiltInCMap: this.fetchBuiltInCMap, + useCMap: null + }).then(function (cmap) { + if (cmap instanceof _cmap.IdentityCMap) { + return new _fonts.IdentityToUnicodeMap(0, 0xFFFF); + } + + return new _fonts.ToUnicodeMap(cmap.getMap()); + }); + } else if ((0, _primitives.isStream)(cmapObj)) { + return _cmap.CMapFactory.create({ + encoding: cmapObj, + fetchBuiltInCMap: this.fetchBuiltInCMap, + useCMap: null + }).then(function (cmap) { + if (cmap instanceof _cmap.IdentityCMap) { + return new _fonts.IdentityToUnicodeMap(0, 0xFFFF); + } + + var map = new Array(cmap.length); + cmap.forEach(function (charCode, token) { + var str = []; + + for (var k = 0; k < token.length; k += 2) { + var w1 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1); + + if ((w1 & 0xF800) !== 0xD800) { + str.push(w1); + continue; + } + + k += 2; + var w2 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1); + str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000); + } + + map[charCode] = String.fromCodePoint.apply(String, str); + }); + return new _fonts.ToUnicodeMap(map); + }); + } + + return Promise.resolve(null); + }, + readCidToGidMap: function PartialEvaluator_readCidToGidMap(cidToGidStream) { + var glyphsData = cidToGidStream.getBytes(); + var result = []; + + for (var j = 0, jj = glyphsData.length; j < jj; j++) { + var glyphID = glyphsData[j++] << 8 | glyphsData[j]; + + if (glyphID === 0) { + continue; + } + + var code = j >> 1; + result[code] = glyphID; + } + + return result; + }, + extractWidths: function PartialEvaluator_extractWidths(dict, descriptor, properties) { + var xref = this.xref; + var glyphsWidths = []; + var defaultWidth = 0; + var glyphsVMetrics = []; + var defaultVMetrics; + var i, ii, j, jj, start, code, widths; + + if (properties.composite) { + defaultWidth = dict.has('DW') ? dict.get('DW') : 1000; + widths = dict.get('W'); + + if (widths) { + for (i = 0, ii = widths.length; i < ii; i++) { + start = xref.fetchIfRef(widths[i++]); + code = xref.fetchIfRef(widths[i]); + + if (Array.isArray(code)) { + for (j = 0, jj = code.length; j < jj; j++) { + glyphsWidths[start++] = xref.fetchIfRef(code[j]); + } + } else { + var width = xref.fetchIfRef(widths[++i]); + + for (j = start; j <= code; j++) { + glyphsWidths[j] = width; + } + } + } + } + + if (properties.vertical) { + var vmetrics = dict.getArray('DW2') || [880, -1000]; + defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]]; + vmetrics = dict.get('W2'); + + if (vmetrics) { + for (i = 0, ii = vmetrics.length; i < ii; i++) { + start = xref.fetchIfRef(vmetrics[i++]); + code = xref.fetchIfRef(vmetrics[i]); + + if (Array.isArray(code)) { + for (j = 0, jj = code.length; j < jj; j++) { + glyphsVMetrics[start++] = [xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j])]; + } + } else { + var vmetric = [xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i])]; + + for (j = start; j <= code; j++) { + glyphsVMetrics[j] = vmetric; + } + } + } + } + } + } else { + var firstChar = properties.firstChar; + widths = dict.get('Widths'); + + if (widths) { + j = firstChar; + + for (i = 0, ii = widths.length; i < ii; i++) { + glyphsWidths[j++] = xref.fetchIfRef(widths[i]); + } + + defaultWidth = parseFloat(descriptor.get('MissingWidth')) || 0; + } else { + var baseFontName = dict.get('BaseFont'); + + if ((0, _primitives.isName)(baseFontName)) { + var metrics = this.getBaseFontMetrics(baseFontName.name); + glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties); + defaultWidth = metrics.defaultWidth; + } + } + } + + var isMonospace = true; + var firstWidth = defaultWidth; + + for (var glyph in glyphsWidths) { + var glyphWidth = glyphsWidths[glyph]; + + if (!glyphWidth) { + continue; + } + + if (!firstWidth) { + firstWidth = glyphWidth; + continue; + } + + if (firstWidth !== glyphWidth) { + isMonospace = false; + break; + } + } + + if (isMonospace) { + properties.flags |= _fonts.FontFlags.FixedPitch; + } + + properties.defaultWidth = defaultWidth; + properties.widths = glyphsWidths; + properties.defaultVMetrics = defaultVMetrics; + properties.vmetrics = glyphsVMetrics; + }, + isSerifFont: function PartialEvaluator_isSerifFont(baseFontName) { + var fontNameWoStyle = baseFontName.split('-')[0]; + return fontNameWoStyle in (0, _standard_fonts.getSerifFonts)() || fontNameWoStyle.search(/serif/gi) !== -1; + }, + getBaseFontMetrics: function PartialEvaluator_getBaseFontMetrics(name) { + var defaultWidth = 0; + var widths = []; + var monospace = false; + var stdFontMap = (0, _standard_fonts.getStdFontMap)(); + var lookupName = stdFontMap[name] || name; + var Metrics = (0, _metrics.getMetrics)(); + + if (!(lookupName in Metrics)) { + if (this.isSerifFont(name)) { + lookupName = 'Times-Roman'; + } else { + lookupName = 'Helvetica'; + } + } + + var glyphWidths = Metrics[lookupName]; + + if ((0, _util.isNum)(glyphWidths)) { + defaultWidth = glyphWidths; + monospace = true; + } else { + widths = glyphWidths(); + } + + return { + defaultWidth: defaultWidth, + monospace: monospace, + widths: widths + }; + }, + buildCharCodeToWidth: function PartialEvaluator_bulildCharCodeToWidth(widthsByGlyphName, properties) { + var widths = Object.create(null); + var differences = properties.differences; + var encoding = properties.defaultEncoding; + + for (var charCode = 0; charCode < 256; charCode++) { + if (charCode in differences && widthsByGlyphName[differences[charCode]]) { + widths[charCode] = widthsByGlyphName[differences[charCode]]; + continue; + } + + if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) { + widths[charCode] = widthsByGlyphName[encoding[charCode]]; + continue; + } + } + + return widths; + }, + preEvaluateFont: function PartialEvaluator_preEvaluateFont(dict) { + var baseDict = dict; + var type = dict.get('Subtype'); + + if (!(0, _primitives.isName)(type)) { + throw new _util.FormatError('invalid font Subtype'); + } + + var composite = false; + var uint8array; + + if (type.name === 'Type0') { + var df = dict.get('DescendantFonts'); + + if (!df) { + throw new _util.FormatError('Descendant fonts are not specified'); + } + + dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df; + type = dict.get('Subtype'); + + if (!(0, _primitives.isName)(type)) { + throw new _util.FormatError('invalid font Subtype'); + } + + composite = true; + } + + var descriptor = dict.get('FontDescriptor'); + + if (descriptor) { + var hash = new _murmurhash.MurmurHash3_64(); + var encoding = baseDict.getRaw('Encoding'); + + if ((0, _primitives.isName)(encoding)) { + hash.update(encoding.name); + } else if ((0, _primitives.isRef)(encoding)) { + hash.update(encoding.toString()); + } else if ((0, _primitives.isDict)(encoding)) { + var keys = encoding.getKeys(); + + for (var i = 0, ii = keys.length; i < ii; i++) { + var entry = encoding.getRaw(keys[i]); + + if ((0, _primitives.isName)(entry)) { + hash.update(entry.name); + } else if ((0, _primitives.isRef)(entry)) { + hash.update(entry.toString()); + } else if (Array.isArray(entry)) { + var diffLength = entry.length, + diffBuf = new Array(diffLength); + + for (var j = 0; j < diffLength; j++) { + var diffEntry = entry[j]; + + if ((0, _primitives.isName)(diffEntry)) { + diffBuf[j] = diffEntry.name; + } else if ((0, _util.isNum)(diffEntry) || (0, _primitives.isRef)(diffEntry)) { + diffBuf[j] = diffEntry.toString(); + } + } + + hash.update(diffBuf.join()); + } + } + } + + var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode'); + + if ((0, _primitives.isStream)(toUnicode)) { + var stream = toUnicode.str || toUnicode; + uint8array = stream.buffer ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength) : new Uint8Array(stream.bytes.buffer, stream.start, stream.end - stream.start); + hash.update(uint8array); + } else if ((0, _primitives.isName)(toUnicode)) { + hash.update(toUnicode.name); + } + + var widths = dict.get('Widths') || baseDict.get('Widths'); + + if (widths) { + uint8array = new Uint8Array(new Uint32Array(widths).buffer); + hash.update(uint8array); + } + } + + return { + descriptor: descriptor, + dict: dict, + baseDict: baseDict, + composite: composite, + type: type.name, + hash: hash ? hash.hexdigest() : '' + }; + }, + translateFont: function PartialEvaluator_translateFont(preEvaluatedFont) { + var _this10 = this; + + var baseDict = preEvaluatedFont.baseDict; + var dict = preEvaluatedFont.dict; + var composite = preEvaluatedFont.composite; + var descriptor = preEvaluatedFont.descriptor; + var type = preEvaluatedFont.type; + var maxCharIndex = composite ? 0xFFFF : 0xFF; + var properties; + + if (!descriptor) { + if (type === 'Type3') { + descriptor = new _primitives.Dict(null); + descriptor.set('FontName', _primitives.Name.get(type)); + descriptor.set('FontBBox', dict.getArray('FontBBox')); + } else { + var baseFontName = dict.get('BaseFont'); + + if (!(0, _primitives.isName)(baseFontName)) { + throw new _util.FormatError('Base font is not specified'); + } + + baseFontName = baseFontName.name.replace(/[,_]/g, '-'); + var metrics = this.getBaseFontMetrics(baseFontName); + var fontNameWoStyle = baseFontName.split('-')[0]; + var flags = (this.isSerifFont(fontNameWoStyle) ? _fonts.FontFlags.Serif : 0) | (metrics.monospace ? _fonts.FontFlags.FixedPitch : 0) | ((0, _standard_fonts.getSymbolsFonts)()[fontNameWoStyle] ? _fonts.FontFlags.Symbolic : _fonts.FontFlags.Nonsymbolic); + properties = { + type: type, + name: baseFontName, + widths: metrics.widths, + defaultWidth: metrics.defaultWidth, + flags: flags, + firstChar: 0, + lastChar: maxCharIndex + }; + return this.extractDataStructures(dict, dict, properties).then(function (properties) { + properties.widths = _this10.buildCharCodeToWidth(metrics.widths, properties); + return new _fonts.Font(baseFontName, null, properties); + }); + } + } + + var firstChar = dict.get('FirstChar') || 0; + var lastChar = dict.get('LastChar') || maxCharIndex; + var fontName = descriptor.get('FontName'); + var baseFont = dict.get('BaseFont'); + + if ((0, _util.isString)(fontName)) { + fontName = _primitives.Name.get(fontName); + } + + if ((0, _util.isString)(baseFont)) { + baseFont = _primitives.Name.get(baseFont); + } + + if (type !== 'Type3') { + var fontNameStr = fontName && fontName.name; + var baseFontStr = baseFont && baseFont.name; + + if (fontNameStr !== baseFontStr) { + (0, _util.info)("The FontDescriptor's FontName is \"".concat(fontNameStr, "\" but ") + "should be the same as the Font's BaseFont \"".concat(baseFontStr, "\".")); + + if (fontNameStr && baseFontStr && baseFontStr.startsWith(fontNameStr)) { + fontName = baseFont; + } + } + } + + fontName = fontName || baseFont; + + if (!(0, _primitives.isName)(fontName)) { + throw new _util.FormatError('invalid font name'); + } + + var fontFile = descriptor.get('FontFile', 'FontFile2', 'FontFile3'); + + if (fontFile) { + if (fontFile.dict) { + var subtype = fontFile.dict.get('Subtype'); + + if (subtype) { + subtype = subtype.name; + } + + var length1 = fontFile.dict.get('Length1'); + var length2 = fontFile.dict.get('Length2'); + var length3 = fontFile.dict.get('Length3'); + } + } + + properties = { + type: type, + name: fontName.name, + subtype: subtype, + file: fontFile, + length1: length1, + length2: length2, + length3: length3, + loadedName: baseDict.loadedName, + composite: composite, + wideChars: composite, + fixedPitch: false, + fontMatrix: dict.getArray('FontMatrix') || _util.FONT_IDENTITY_MATRIX, + firstChar: firstChar || 0, + lastChar: lastChar || maxCharIndex, + bbox: descriptor.getArray('FontBBox'), + ascent: descriptor.get('Ascent'), + descent: descriptor.get('Descent'), + xHeight: descriptor.get('XHeight'), + capHeight: descriptor.get('CapHeight'), + flags: descriptor.get('Flags'), + italicAngle: descriptor.get('ItalicAngle'), + isType3Font: false + }; + var cMapPromise; + + if (composite) { + var cidEncoding = baseDict.get('Encoding'); + + if ((0, _primitives.isName)(cidEncoding)) { + properties.cidEncoding = cidEncoding.name; + } + + cMapPromise = _cmap.CMapFactory.create({ + encoding: cidEncoding, + fetchBuiltInCMap: this.fetchBuiltInCMap, + useCMap: null + }).then(function (cMap) { + properties.cMap = cMap; + properties.vertical = properties.cMap.vertical; + }); + } else { + cMapPromise = Promise.resolve(undefined); + } + + return cMapPromise.then(function () { + return _this10.extractDataStructures(dict, baseDict, properties); + }).then(function (properties) { + _this10.extractWidths(dict, descriptor, properties); + + if (type === 'Type3') { + properties.isType3Font = true; + } + + return new _fonts.Font(fontName.name, fontFile, properties); + }); + } + }; + + PartialEvaluator.buildFontPaths = function (font, glyphs, handler) { + function buildPath(fontChar) { + if (font.renderer.hasBuiltPath(fontChar)) { + return; + } + + handler.send('commonobj', ["".concat(font.loadedName, "_path_").concat(fontChar), 'FontPath', font.renderer.getPathJs(fontChar)]); + } + + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = glyphs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var glyph = _step.value; + buildPath(glyph.fontChar); + var accent = glyph.accent; + + if (accent && accent.fontChar) { + buildPath(accent.fontChar); + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + }; + + return PartialEvaluator; +}(); + +exports.PartialEvaluator = PartialEvaluator; + +var TranslatedFont = function TranslatedFontClosure() { + function TranslatedFont(loadedName, font, dict) { + this.loadedName = loadedName; + this.font = font; + this.dict = dict; + this.type3Loaded = null; + this.sent = false; + } + + TranslatedFont.prototype = { + send: function send(handler) { + if (this.sent) { + return; + } + + this.sent = true; + handler.send('commonobj', [this.loadedName, 'Font', this.font.exportData()]); + }, + fallback: function fallback(handler) { + if (!this.font.data) { + return; + } + + this.font.disableFontFace = true; + var glyphs = this.font.glyphCacheValues; + PartialEvaluator.buildFontPaths(this.font, glyphs, handler); + }, + loadType3Data: function loadType3Data(evaluator, resources, parentOperatorList, task) { + if (!this.font.isType3Font) { + throw new Error('Must be a Type3 font.'); + } + + if (this.type3Loaded) { + return this.type3Loaded; + } + + var type3Options = Object.create(evaluator.options); + type3Options.ignoreErrors = false; + var type3Evaluator = evaluator.clone(type3Options); + var translatedFont = this.font; + var loadCharProcsPromise = Promise.resolve(); + var charProcs = this.dict.get('CharProcs'); + var fontResources = this.dict.get('Resources') || resources; + var charProcKeys = charProcs.getKeys(); + var charProcOperatorList = Object.create(null); + + var _loop2 = function _loop2() { + var key = charProcKeys[i]; + loadCharProcsPromise = loadCharProcsPromise.then(function () { + var glyphStream = charProcs.get(key); + var operatorList = new _operator_list.OperatorList(); + return type3Evaluator.getOperatorList({ + stream: glyphStream, + task: task, + resources: fontResources, + operatorList: operatorList + }).then(function () { + charProcOperatorList[key] = operatorList.getIR(); + parentOperatorList.addDependencies(operatorList.dependencies); + }).catch(function (reason) { + (0, _util.warn)("Type3 font resource \"".concat(key, "\" is not available.")); + var operatorList = new _operator_list.OperatorList(); + charProcOperatorList[key] = operatorList.getIR(); + }); + }); + }; + + for (var i = 0, n = charProcKeys.length; i < n; ++i) { + _loop2(); + } + + this.type3Loaded = loadCharProcsPromise.then(function () { + translatedFont.charProcOperatorList = charProcOperatorList; + }); + return this.type3Loaded; + } + }; + return TranslatedFont; +}(); + +var StateManager = function StateManagerClosure() { + function StateManager(initialState) { + this.state = initialState; + this.stateStack = []; + } + + StateManager.prototype = { + save: function save() { + var old = this.state; + this.stateStack.push(this.state); + this.state = old.clone(); + }, + restore: function restore() { + var prev = this.stateStack.pop(); + + if (prev) { + this.state = prev; + } + }, + transform: function transform(args) { + this.state.ctm = _util.Util.transform(this.state.ctm, args); + } + }; + return StateManager; +}(); + +var TextState = function TextStateClosure() { + function TextState() { + this.ctm = new Float32Array(_util.IDENTITY_MATRIX); + this.fontName = null; + this.fontSize = 0; + this.font = null; + this.fontMatrix = _util.FONT_IDENTITY_MATRIX; + this.textMatrix = _util.IDENTITY_MATRIX.slice(); + this.textLineMatrix = _util.IDENTITY_MATRIX.slice(); + this.charSpacing = 0; + this.wordSpacing = 0; + this.leading = 0; + this.textHScale = 1; + this.textRise = 0; + } + + TextState.prototype = { + setTextMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) { + var m = this.textMatrix; + m[0] = a; + m[1] = b; + m[2] = c; + m[3] = d; + m[4] = e; + m[5] = f; + }, + setTextLineMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) { + var m = this.textLineMatrix; + m[0] = a; + m[1] = b; + m[2] = c; + m[3] = d; + m[4] = e; + m[5] = f; + }, + translateTextMatrix: function TextState_translateTextMatrix(x, y) { + var m = this.textMatrix; + m[4] = m[0] * x + m[2] * y + m[4]; + m[5] = m[1] * x + m[3] * y + m[5]; + }, + translateTextLineMatrix: function TextState_translateTextMatrix(x, y) { + var m = this.textLineMatrix; + m[4] = m[0] * x + m[2] * y + m[4]; + m[5] = m[1] * x + m[3] * y + m[5]; + }, + calcTextLineMatrixAdvance: function TextState_calcTextLineMatrixAdvance(a, b, c, d, e, f) { + var font = this.font; + + if (!font) { + return null; + } + + var m = this.textLineMatrix; + + if (!(a === m[0] && b === m[1] && c === m[2] && d === m[3])) { + return null; + } + + var txDiff = e - m[4], + tyDiff = f - m[5]; + + if (font.vertical && txDiff !== 0 || !font.vertical && tyDiff !== 0) { + return null; + } + + var tx, + ty, + denominator = a * d - b * c; + + if (font.vertical) { + tx = -tyDiff * c / denominator; + ty = tyDiff * a / denominator; + } else { + tx = txDiff * d / denominator; + ty = -txDiff * b / denominator; + } + + return { + width: tx, + height: ty, + value: font.vertical ? ty : tx + }; + }, + calcRenderMatrix: function TextState_calcRendeMatrix(ctm) { + var tsm = [this.fontSize * this.textHScale, 0, 0, this.fontSize, 0, this.textRise]; + return _util.Util.transform(ctm, _util.Util.transform(this.textMatrix, tsm)); + }, + carriageReturn: function TextState_carriageReturn() { + this.translateTextLineMatrix(0, -this.leading); + this.textMatrix = this.textLineMatrix.slice(); + }, + clone: function TextState_clone() { + var clone = Object.create(this); + clone.textMatrix = this.textMatrix.slice(); + clone.textLineMatrix = this.textLineMatrix.slice(); + clone.fontMatrix = this.fontMatrix.slice(); + return clone; + } + }; + return TextState; +}(); + +var EvalState = function EvalStateClosure() { + function EvalState() { + this.ctm = new Float32Array(_util.IDENTITY_MATRIX); + this.font = null; + this.textRenderingMode = _util.TextRenderingMode.FILL; + this.fillColorSpace = _colorspace.ColorSpace.singletons.gray; + this.strokeColorSpace = _colorspace.ColorSpace.singletons.gray; + } + + EvalState.prototype = { + clone: function CanvasExtraState_clone() { + return Object.create(this); + } + }; + return EvalState; +}(); + +var EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() { + var getOPMap = (0, _util.getLookupTableFactory)(function (t) { + t['w'] = { + id: _util.OPS.setLineWidth, + numArgs: 1, + variableArgs: false + }; + t['J'] = { + id: _util.OPS.setLineCap, + numArgs: 1, + variableArgs: false + }; + t['j'] = { + id: _util.OPS.setLineJoin, + numArgs: 1, + variableArgs: false + }; + t['M'] = { + id: _util.OPS.setMiterLimit, + numArgs: 1, + variableArgs: false + }; + t['d'] = { + id: _util.OPS.setDash, + numArgs: 2, + variableArgs: false + }; + t['ri'] = { + id: _util.OPS.setRenderingIntent, + numArgs: 1, + variableArgs: false + }; + t['i'] = { + id: _util.OPS.setFlatness, + numArgs: 1, + variableArgs: false + }; + t['gs'] = { + id: _util.OPS.setGState, + numArgs: 1, + variableArgs: false + }; + t['q'] = { + id: _util.OPS.save, + numArgs: 0, + variableArgs: false + }; + t['Q'] = { + id: _util.OPS.restore, + numArgs: 0, + variableArgs: false + }; + t['cm'] = { + id: _util.OPS.transform, + numArgs: 6, + variableArgs: false + }; + t['m'] = { + id: _util.OPS.moveTo, + numArgs: 2, + variableArgs: false + }; + t['l'] = { + id: _util.OPS.lineTo, + numArgs: 2, + variableArgs: false + }; + t['c'] = { + id: _util.OPS.curveTo, + numArgs: 6, + variableArgs: false + }; + t['v'] = { + id: _util.OPS.curveTo2, + numArgs: 4, + variableArgs: false + }; + t['y'] = { + id: _util.OPS.curveTo3, + numArgs: 4, + variableArgs: false + }; + t['h'] = { + id: _util.OPS.closePath, + numArgs: 0, + variableArgs: false + }; + t['re'] = { + id: _util.OPS.rectangle, + numArgs: 4, + variableArgs: false + }; + t['S'] = { + id: _util.OPS.stroke, + numArgs: 0, + variableArgs: false + }; + t['s'] = { + id: _util.OPS.closeStroke, + numArgs: 0, + variableArgs: false + }; + t['f'] = { + id: _util.OPS.fill, + numArgs: 0, + variableArgs: false + }; + t['F'] = { + id: _util.OPS.fill, + numArgs: 0, + variableArgs: false + }; + t['f*'] = { + id: _util.OPS.eoFill, + numArgs: 0, + variableArgs: false + }; + t['B'] = { + id: _util.OPS.fillStroke, + numArgs: 0, + variableArgs: false + }; + t['B*'] = { + id: _util.OPS.eoFillStroke, + numArgs: 0, + variableArgs: false + }; + t['b'] = { + id: _util.OPS.closeFillStroke, + numArgs: 0, + variableArgs: false + }; + t['b*'] = { + id: _util.OPS.closeEOFillStroke, + numArgs: 0, + variableArgs: false + }; + t['n'] = { + id: _util.OPS.endPath, + numArgs: 0, + variableArgs: false + }; + t['W'] = { + id: _util.OPS.clip, + numArgs: 0, + variableArgs: false + }; + t['W*'] = { + id: _util.OPS.eoClip, + numArgs: 0, + variableArgs: false + }; + t['BT'] = { + id: _util.OPS.beginText, + numArgs: 0, + variableArgs: false + }; + t['ET'] = { + id: _util.OPS.endText, + numArgs: 0, + variableArgs: false + }; + t['Tc'] = { + id: _util.OPS.setCharSpacing, + numArgs: 1, + variableArgs: false + }; + t['Tw'] = { + id: _util.OPS.setWordSpacing, + numArgs: 1, + variableArgs: false + }; + t['Tz'] = { + id: _util.OPS.setHScale, + numArgs: 1, + variableArgs: false + }; + t['TL'] = { + id: _util.OPS.setLeading, + numArgs: 1, + variableArgs: false + }; + t['Tf'] = { + id: _util.OPS.setFont, + numArgs: 2, + variableArgs: false + }; + t['Tr'] = { + id: _util.OPS.setTextRenderingMode, + numArgs: 1, + variableArgs: false + }; + t['Ts'] = { + id: _util.OPS.setTextRise, + numArgs: 1, + variableArgs: false + }; + t['Td'] = { + id: _util.OPS.moveText, + numArgs: 2, + variableArgs: false + }; + t['TD'] = { + id: _util.OPS.setLeadingMoveText, + numArgs: 2, + variableArgs: false + }; + t['Tm'] = { + id: _util.OPS.setTextMatrix, + numArgs: 6, + variableArgs: false + }; + t['T*'] = { + id: _util.OPS.nextLine, + numArgs: 0, + variableArgs: false + }; + t['Tj'] = { + id: _util.OPS.showText, + numArgs: 1, + variableArgs: false + }; + t['TJ'] = { + id: _util.OPS.showSpacedText, + numArgs: 1, + variableArgs: false + }; + t['\''] = { + id: _util.OPS.nextLineShowText, + numArgs: 1, + variableArgs: false + }; + t['"'] = { + id: _util.OPS.nextLineSetSpacingShowText, + numArgs: 3, + variableArgs: false + }; + t['d0'] = { + id: _util.OPS.setCharWidth, + numArgs: 2, + variableArgs: false + }; + t['d1'] = { + id: _util.OPS.setCharWidthAndBounds, + numArgs: 6, + variableArgs: false + }; + t['CS'] = { + id: _util.OPS.setStrokeColorSpace, + numArgs: 1, + variableArgs: false + }; + t['cs'] = { + id: _util.OPS.setFillColorSpace, + numArgs: 1, + variableArgs: false + }; + t['SC'] = { + id: _util.OPS.setStrokeColor, + numArgs: 4, + variableArgs: true + }; + t['SCN'] = { + id: _util.OPS.setStrokeColorN, + numArgs: 33, + variableArgs: true + }; + t['sc'] = { + id: _util.OPS.setFillColor, + numArgs: 4, + variableArgs: true + }; + t['scn'] = { + id: _util.OPS.setFillColorN, + numArgs: 33, + variableArgs: true + }; + t['G'] = { + id: _util.OPS.setStrokeGray, + numArgs: 1, + variableArgs: false + }; + t['g'] = { + id: _util.OPS.setFillGray, + numArgs: 1, + variableArgs: false + }; + t['RG'] = { + id: _util.OPS.setStrokeRGBColor, + numArgs: 3, + variableArgs: false + }; + t['rg'] = { + id: _util.OPS.setFillRGBColor, + numArgs: 3, + variableArgs: false + }; + t['K'] = { + id: _util.OPS.setStrokeCMYKColor, + numArgs: 4, + variableArgs: false + }; + t['k'] = { + id: _util.OPS.setFillCMYKColor, + numArgs: 4, + variableArgs: false + }; + t['sh'] = { + id: _util.OPS.shadingFill, + numArgs: 1, + variableArgs: false + }; + t['BI'] = { + id: _util.OPS.beginInlineImage, + numArgs: 0, + variableArgs: false + }; + t['ID'] = { + id: _util.OPS.beginImageData, + numArgs: 0, + variableArgs: false + }; + t['EI'] = { + id: _util.OPS.endInlineImage, + numArgs: 1, + variableArgs: false + }; + t['Do'] = { + id: _util.OPS.paintXObject, + numArgs: 1, + variableArgs: false + }; + t['MP'] = { + id: _util.OPS.markPoint, + numArgs: 1, + variableArgs: false + }; + t['DP'] = { + id: _util.OPS.markPointProps, + numArgs: 2, + variableArgs: false + }; + t['BMC'] = { + id: _util.OPS.beginMarkedContent, + numArgs: 1, + variableArgs: false + }; + t['BDC'] = { + id: _util.OPS.beginMarkedContentProps, + numArgs: 2, + variableArgs: false + }; + t['EMC'] = { + id: _util.OPS.endMarkedContent, + numArgs: 0, + variableArgs: false + }; + t['BX'] = { + id: _util.OPS.beginCompat, + numArgs: 0, + variableArgs: false + }; + t['EX'] = { + id: _util.OPS.endCompat, + numArgs: 0, + variableArgs: false + }; + t['BM'] = null; + t['BD'] = null; + t['true'] = null; + t['fa'] = null; + t['fal'] = null; + t['fals'] = null; + t['false'] = null; + t['nu'] = null; + t['nul'] = null; + t['null'] = null; + }); + var MAX_INVALID_PATH_OPS = 20; + + function EvaluatorPreprocessor(stream, xref, stateManager) { + this.opMap = getOPMap(); + this.parser = new _parser.Parser(new _parser.Lexer(stream, this.opMap), false, xref); + this.stateManager = stateManager; + this.nonProcessedArgs = []; + this._numInvalidPathOPS = 0; + } + + EvaluatorPreprocessor.prototype = { + get savedStatesDepth() { + return this.stateManager.stateStack.length; + }, + + read: function EvaluatorPreprocessor_read(operation) { + var args = operation.args; + + while (true) { + var obj = this.parser.getObj(); + + if ((0, _primitives.isCmd)(obj)) { + var cmd = obj.cmd; + var opSpec = this.opMap[cmd]; + + if (!opSpec) { + (0, _util.warn)("Unknown command \"".concat(cmd, "\".")); + continue; + } + + var fn = opSpec.id; + var numArgs = opSpec.numArgs; + var argsLength = args !== null ? args.length : 0; + + if (!opSpec.variableArgs) { + if (argsLength !== numArgs) { + var nonProcessedArgs = this.nonProcessedArgs; + + while (argsLength > numArgs) { + nonProcessedArgs.push(args.shift()); + argsLength--; + } + + while (argsLength < numArgs && nonProcessedArgs.length !== 0) { + if (args === null) { + args = []; + } + + args.unshift(nonProcessedArgs.pop()); + argsLength++; + } + } + + if (argsLength < numArgs) { + var partialMsg = "command ".concat(cmd, ": expected ").concat(numArgs, " args, ") + "but received ".concat(argsLength, " args."); + + if (fn >= _util.OPS.moveTo && fn <= _util.OPS.endPath && ++this._numInvalidPathOPS > MAX_INVALID_PATH_OPS) { + throw new _util.FormatError("Invalid ".concat(partialMsg)); + } + + (0, _util.warn)("Skipping ".concat(partialMsg)); + + if (args !== null) { + args.length = 0; + } + + continue; + } + } else if (argsLength > numArgs) { + (0, _util.info)("Command ".concat(cmd, ": expected [0, ").concat(numArgs, "] args, ") + "but received ".concat(argsLength, " args.")); + } + + this.preprocessCommand(fn, args); + operation.fn = fn; + operation.args = args; + return true; + } + + if ((0, _primitives.isEOF)(obj)) { + return false; + } + + if (obj !== null) { + if (args === null) { + args = []; + } + + args.push(obj); + + if (args.length > 33) { + throw new _util.FormatError('Too many arguments'); + } + } + } + }, + preprocessCommand: function EvaluatorPreprocessor_preprocessCommand(fn, args) { + switch (fn | 0) { + case _util.OPS.save: + this.stateManager.save(); + break; + + case _util.OPS.restore: + this.stateManager.restore(); + break; + + case _util.OPS.transform: + this.stateManager.transform(args); + break; + } + } + }; + return EvaluatorPreprocessor; +}(); + +/***/ }), +/* 172 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.CMapFactory = exports.IdentityCMap = exports.CMap = void 0; + +var _util = __w_pdfjs_require__(6); + +var _primitives = __w_pdfjs_require__(155); + +var _parser = __w_pdfjs_require__(156); + +var _stream = __w_pdfjs_require__(157); + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var BUILT_IN_CMAPS = ['Adobe-GB1-UCS2', 'Adobe-CNS1-UCS2', 'Adobe-Japan1-UCS2', 'Adobe-Korea1-UCS2', '78-EUC-H', '78-EUC-V', '78-H', '78-RKSJ-H', '78-RKSJ-V', '78-V', '78ms-RKSJ-H', '78ms-RKSJ-V', '83pv-RKSJ-H', '90ms-RKSJ-H', '90ms-RKSJ-V', '90msp-RKSJ-H', '90msp-RKSJ-V', '90pv-RKSJ-H', '90pv-RKSJ-V', 'Add-H', 'Add-RKSJ-H', 'Add-RKSJ-V', 'Add-V', 'Adobe-CNS1-0', 'Adobe-CNS1-1', 'Adobe-CNS1-2', 'Adobe-CNS1-3', 'Adobe-CNS1-4', 'Adobe-CNS1-5', 'Adobe-CNS1-6', 'Adobe-GB1-0', 'Adobe-GB1-1', 'Adobe-GB1-2', 'Adobe-GB1-3', 'Adobe-GB1-4', 'Adobe-GB1-5', 'Adobe-Japan1-0', 'Adobe-Japan1-1', 'Adobe-Japan1-2', 'Adobe-Japan1-3', 'Adobe-Japan1-4', 'Adobe-Japan1-5', 'Adobe-Japan1-6', 'Adobe-Korea1-0', 'Adobe-Korea1-1', 'Adobe-Korea1-2', 'B5-H', 'B5-V', 'B5pc-H', 'B5pc-V', 'CNS-EUC-H', 'CNS-EUC-V', 'CNS1-H', 'CNS1-V', 'CNS2-H', 'CNS2-V', 'ETHK-B5-H', 'ETHK-B5-V', 'ETen-B5-H', 'ETen-B5-V', 'ETenms-B5-H', 'ETenms-B5-V', 'EUC-H', 'EUC-V', 'Ext-H', 'Ext-RKSJ-H', 'Ext-RKSJ-V', 'Ext-V', 'GB-EUC-H', 'GB-EUC-V', 'GB-H', 'GB-V', 'GBK-EUC-H', 'GBK-EUC-V', 'GBK2K-H', 'GBK2K-V', 'GBKp-EUC-H', 'GBKp-EUC-V', 'GBT-EUC-H', 'GBT-EUC-V', 'GBT-H', 'GBT-V', 'GBTpc-EUC-H', 'GBTpc-EUC-V', 'GBpc-EUC-H', 'GBpc-EUC-V', 'H', 'HKdla-B5-H', 'HKdla-B5-V', 'HKdlb-B5-H', 'HKdlb-B5-V', 'HKgccs-B5-H', 'HKgccs-B5-V', 'HKm314-B5-H', 'HKm314-B5-V', 'HKm471-B5-H', 'HKm471-B5-V', 'HKscs-B5-H', 'HKscs-B5-V', 'Hankaku', 'Hiragana', 'KSC-EUC-H', 'KSC-EUC-V', 'KSC-H', 'KSC-Johab-H', 'KSC-Johab-V', 'KSC-V', 'KSCms-UHC-H', 'KSCms-UHC-HW-H', 'KSCms-UHC-HW-V', 'KSCms-UHC-V', 'KSCpc-EUC-H', 'KSCpc-EUC-V', 'Katakana', 'NWP-H', 'NWP-V', 'RKSJ-H', 'RKSJ-V', 'Roman', 'UniCNS-UCS2-H', 'UniCNS-UCS2-V', 'UniCNS-UTF16-H', 'UniCNS-UTF16-V', 'UniCNS-UTF32-H', 'UniCNS-UTF32-V', 'UniCNS-UTF8-H', 'UniCNS-UTF8-V', 'UniGB-UCS2-H', 'UniGB-UCS2-V', 'UniGB-UTF16-H', 'UniGB-UTF16-V', 'UniGB-UTF32-H', 'UniGB-UTF32-V', 'UniGB-UTF8-H', 'UniGB-UTF8-V', 'UniJIS-UCS2-H', 'UniJIS-UCS2-HW-H', 'UniJIS-UCS2-HW-V', 'UniJIS-UCS2-V', 'UniJIS-UTF16-H', 'UniJIS-UTF16-V', 'UniJIS-UTF32-H', 'UniJIS-UTF32-V', 'UniJIS-UTF8-H', 'UniJIS-UTF8-V', 'UniJIS2004-UTF16-H', 'UniJIS2004-UTF16-V', 'UniJIS2004-UTF32-H', 'UniJIS2004-UTF32-V', 'UniJIS2004-UTF8-H', 'UniJIS2004-UTF8-V', 'UniJISPro-UCS2-HW-V', 'UniJISPro-UCS2-V', 'UniJISPro-UTF8-V', 'UniJISX0213-UTF32-H', 'UniJISX0213-UTF32-V', 'UniJISX02132004-UTF32-H', 'UniJISX02132004-UTF32-V', 'UniKS-UCS2-H', 'UniKS-UCS2-V', 'UniKS-UTF16-H', 'UniKS-UTF16-V', 'UniKS-UTF32-H', 'UniKS-UTF32-V', 'UniKS-UTF8-H', 'UniKS-UTF8-V', 'V', 'WP-Symbol']; + +var CMap = +/*#__PURE__*/ +function () { + function CMap() { + var builtInCMap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + _classCallCheck(this, CMap); + + this.codespaceRanges = [[], [], [], []]; + this.numCodespaceRanges = 0; + this._map = []; + this.name = ''; + this.vertical = false; + this.useCMap = null; + this.builtInCMap = builtInCMap; + } + + _createClass(CMap, [{ + key: "addCodespaceRange", + value: function addCodespaceRange(n, low, high) { + this.codespaceRanges[n - 1].push(low, high); + this.numCodespaceRanges++; + } + }, { + key: "mapCidRange", + value: function mapCidRange(low, high, dstLow) { + while (low <= high) { + this._map[low++] = dstLow++; + } + } + }, { + key: "mapBfRange", + value: function mapBfRange(low, high, dstLow) { + var lastByte = dstLow.length - 1; + + while (low <= high) { + this._map[low++] = dstLow; + dstLow = dstLow.substring(0, lastByte) + String.fromCharCode(dstLow.charCodeAt(lastByte) + 1); + } + } + }, { + key: "mapBfRangeToArray", + value: function mapBfRangeToArray(low, high, array) { + var i = 0, + ii = array.length; + + while (low <= high && i < ii) { + this._map[low] = array[i++]; + ++low; + } + } + }, { + key: "mapOne", + value: function mapOne(src, dst) { + this._map[src] = dst; + } + }, { + key: "lookup", + value: function lookup(code) { + return this._map[code]; + } + }, { + key: "contains", + value: function contains(code) { + return this._map[code] !== undefined; + } + }, { + key: "forEach", + value: function forEach(callback) { + var map = this._map; + var length = map.length; + + if (length <= 0x10000) { + for (var i = 0; i < length; i++) { + if (map[i] !== undefined) { + callback(i, map[i]); + } + } + } else { + for (var _i in map) { + callback(_i, map[_i]); + } + } + } + }, { + key: "charCodeOf", + value: function charCodeOf(value) { + var map = this._map; + + if (map.length <= 0x10000) { + return map.indexOf(value); + } + + for (var charCode in map) { + if (map[charCode] === value) { + return charCode | 0; + } + } + + return -1; + } + }, { + key: "getMap", + value: function getMap() { + return this._map; + } + }, { + key: "readCharCode", + value: function readCharCode(str, offset, out) { + var c = 0; + var codespaceRanges = this.codespaceRanges; + + for (var n = 0, nn = codespaceRanges.length; n < nn; n++) { + c = (c << 8 | str.charCodeAt(offset + n)) >>> 0; + var codespaceRange = codespaceRanges[n]; + + for (var k = 0, kk = codespaceRange.length; k < kk;) { + var low = codespaceRange[k++]; + var high = codespaceRange[k++]; + + if (c >= low && c <= high) { + out.charcode = c; + out.length = n + 1; + return; + } + } + } + + out.charcode = 0; + out.length = 1; + } + }, { + key: "length", + get: function get() { + return this._map.length; + } + }, { + key: "isIdentityCMap", + get: function get() { + if (!(this.name === 'Identity-H' || this.name === 'Identity-V')) { + return false; + } + + if (this._map.length !== 0x10000) { + return false; + } + + for (var i = 0; i < 0x10000; i++) { + if (this._map[i] !== i) { + return false; + } + } + + return true; + } + }]); + + return CMap; +}(); + +exports.CMap = CMap; + +var IdentityCMap = +/*#__PURE__*/ +function (_CMap) { + _inherits(IdentityCMap, _CMap); + + function IdentityCMap(vertical, n) { + var _this; + + _classCallCheck(this, IdentityCMap); + + _this = _possibleConstructorReturn(this, _getPrototypeOf(IdentityCMap).call(this)); + _this.vertical = vertical; + + _this.addCodespaceRange(n, 0, 0xffff); + + return _this; + } + + _createClass(IdentityCMap, [{ + key: "mapCidRange", + value: function mapCidRange(low, high, dstLow) { + (0, _util.unreachable)('should not call mapCidRange'); + } + }, { + key: "mapBfRange", + value: function mapBfRange(low, high, dstLow) { + (0, _util.unreachable)('should not call mapBfRange'); + } + }, { + key: "mapBfRangeToArray", + value: function mapBfRangeToArray(low, high, array) { + (0, _util.unreachable)('should not call mapBfRangeToArray'); + } + }, { + key: "mapOne", + value: function mapOne(src, dst) { + (0, _util.unreachable)('should not call mapCidOne'); + } + }, { + key: "lookup", + value: function lookup(code) { + return Number.isInteger(code) && code <= 0xffff ? code : undefined; + } + }, { + key: "contains", + value: function contains(code) { + return Number.isInteger(code) && code <= 0xffff; + } + }, { + key: "forEach", + value: function forEach(callback) { + for (var i = 0; i <= 0xffff; i++) { + callback(i, i); + } + } + }, { + key: "charCodeOf", + value: function charCodeOf(value) { + return Number.isInteger(value) && value <= 0xffff ? value : -1; + } + }, { + key: "getMap", + value: function getMap() { + var map = new Array(0x10000); + + for (var i = 0; i <= 0xffff; i++) { + map[i] = i; + } + + return map; + } + }, { + key: "length", + get: function get() { + return 0x10000; + } + }, { + key: "isIdentityCMap", + get: function get() { + (0, _util.unreachable)('should not access .isIdentityCMap'); + } + }]); + + return IdentityCMap; +}(CMap); + +exports.IdentityCMap = IdentityCMap; + +var BinaryCMapReader = function BinaryCMapReaderClosure() { + function hexToInt(a, size) { + var n = 0; + + for (var i = 0; i <= size; i++) { + n = n << 8 | a[i]; + } + + return n >>> 0; + } + + function hexToStr(a, size) { + if (size === 1) { + return String.fromCharCode(a[0], a[1]); + } + + if (size === 3) { + return String.fromCharCode(a[0], a[1], a[2], a[3]); + } + + return String.fromCharCode.apply(null, a.subarray(0, size + 1)); + } + + function addHex(a, b, size) { + var c = 0; + + for (var i = size; i >= 0; i--) { + c += a[i] + b[i]; + a[i] = c & 255; + c >>= 8; + } + } + + function incHex(a, size) { + var c = 1; + + for (var i = size; i >= 0 && c > 0; i--) { + c += a[i]; + a[i] = c & 255; + c >>= 8; + } + } + + var MAX_NUM_SIZE = 16; + var MAX_ENCODED_NUM_SIZE = 19; + + function BinaryCMapStream(data) { + this.buffer = data; + this.pos = 0; + this.end = data.length; + this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE); + } + + BinaryCMapStream.prototype = { + readByte: function readByte() { + if (this.pos >= this.end) { + return -1; + } + + return this.buffer[this.pos++]; + }, + readNumber: function readNumber() { + var n = 0; + var last; + + do { + var b = this.readByte(); + + if (b < 0) { + throw new _util.FormatError('unexpected EOF in bcmap'); + } + + last = !(b & 0x80); + n = n << 7 | b & 0x7F; + } while (!last); + + return n; + }, + readSigned: function readSigned() { + var n = this.readNumber(); + return n & 1 ? ~(n >>> 1) : n >>> 1; + }, + readHex: function readHex(num, size) { + num.set(this.buffer.subarray(this.pos, this.pos + size + 1)); + this.pos += size + 1; + }, + readHexNumber: function readHexNumber(num, size) { + var last; + var stack = this.tmpBuf, + sp = 0; + + do { + var b = this.readByte(); + + if (b < 0) { + throw new _util.FormatError('unexpected EOF in bcmap'); + } + + last = !(b & 0x80); + stack[sp++] = b & 0x7F; + } while (!last); + + var i = size, + buffer = 0, + bufferSize = 0; + + while (i >= 0) { + while (bufferSize < 8 && stack.length > 0) { + buffer = stack[--sp] << bufferSize | buffer; + bufferSize += 7; + } + + num[i] = buffer & 255; + i--; + buffer >>= 8; + bufferSize -= 8; + } + }, + readHexSigned: function readHexSigned(num, size) { + this.readHexNumber(num, size); + var sign = num[size] & 1 ? 255 : 0; + var c = 0; + + for (var i = 0; i <= size; i++) { + c = (c & 1) << 8 | num[i]; + num[i] = c >> 1 ^ sign; + } + }, + readString: function readString() { + var len = this.readNumber(); + var s = ''; + + for (var i = 0; i < len; i++) { + s += String.fromCharCode(this.readNumber()); + } + + return s; + } + }; + + function processBinaryCMap(data, cMap, extend) { + return new Promise(function (resolve, reject) { + var stream = new BinaryCMapStream(data); + var header = stream.readByte(); + cMap.vertical = !!(header & 1); + var useCMap = null; + var start = new Uint8Array(MAX_NUM_SIZE); + var end = new Uint8Array(MAX_NUM_SIZE); + var char = new Uint8Array(MAX_NUM_SIZE); + var charCode = new Uint8Array(MAX_NUM_SIZE); + var tmp = new Uint8Array(MAX_NUM_SIZE); + var code; + var b; + + while ((b = stream.readByte()) >= 0) { + var type = b >> 5; + + if (type === 7) { + switch (b & 0x1F) { + case 0: + stream.readString(); + break; + + case 1: + useCMap = stream.readString(); + break; + } + + continue; + } + + var sequence = !!(b & 0x10); + var dataSize = b & 15; + + if (dataSize + 1 > MAX_NUM_SIZE) { + throw new Error('processBinaryCMap: Invalid dataSize.'); + } + + var ucs2DataSize = 1; + var subitemsCount = stream.readNumber(); + var i; + + switch (type) { + case 0: + stream.readHex(start, dataSize); + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize)); + + for (i = 1; i < subitemsCount; i++) { + incHex(end, dataSize); + stream.readHexNumber(start, dataSize); + addHex(start, end, dataSize); + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize)); + } + + break; + + case 1: + stream.readHex(start, dataSize); + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + stream.readNumber(); + + for (i = 1; i < subitemsCount; i++) { + incHex(end, dataSize); + stream.readHexNumber(start, dataSize); + addHex(start, end, dataSize); + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + stream.readNumber(); + } + + break; + + case 2: + stream.readHex(char, dataSize); + code = stream.readNumber(); + cMap.mapOne(hexToInt(char, dataSize), code); + + for (i = 1; i < subitemsCount; i++) { + incHex(char, dataSize); + + if (!sequence) { + stream.readHexNumber(tmp, dataSize); + addHex(char, tmp, dataSize); + } + + code = stream.readSigned() + (code + 1); + cMap.mapOne(hexToInt(char, dataSize), code); + } + + break; + + case 3: + stream.readHex(start, dataSize); + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + code = stream.readNumber(); + cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code); + + for (i = 1; i < subitemsCount; i++) { + incHex(end, dataSize); + + if (!sequence) { + stream.readHexNumber(start, dataSize); + addHex(start, end, dataSize); + } else { + start.set(end); + } + + stream.readHexNumber(end, dataSize); + addHex(end, start, dataSize); + code = stream.readNumber(); + cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code); + } + + break; + + case 4: + stream.readHex(char, ucs2DataSize); + stream.readHex(charCode, dataSize); + cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize)); + + for (i = 1; i < subitemsCount; i++) { + incHex(char, ucs2DataSize); + + if (!sequence) { + stream.readHexNumber(tmp, ucs2DataSize); + addHex(char, tmp, ucs2DataSize); + } + + incHex(charCode, dataSize); + stream.readHexSigned(tmp, dataSize); + addHex(charCode, tmp, dataSize); + cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize)); + } + + break; + + case 5: + stream.readHex(start, ucs2DataSize); + stream.readHexNumber(end, ucs2DataSize); + addHex(end, start, ucs2DataSize); + stream.readHex(charCode, dataSize); + cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize)); + + for (i = 1; i < subitemsCount; i++) { + incHex(end, ucs2DataSize); + + if (!sequence) { + stream.readHexNumber(start, ucs2DataSize); + addHex(start, end, ucs2DataSize); + } else { + start.set(end); + } + + stream.readHexNumber(end, ucs2DataSize); + addHex(end, start, ucs2DataSize); + stream.readHex(charCode, dataSize); + cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize)); + } + + break; + + default: + reject(new Error('processBinaryCMap: Unknown type: ' + type)); + return; + } + } + + if (useCMap) { + resolve(extend(useCMap)); + return; + } + + resolve(cMap); + }); + } + + function BinaryCMapReader() {} + + BinaryCMapReader.prototype = { + process: processBinaryCMap + }; + return BinaryCMapReader; +}(); + +var CMapFactory = function CMapFactoryClosure() { + function strToInt(str) { + var a = 0; + + for (var i = 0; i < str.length; i++) { + a = a << 8 | str.charCodeAt(i); + } + + return a >>> 0; + } + + function expectString(obj) { + if (!(0, _util.isString)(obj)) { + throw new _util.FormatError('Malformed CMap: expected string.'); + } + } + + function expectInt(obj) { + if (!Number.isInteger(obj)) { + throw new _util.FormatError('Malformed CMap: expected int.'); + } + } + + function parseBfChar(cMap, lexer) { + while (true) { + var obj = lexer.getObj(); + + if ((0, _primitives.isEOF)(obj)) { + break; + } + + if ((0, _primitives.isCmd)(obj, 'endbfchar')) { + return; + } + + expectString(obj); + var src = strToInt(obj); + obj = lexer.getObj(); + expectString(obj); + var dst = obj; + cMap.mapOne(src, dst); + } + } + + function parseBfRange(cMap, lexer) { + while (true) { + var obj = lexer.getObj(); + + if ((0, _primitives.isEOF)(obj)) { + break; + } + + if ((0, _primitives.isCmd)(obj, 'endbfrange')) { + return; + } + + expectString(obj); + var low = strToInt(obj); + obj = lexer.getObj(); + expectString(obj); + var high = strToInt(obj); + obj = lexer.getObj(); + + if (Number.isInteger(obj) || (0, _util.isString)(obj)) { + var dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj; + cMap.mapBfRange(low, high, dstLow); + } else if ((0, _primitives.isCmd)(obj, '[')) { + obj = lexer.getObj(); + var array = []; + + while (!(0, _primitives.isCmd)(obj, ']') && !(0, _primitives.isEOF)(obj)) { + array.push(obj); + obj = lexer.getObj(); + } + + cMap.mapBfRangeToArray(low, high, array); + } else { + break; + } + } + + throw new _util.FormatError('Invalid bf range.'); + } + + function parseCidChar(cMap, lexer) { + while (true) { + var obj = lexer.getObj(); + + if ((0, _primitives.isEOF)(obj)) { + break; + } + + if ((0, _primitives.isCmd)(obj, 'endcidchar')) { + return; + } + + expectString(obj); + var src = strToInt(obj); + obj = lexer.getObj(); + expectInt(obj); + var dst = obj; + cMap.mapOne(src, dst); + } + } + + function parseCidRange(cMap, lexer) { + while (true) { + var obj = lexer.getObj(); + + if ((0, _primitives.isEOF)(obj)) { + break; + } + + if ((0, _primitives.isCmd)(obj, 'endcidrange')) { + return; + } + + expectString(obj); + var low = strToInt(obj); + obj = lexer.getObj(); + expectString(obj); + var high = strToInt(obj); + obj = lexer.getObj(); + expectInt(obj); + var dstLow = obj; + cMap.mapCidRange(low, high, dstLow); + } + } + + function parseCodespaceRange(cMap, lexer) { + while (true) { + var obj = lexer.getObj(); + + if ((0, _primitives.isEOF)(obj)) { + break; + } + + if ((0, _primitives.isCmd)(obj, 'endcodespacerange')) { + return; + } + + if (!(0, _util.isString)(obj)) { + break; + } + + var low = strToInt(obj); + obj = lexer.getObj(); + + if (!(0, _util.isString)(obj)) { + break; + } + + var high = strToInt(obj); + cMap.addCodespaceRange(obj.length, low, high); + } + + throw new _util.FormatError('Invalid codespace range.'); + } + + function parseWMode(cMap, lexer) { + var obj = lexer.getObj(); + + if (Number.isInteger(obj)) { + cMap.vertical = !!obj; + } + } + + function parseCMapName(cMap, lexer) { + var obj = lexer.getObj(); + + if ((0, _primitives.isName)(obj) && (0, _util.isString)(obj.name)) { + cMap.name = obj.name; + } + } + + function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) { + var previous; + var embeddedUseCMap; + + objLoop: while (true) { + try { + var obj = lexer.getObj(); + + if ((0, _primitives.isEOF)(obj)) { + break; + } else if ((0, _primitives.isName)(obj)) { + if (obj.name === 'WMode') { + parseWMode(cMap, lexer); + } else if (obj.name === 'CMapName') { + parseCMapName(cMap, lexer); + } + + previous = obj; + } else if ((0, _primitives.isCmd)(obj)) { + switch (obj.cmd) { + case 'endcmap': + break objLoop; + + case 'usecmap': + if ((0, _primitives.isName)(previous)) { + embeddedUseCMap = previous.name; + } + + break; + + case 'begincodespacerange': + parseCodespaceRange(cMap, lexer); + break; + + case 'beginbfchar': + parseBfChar(cMap, lexer); + break; + + case 'begincidchar': + parseCidChar(cMap, lexer); + break; + + case 'beginbfrange': + parseBfRange(cMap, lexer); + break; + + case 'begincidrange': + parseCidRange(cMap, lexer); + break; + } + } + } catch (ex) { + if (ex instanceof _util.MissingDataException) { + throw ex; + } + + (0, _util.warn)('Invalid cMap data: ' + ex); + continue; + } + } + + if (!useCMap && embeddedUseCMap) { + useCMap = embeddedUseCMap; + } + + if (useCMap) { + return extendCMap(cMap, fetchBuiltInCMap, useCMap); + } + + return Promise.resolve(cMap); + } + + function extendCMap(cMap, fetchBuiltInCMap, useCMap) { + return createBuiltInCMap(useCMap, fetchBuiltInCMap).then(function (newCMap) { + cMap.useCMap = newCMap; + + if (cMap.numCodespaceRanges === 0) { + var useCodespaceRanges = cMap.useCMap.codespaceRanges; + + for (var i = 0; i < useCodespaceRanges.length; i++) { + cMap.codespaceRanges[i] = useCodespaceRanges[i].slice(); + } + + cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges; + } + + cMap.useCMap.forEach(function (key, value) { + if (!cMap.contains(key)) { + cMap.mapOne(key, cMap.useCMap.lookup(key)); + } + }); + return cMap; + }); + } + + function createBuiltInCMap(name, fetchBuiltInCMap) { + if (name === 'Identity-H') { + return Promise.resolve(new IdentityCMap(false, 2)); + } else if (name === 'Identity-V') { + return Promise.resolve(new IdentityCMap(true, 2)); + } + + if (!BUILT_IN_CMAPS.includes(name)) { + return Promise.reject(new Error('Unknown CMap name: ' + name)); + } + + if (!fetchBuiltInCMap) { + return Promise.reject(new Error('Built-in CMap parameters are not provided.')); + } + + return fetchBuiltInCMap(name).then(function (data) { + var cMapData = data.cMapData, + compressionType = data.compressionType; + var cMap = new CMap(true); + + if (compressionType === _util.CMapCompressionType.BINARY) { + return new BinaryCMapReader().process(cMapData, cMap, function (useCMap) { + return extendCMap(cMap, fetchBuiltInCMap, useCMap); + }); + } + + if (compressionType === _util.CMapCompressionType.NONE) { + var lexer = new _parser.Lexer(new _stream.Stream(cMapData)); + return parseCMap(cMap, lexer, fetchBuiltInCMap, null); + } + + return Promise.reject(new Error('TODO: Only BINARY/NONE CMap compression is currently supported.')); + }); + } + + return { + create: function create(params) { + var encoding = params.encoding; + var fetchBuiltInCMap = params.fetchBuiltInCMap; + var useCMap = params.useCMap; + + if ((0, _primitives.isName)(encoding)) { + return createBuiltInCMap(encoding.name, fetchBuiltInCMap); + } else if ((0, _primitives.isStream)(encoding)) { + var cMap = new CMap(); + var lexer = new _parser.Lexer(encoding); + return parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap).then(function (parsedCMap) { + if (parsedCMap.isIdentityCMap) { + return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap); + } + + return parsedCMap; + }); + } + + return Promise.reject(new Error('Encoding required.')); + } + }; +}(); + +exports.CMapFactory = CMapFactory; + +/***/ }), +/* 173 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getFontType = getFontType; +exports.IdentityToUnicodeMap = exports.ToUnicodeMap = exports.FontFlags = exports.Font = exports.ErrorFont = exports.SEAC_ANALYSIS_ENABLED = void 0; + +var _util = __w_pdfjs_require__(6); + +var _cff_parser = __w_pdfjs_require__(174); + +var _glyphlist = __w_pdfjs_require__(177); + +var _encodings = __w_pdfjs_require__(176); + +var _standard_fonts = __w_pdfjs_require__(178); + +var _unicode = __w_pdfjs_require__(179); + +var _font_renderer = __w_pdfjs_require__(180); + +var _cmap = __w_pdfjs_require__(172); + +var _stream = __w_pdfjs_require__(157); + +var _type1_parser = __w_pdfjs_require__(181); + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } + +function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +var PRIVATE_USE_AREAS = [[0xE000, 0xF8FF], [0x100000, 0x10FFFD]]; +var PDF_GLYPH_SPACE_UNITS = 1000; +var SEAC_ANALYSIS_ENABLED = true; +exports.SEAC_ANALYSIS_ENABLED = SEAC_ANALYSIS_ENABLED; +var FontFlags = { + FixedPitch: 1, + Serif: 2, + Symbolic: 4, + Script: 8, + Nonsymbolic: 32, + Italic: 64, + AllCap: 65536, + SmallCap: 131072, + ForceBold: 262144 +}; +exports.FontFlags = FontFlags; +var MacStandardGlyphOrdering = ['.notdef', '.null', 'nonmarkingreturn', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde', 'Odieresis', 'Udieresis', 'aacute', 'agrave', 'acircumflex', 'adieresis', 'atilde', 'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis', 'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute', 'ograve', 'ocircumflex', 'odieresis', 'otilde', 'uacute', 'ugrave', 'ucircumflex', 'udieresis', 'dagger', 'degree', 'cent', 'sterling', 'section', 'bullet', 'paragraph', 'germandbls', 'registered', 'copyright', 'trademark', 'acute', 'dieresis', 'notequal', 'AE', 'Oslash', 'infinity', 'plusminus', 'lessequal', 'greaterequal', 'yen', 'mu', 'partialdiff', 'summation', 'product', 'pi', 'integral', 'ordfeminine', 'ordmasculine', 'Omega', 'ae', 'oslash', 'questiondown', 'exclamdown', 'logicalnot', 'radical', 'florin', 'approxequal', 'Delta', 'guillemotleft', 'guillemotright', 'ellipsis', 'nonbreakingspace', 'Agrave', 'Atilde', 'Otilde', 'OE', 'oe', 'endash', 'emdash', 'quotedblleft', 'quotedblright', 'quoteleft', 'quoteright', 'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction', 'currency', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl', 'periodcentered', 'quotesinglbase', 'quotedblbase', 'perthousand', 'Acircumflex', 'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple', 'Ograve', 'Uacute', 'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'Lslash', 'lslash', 'Scaron', 'scaron', 'Zcaron', 'zcaron', 'brokenbar', 'Eth', 'eth', 'Yacute', 'yacute', 'Thorn', 'thorn', 'minus', 'multiply', 'onesuperior', 'twosuperior', 'threesuperior', 'onehalf', 'onequarter', 'threequarters', 'franc', 'Gbreve', 'gbreve', 'Idotaccent', 'Scedilla', 'scedilla', 'Cacute', 'cacute', 'Ccaron', 'ccaron', 'dcroat']; + +function adjustWidths(properties) { + if (!properties.fontMatrix) { + return; + } + + if (properties.fontMatrix[0] === _util.FONT_IDENTITY_MATRIX[0]) { + return; + } + + var scale = 0.001 / properties.fontMatrix[0]; + var glyphsWidths = properties.widths; + + for (var glyph in glyphsWidths) { + glyphsWidths[glyph] *= scale; + } + + properties.defaultWidth *= scale; +} + +function adjustToUnicode(properties, builtInEncoding) { + if (properties.hasIncludedToUnicodeMap) { + return; + } + + if (properties.hasEncoding) { + return; + } + + if (builtInEncoding === properties.defaultEncoding) { + return; + } + + if (properties.toUnicode instanceof IdentityToUnicodeMap) { + return; + } + + var toUnicode = [], + glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)(); + + for (var charCode in builtInEncoding) { + var glyphName = builtInEncoding[charCode]; + var unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap); + + if (unicode !== -1) { + toUnicode[charCode] = String.fromCharCode(unicode); + } + } + + properties.toUnicode.amend(toUnicode); +} + +function getFontType(type, subtype) { + switch (type) { + case 'Type1': + return subtype === 'Type1C' ? _util.FontType.TYPE1C : _util.FontType.TYPE1; + + case 'CIDFontType0': + return subtype === 'CIDFontType0C' ? _util.FontType.CIDFONTTYPE0C : _util.FontType.CIDFONTTYPE0; + + case 'OpenType': + return _util.FontType.OPENTYPE; + + case 'TrueType': + return _util.FontType.TRUETYPE; + + case 'CIDFontType2': + return _util.FontType.CIDFONTTYPE2; + + case 'MMType1': + return _util.FontType.MMTYPE1; + + case 'Type0': + return _util.FontType.TYPE0; + + default: + return _util.FontType.UNKNOWN; + } +} + +function recoverGlyphName(name, glyphsUnicodeMap) { + if (glyphsUnicodeMap[name] !== undefined) { + return name; + } + + var unicode = (0, _unicode.getUnicodeForGlyph)(name, glyphsUnicodeMap); + + if (unicode !== -1) { + for (var key in glyphsUnicodeMap) { + if (glyphsUnicodeMap[key] === unicode) { + return key; + } + } + } + + (0, _util.info)('Unable to recover a standard glyph name for: ' + name); + return name; +} + +var Glyph = function GlyphClosure() { + function Glyph(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) { + this.fontChar = fontChar; + this.unicode = unicode; + this.accent = accent; + this.width = width; + this.vmetric = vmetric; + this.operatorListId = operatorListId; + this.isSpace = isSpace; + this.isInFont = isInFont; + } + + Glyph.prototype.matchesForCache = function (fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) { + return this.fontChar === fontChar && this.unicode === unicode && this.accent === accent && this.width === width && this.vmetric === vmetric && this.operatorListId === operatorListId && this.isSpace === isSpace && this.isInFont === isInFont; + }; + + return Glyph; +}(); + +var ToUnicodeMap = function ToUnicodeMapClosure() { + function ToUnicodeMap() { + var cmap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + this._map = cmap; + } + + ToUnicodeMap.prototype = { + get length() { + return this._map.length; + }, + + forEach: function forEach(callback) { + for (var charCode in this._map) { + callback(charCode, this._map[charCode].charCodeAt(0)); + } + }, + has: function has(i) { + return this._map[i] !== undefined; + }, + get: function get(i) { + return this._map[i]; + }, + charCodeOf: function charCodeOf(value) { + var map = this._map; + + if (map.length <= 0x10000) { + return map.indexOf(value); + } + + for (var charCode in map) { + if (map[charCode] === value) { + return charCode | 0; + } + } + + return -1; + }, + amend: function amend(map) { + for (var charCode in map) { + this._map[charCode] = map[charCode]; + } + } + }; + return ToUnicodeMap; +}(); + +exports.ToUnicodeMap = ToUnicodeMap; + +var IdentityToUnicodeMap = function IdentityToUnicodeMapClosure() { + function IdentityToUnicodeMap(firstChar, lastChar) { + this.firstChar = firstChar; + this.lastChar = lastChar; + } + + IdentityToUnicodeMap.prototype = { + get length() { + return this.lastChar + 1 - this.firstChar; + }, + + forEach: function forEach(callback) { + for (var i = this.firstChar, ii = this.lastChar; i <= ii; i++) { + callback(i, i); + } + }, + has: function has(i) { + return this.firstChar <= i && i <= this.lastChar; + }, + get: function get(i) { + if (this.firstChar <= i && i <= this.lastChar) { + return String.fromCharCode(i); + } + + return undefined; + }, + charCodeOf: function charCodeOf(v) { + return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar ? v : -1; + }, + amend: function amend(map) { + (0, _util.unreachable)('Should not call amend()'); + } + }; + return IdentityToUnicodeMap; +}(); + +exports.IdentityToUnicodeMap = IdentityToUnicodeMap; + +var OpenTypeFileBuilder = function OpenTypeFileBuilderClosure() { + function writeInt16(dest, offset, num) { + dest[offset] = num >> 8 & 0xFF; + dest[offset + 1] = num & 0xFF; + } + + function writeInt32(dest, offset, num) { + dest[offset] = num >> 24 & 0xFF; + dest[offset + 1] = num >> 16 & 0xFF; + dest[offset + 2] = num >> 8 & 0xFF; + dest[offset + 3] = num & 0xFF; + } + + function writeData(dest, offset, data) { + var i, ii; + + if (data instanceof Uint8Array) { + dest.set(data, offset); + } else if (typeof data === 'string') { + for (i = 0, ii = data.length; i < ii; i++) { + dest[offset++] = data.charCodeAt(i) & 0xFF; + } + } else { + for (i = 0, ii = data.length; i < ii; i++) { + dest[offset++] = data[i] & 0xFF; + } + } + } + + function OpenTypeFileBuilder(sfnt) { + this.sfnt = sfnt; + this.tables = Object.create(null); + } + + OpenTypeFileBuilder.getSearchParams = function OpenTypeFileBuilder_getSearchParams(entriesCount, entrySize) { + var maxPower2 = 1, + log2 = 0; + + while ((maxPower2 ^ entriesCount) > maxPower2) { + maxPower2 <<= 1; + log2++; + } + + var searchRange = maxPower2 * entrySize; + return { + range: searchRange, + entry: log2, + rangeShift: entrySize * entriesCount - searchRange + }; + }; + + var OTF_HEADER_SIZE = 12; + var OTF_TABLE_ENTRY_SIZE = 16; + OpenTypeFileBuilder.prototype = { + toArray: function OpenTypeFileBuilder_toArray() { + var sfnt = this.sfnt; + var tables = this.tables; + var tablesNames = Object.keys(tables); + tablesNames.sort(); + var numTables = tablesNames.length; + var i, j, jj, table, tableName; + var offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE; + var tableOffsets = [offset]; + + for (i = 0; i < numTables; i++) { + table = tables[tablesNames[i]]; + var paddedLength = (table.length + 3 & ~3) >>> 0; + offset += paddedLength; + tableOffsets.push(offset); + } + + var file = new Uint8Array(offset); + + for (i = 0; i < numTables; i++) { + table = tables[tablesNames[i]]; + writeData(file, tableOffsets[i], table); + } + + if (sfnt === 'true') { + sfnt = (0, _util.string32)(0x00010000); + } + + file[0] = sfnt.charCodeAt(0) & 0xFF; + file[1] = sfnt.charCodeAt(1) & 0xFF; + file[2] = sfnt.charCodeAt(2) & 0xFF; + file[3] = sfnt.charCodeAt(3) & 0xFF; + writeInt16(file, 4, numTables); + var searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16); + writeInt16(file, 6, searchParams.range); + writeInt16(file, 8, searchParams.entry); + writeInt16(file, 10, searchParams.rangeShift); + offset = OTF_HEADER_SIZE; + + for (i = 0; i < numTables; i++) { + tableName = tablesNames[i]; + file[offset] = tableName.charCodeAt(0) & 0xFF; + file[offset + 1] = tableName.charCodeAt(1) & 0xFF; + file[offset + 2] = tableName.charCodeAt(2) & 0xFF; + file[offset + 3] = tableName.charCodeAt(3) & 0xFF; + var checksum = 0; + + for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) { + var quad = (0, _util.readUint32)(file, j); + checksum = checksum + quad >>> 0; + } + + writeInt32(file, offset + 4, checksum); + writeInt32(file, offset + 8, tableOffsets[i]); + writeInt32(file, offset + 12, tables[tableName].length); + offset += OTF_TABLE_ENTRY_SIZE; + } + + return file; + }, + addTable: function OpenTypeFileBuilder_addTable(tag, data) { + if (tag in this.tables) { + throw new Error('Table ' + tag + ' already exists'); + } + + this.tables[tag] = data; + } + }; + return OpenTypeFileBuilder; +}(); + +var Font = function FontClosure() { + function Font(name, file, properties) { + var charCode; + this.name = name; + this.loadedName = properties.loadedName; + this.isType3Font = properties.isType3Font; + this.sizes = []; + this.missingFile = false; + this.glyphCache = Object.create(null); + this.isSerifFont = !!(properties.flags & FontFlags.Serif); + this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic); + this.isMonospace = !!(properties.flags & FontFlags.FixedPitch); + var type = properties.type; + var subtype = properties.subtype; + this.type = type; + this.subtype = subtype; + this.fallbackName = this.isMonospace ? 'monospace' : this.isSerifFont ? 'serif' : 'sans-serif'; + this.differences = properties.differences; + this.widths = properties.widths; + this.defaultWidth = properties.defaultWidth; + this.composite = properties.composite; + this.wideChars = properties.wideChars; + this.cMap = properties.cMap; + this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS; + this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS; + this.fontMatrix = properties.fontMatrix; + this.bbox = properties.bbox; + this.defaultEncoding = properties.defaultEncoding; + this.toUnicode = properties.toUnicode; + this.fallbackToUnicode = properties.fallbackToUnicode || new ToUnicodeMap(); + this.toFontChar = []; + + if (properties.type === 'Type3') { + for (charCode = 0; charCode < 256; charCode++) { + this.toFontChar[charCode] = this.differences[charCode] || properties.defaultEncoding[charCode]; + } + + this.fontType = _util.FontType.TYPE3; + return; + } + + this.cidEncoding = properties.cidEncoding; + this.vertical = properties.vertical; + + if (this.vertical) { + this.vmetrics = properties.vmetrics; + this.defaultVMetrics = properties.defaultVMetrics; + } + + if (!file || file.isEmpty) { + if (file) { + (0, _util.warn)('Font file is empty in "' + name + '" (' + this.loadedName + ')'); + } + + this.fallbackToSystemFont(); + return; + } + + var _getFontFileType = getFontFileType(file, properties); + + var _getFontFileType2 = _slicedToArray(_getFontFileType, 2); + + type = _getFontFileType2[0]; + subtype = _getFontFileType2[1]; + + if (type !== this.type || subtype !== this.subtype) { + (0, _util.info)('Inconsistent font file Type/SubType, expected: ' + "".concat(this.type, "/").concat(this.subtype, " but found: ").concat(type, "/").concat(subtype, ".")); + } + + try { + var data; + + switch (type) { + case 'MMType1': + (0, _util.info)('MMType1 font (' + name + '), falling back to Type1.'); + + case 'Type1': + case 'CIDFontType0': + this.mimetype = 'font/opentype'; + var cff = subtype === 'Type1C' || subtype === 'CIDFontType0C' ? new CFFFont(file, properties) : new Type1Font(name, file, properties); + adjustWidths(properties); + data = this.convert(name, cff, properties); + break; + + case 'OpenType': + case 'TrueType': + case 'CIDFontType2': + this.mimetype = 'font/opentype'; + data = this.checkAndRepair(name, file, properties); + + if (this.isOpenType) { + adjustWidths(properties); + type = 'OpenType'; + } + + break; + + default: + throw new _util.FormatError("Font ".concat(type, " is not supported")); + } + } catch (e) { + (0, _util.warn)(e); + this.fallbackToSystemFont(); + return; + } + + this.data = data; + this.fontType = getFontType(type, subtype); + this.fontMatrix = properties.fontMatrix; + this.widths = properties.widths; + this.defaultWidth = properties.defaultWidth; + this.toUnicode = properties.toUnicode; + this.encoding = properties.baseEncoding; + this.seacMap = properties.seacMap; + } + + Font.getFontID = function () { + var ID = 1; + return function Font_getFontID() { + return String(ID++); + }; + }(); + + function int16(b0, b1) { + return (b0 << 8) + b1; + } + + function writeSignedInt16(bytes, index, value) { + bytes[index + 1] = value; + bytes[index] = value >>> 8; + } + + function signedInt16(b0, b1) { + var value = (b0 << 8) + b1; + return value & 1 << 15 ? value - 0x10000 : value; + } + + function int32(b0, b1, b2, b3) { + return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3; + } + + function string16(value) { + return String.fromCharCode(value >> 8 & 0xff, value & 0xff); + } + + function safeString16(value) { + value = value > 0x7FFF ? 0x7FFF : value < -0x8000 ? -0x8000 : value; + return String.fromCharCode(value >> 8 & 0xff, value & 0xff); + } + + function isTrueTypeFile(file) { + var header = file.peekBytes(4); + return (0, _util.readUint32)(header, 0) === 0x00010000 || (0, _util.bytesToString)(header) === 'true'; + } + + function isTrueTypeCollectionFile(file) { + var header = file.peekBytes(4); + return (0, _util.bytesToString)(header) === 'ttcf'; + } + + function isOpenTypeFile(file) { + var header = file.peekBytes(4); + return (0, _util.bytesToString)(header) === 'OTTO'; + } + + function isType1File(file) { + var header = file.peekBytes(2); + + if (header[0] === 0x25 && header[1] === 0x21) { + return true; + } + + if (header[0] === 0x80 && header[1] === 0x01) { + return true; + } + + return false; + } + + function isCFFFile(file) { + var header = file.peekBytes(4); + + if (header[0] >= 1 && header[3] >= 1 && header[3] <= 4) { + return true; + } + + return false; + } + + function getFontFileType(file, _ref) { + var type = _ref.type, + subtype = _ref.subtype, + composite = _ref.composite; + var fileType, fileSubtype; + + if (isTrueTypeFile(file) || isTrueTypeCollectionFile(file)) { + if (composite) { + fileType = 'CIDFontType2'; + } else { + fileType = 'TrueType'; + } + } else if (isOpenTypeFile(file)) { + if (composite) { + fileType = 'CIDFontType2'; + } else { + fileType = 'OpenType'; + } + } else if (isType1File(file)) { + if (composite) { + fileType = 'CIDFontType0'; + } else { + fileType = type === 'MMType1' ? 'MMType1' : 'Type1'; + } + } else if (isCFFFile(file)) { + if (composite) { + fileType = 'CIDFontType0'; + fileSubtype = 'CIDFontType0C'; + } else { + fileType = type === 'MMType1' ? 'MMType1' : 'Type1'; + fileSubtype = 'Type1C'; + } + } else { + (0, _util.warn)('getFontFileType: Unable to detect correct font file Type/Subtype.'); + fileType = type; + fileSubtype = subtype; + } + + return [fileType, fileSubtype]; + } + + function buildToFontChar(encoding, glyphsUnicodeMap, differences) { + var toFontChar = [], + unicode; + + for (var i = 0, ii = encoding.length; i < ii; i++) { + unicode = (0, _unicode.getUnicodeForGlyph)(encoding[i], glyphsUnicodeMap); + + if (unicode !== -1) { + toFontChar[i] = unicode; + } + } + + for (var charCode in differences) { + unicode = (0, _unicode.getUnicodeForGlyph)(differences[charCode], glyphsUnicodeMap); + + if (unicode !== -1) { + toFontChar[+charCode] = unicode; + } + } + + return toFontChar; + } + + function adjustMapping(charCodeToGlyphId, hasGlyph, newGlyphZeroId) { + var newMap = Object.create(null); + var toFontChar = []; + var privateUseAreaIndex = 0; + var nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0]; + var privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1]; + + for (var originalCharCode in charCodeToGlyphId) { + originalCharCode |= 0; + var glyphId = charCodeToGlyphId[originalCharCode]; + + if (!hasGlyph(glyphId)) { + continue; + } + + if (nextAvailableFontCharCode > privateUseOffetEnd) { + privateUseAreaIndex++; + + if (privateUseAreaIndex >= PRIVATE_USE_AREAS.length) { + (0, _util.warn)('Ran out of space in font private use area.'); + break; + } + + nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0]; + privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1]; + } + + var fontCharCode = nextAvailableFontCharCode++; + + if (glyphId === 0) { + glyphId = newGlyphZeroId; + } + + newMap[fontCharCode] = glyphId; + toFontChar[originalCharCode] = fontCharCode; + } + + return { + toFontChar: toFontChar, + charCodeToGlyphId: newMap, + nextAvailableFontCharCode: nextAvailableFontCharCode + }; + } + + function getRanges(glyphs, numGlyphs) { + var codes = []; + + for (var charCode in glyphs) { + if (glyphs[charCode] >= numGlyphs) { + continue; + } + + codes.push({ + fontCharCode: charCode | 0, + glyphId: glyphs[charCode] + }); + } + + if (codes.length === 0) { + codes.push({ + fontCharCode: 0, + glyphId: 0 + }); + } + + codes.sort(function fontGetRangesSort(a, b) { + return a.fontCharCode - b.fontCharCode; + }); + var ranges = []; + var length = codes.length; + + for (var n = 0; n < length;) { + var start = codes[n].fontCharCode; + var codeIndices = [codes[n].glyphId]; + ++n; + var end = start; + + while (n < length && end + 1 === codes[n].fontCharCode) { + codeIndices.push(codes[n].glyphId); + ++end; + ++n; + + if (end === 0xFFFF) { + break; + } + } + + ranges.push([start, end, codeIndices]); + } + + return ranges; + } + + function createCmapTable(glyphs, numGlyphs) { + var ranges = getRanges(glyphs, numGlyphs); + var numTables = ranges[ranges.length - 1][1] > 0xFFFF ? 2 : 1; + var cmap = '\x00\x00' + string16(numTables) + '\x00\x03' + '\x00\x01' + (0, _util.string32)(4 + numTables * 8); + var i, ii, j, jj; + + for (i = ranges.length - 1; i >= 0; --i) { + if (ranges[i][0] <= 0xFFFF) { + break; + } + } + + var bmpLength = i + 1; + + if (ranges[i][0] < 0xFFFF && ranges[i][1] === 0xFFFF) { + ranges[i][1] = 0xFFFE; + } + + var trailingRangesCount = ranges[i][1] < 0xFFFF ? 1 : 0; + var segCount = bmpLength + trailingRangesCount; + var searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2); + var startCount = ''; + var endCount = ''; + var idDeltas = ''; + var idRangeOffsets = ''; + var glyphsIds = ''; + var bias = 0; + var range, start, end, codes; + + for (i = 0, ii = bmpLength; i < ii; i++) { + range = ranges[i]; + start = range[0]; + end = range[1]; + startCount += string16(start); + endCount += string16(end); + codes = range[2]; + var contiguous = true; + + for (j = 1, jj = codes.length; j < jj; ++j) { + if (codes[j] !== codes[j - 1] + 1) { + contiguous = false; + break; + } + } + + if (!contiguous) { + var offset = (segCount - i) * 2 + bias * 2; + bias += end - start + 1; + idDeltas += string16(0); + idRangeOffsets += string16(offset); + + for (j = 0, jj = codes.length; j < jj; ++j) { + glyphsIds += string16(codes[j]); + } + } else { + var startCode = codes[0]; + idDeltas += string16(startCode - start & 0xFFFF); + idRangeOffsets += string16(0); + } + } + + if (trailingRangesCount > 0) { + endCount += '\xFF\xFF'; + startCount += '\xFF\xFF'; + idDeltas += '\x00\x01'; + idRangeOffsets += '\x00\x00'; + } + + var format314 = '\x00\x00' + string16(2 * segCount) + string16(searchParams.range) + string16(searchParams.entry) + string16(searchParams.rangeShift) + endCount + '\x00\x00' + startCount + idDeltas + idRangeOffsets + glyphsIds; + var format31012 = ''; + var header31012 = ''; + + if (numTables > 1) { + cmap += '\x00\x03' + '\x00\x0A' + (0, _util.string32)(4 + numTables * 8 + 4 + format314.length); + format31012 = ''; + + for (i = 0, ii = ranges.length; i < ii; i++) { + range = ranges[i]; + start = range[0]; + codes = range[2]; + var code = codes[0]; + + for (j = 1, jj = codes.length; j < jj; ++j) { + if (codes[j] !== codes[j - 1] + 1) { + end = range[0] + j - 1; + format31012 += (0, _util.string32)(start) + (0, _util.string32)(end) + (0, _util.string32)(code); + start = end + 1; + code = codes[j]; + } + } + + format31012 += (0, _util.string32)(start) + (0, _util.string32)(range[1]) + (0, _util.string32)(code); + } + + header31012 = '\x00\x0C' + '\x00\x00' + (0, _util.string32)(format31012.length + 16) + '\x00\x00\x00\x00' + (0, _util.string32)(format31012.length / 12); + } + + return cmap + '\x00\x04' + string16(format314.length + 4) + format314 + header31012 + format31012; + } + + function validateOS2Table(os2) { + var stream = new _stream.Stream(os2.data); + var version = stream.getUint16(); + stream.getBytes(60); + var selection = stream.getUint16(); + + if (version < 4 && selection & 0x0300) { + return false; + } + + var firstChar = stream.getUint16(); + var lastChar = stream.getUint16(); + + if (firstChar > lastChar) { + return false; + } + + stream.getBytes(6); + var usWinAscent = stream.getUint16(); + + if (usWinAscent === 0) { + return false; + } + + os2.data[8] = os2.data[9] = 0; + return true; + } + + function createOS2Table(properties, charstrings, override) { + override = override || { + unitsPerEm: 0, + yMax: 0, + yMin: 0, + ascent: 0, + descent: 0 + }; + var ulUnicodeRange1 = 0; + var ulUnicodeRange2 = 0; + var ulUnicodeRange3 = 0; + var ulUnicodeRange4 = 0; + var firstCharIndex = null; + var lastCharIndex = 0; + + if (charstrings) { + for (var code in charstrings) { + code |= 0; + + if (firstCharIndex > code || !firstCharIndex) { + firstCharIndex = code; + } + + if (lastCharIndex < code) { + lastCharIndex = code; + } + + var position = (0, _unicode.getUnicodeRangeFor)(code); + + if (position < 32) { + ulUnicodeRange1 |= 1 << position; + } else if (position < 64) { + ulUnicodeRange2 |= 1 << position - 32; + } else if (position < 96) { + ulUnicodeRange3 |= 1 << position - 64; + } else if (position < 123) { + ulUnicodeRange4 |= 1 << position - 96; + } else { + throw new _util.FormatError('Unicode ranges Bits > 123 are reserved for internal usage'); + } + } + + if (lastCharIndex > 0xFFFF) { + lastCharIndex = 0xFFFF; + } + } else { + firstCharIndex = 0; + lastCharIndex = 255; + } + + var bbox = properties.bbox || [0, 0, 0, 0]; + var unitsPerEm = override.unitsPerEm || 1 / (properties.fontMatrix || _util.FONT_IDENTITY_MATRIX)[0]; + var scale = properties.ascentScaled ? 1.0 : unitsPerEm / PDF_GLYPH_SPACE_UNITS; + var typoAscent = override.ascent || Math.round(scale * (properties.ascent || bbox[3])); + var typoDescent = override.descent || Math.round(scale * (properties.descent || bbox[1])); + + if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) { + typoDescent = -typoDescent; + } + + var winAscent = override.yMax || typoAscent; + var winDescent = -override.yMin || -typoDescent; + return '\x00\x03' + '\x02\x24' + '\x01\xF4' + '\x00\x05' + '\x00\x00' + '\x02\x8A' + '\x02\xBB' + '\x00\x00' + '\x00\x8C' + '\x02\x8A' + '\x02\xBB' + '\x00\x00' + '\x01\xDF' + '\x00\x31' + '\x01\x02' + '\x00\x00' + '\x00\x00\x06' + String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) + '\x00\x00\x00\x00\x00\x00' + (0, _util.string32)(ulUnicodeRange1) + (0, _util.string32)(ulUnicodeRange2) + (0, _util.string32)(ulUnicodeRange3) + (0, _util.string32)(ulUnicodeRange4) + '\x2A\x32\x31\x2A' + string16(properties.italicAngle ? 1 : 0) + string16(firstCharIndex || properties.firstChar) + string16(lastCharIndex || properties.lastChar) + string16(typoAscent) + string16(typoDescent) + '\x00\x64' + string16(winAscent) + string16(winDescent) + '\x00\x00\x00\x00' + '\x00\x00\x00\x00' + string16(properties.xHeight) + string16(properties.capHeight) + string16(0) + string16(firstCharIndex || properties.firstChar) + '\x00\x03'; + } + + function createPostTable(properties) { + var angle = Math.floor(properties.italicAngle * Math.pow(2, 16)); + return '\x00\x03\x00\x00' + (0, _util.string32)(angle) + '\x00\x00' + '\x00\x00' + (0, _util.string32)(properties.fixedPitch) + '\x00\x00\x00\x00' + '\x00\x00\x00\x00' + '\x00\x00\x00\x00' + '\x00\x00\x00\x00'; + } + + function createNameTable(name, proto) { + if (!proto) { + proto = [[], []]; + } + + var strings = [proto[0][0] || 'Original licence', proto[0][1] || name, proto[0][2] || 'Unknown', proto[0][3] || 'uniqueID', proto[0][4] || name, proto[0][5] || 'Version 0.11', proto[0][6] || '', proto[0][7] || 'Unknown', proto[0][8] || 'Unknown', proto[0][9] || 'Unknown']; + var stringsUnicode = []; + var i, ii, j, jj, str; + + for (i = 0, ii = strings.length; i < ii; i++) { + str = proto[1][i] || strings[i]; + var strBufUnicode = []; + + for (j = 0, jj = str.length; j < jj; j++) { + strBufUnicode.push(string16(str.charCodeAt(j))); + } + + stringsUnicode.push(strBufUnicode.join('')); + } + + var names = [strings, stringsUnicode]; + var platforms = ['\x00\x01', '\x00\x03']; + var encodings = ['\x00\x00', '\x00\x01']; + var languages = ['\x00\x00', '\x04\x09']; + var namesRecordCount = strings.length * platforms.length; + var nameTable = '\x00\x00' + string16(namesRecordCount) + string16(namesRecordCount * 12 + 6); + var strOffset = 0; + + for (i = 0, ii = platforms.length; i < ii; i++) { + var strs = names[i]; + + for (j = 0, jj = strs.length; j < jj; j++) { + str = strs[j]; + var nameRecord = platforms[i] + encodings[i] + languages[i] + string16(j) + string16(str.length) + string16(strOffset); + nameTable += nameRecord; + strOffset += str.length; + } + } + + nameTable += strings.join('') + stringsUnicode.join(''); + return nameTable; + } + + Font.prototype = { + name: null, + font: null, + mimetype: null, + encoding: null, + disableFontFace: false, + + get renderer() { + var renderer = _font_renderer.FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED); + + return (0, _util.shadow)(this, 'renderer', renderer); + }, + + exportData: function Font_exportData() { + var data = {}; + + for (var i in this) { + if (this.hasOwnProperty(i)) { + data[i] = this[i]; + } + } + + return data; + }, + fallbackToSystemFont: function Font_fallbackToSystemFont() { + var _this = this; + + this.missingFile = true; + var charCode, unicode; + var name = this.name; + var type = this.type; + var subtype = this.subtype; + var fontName = name.replace(/[,_]/g, '-'); + var stdFontMap = (0, _standard_fonts.getStdFontMap)(), + nonStdFontMap = (0, _standard_fonts.getNonStdFontMap)(); + var isStandardFont = !!stdFontMap[fontName] || !!(nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]); + fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName; + this.bold = fontName.search(/bold/gi) !== -1; + this.italic = fontName.search(/oblique/gi) !== -1 || fontName.search(/italic/gi) !== -1; + this.black = name.search(/Black/g) !== -1; + this.remeasure = Object.keys(this.widths).length > 0; + + if (isStandardFont && type === 'CIDFontType2' && this.cidEncoding.startsWith('Identity-')) { + var GlyphMapForStandardFonts = (0, _standard_fonts.getGlyphMapForStandardFonts)(); + var map = []; + + for (charCode in GlyphMapForStandardFonts) { + map[+charCode] = GlyphMapForStandardFonts[charCode]; + } + + if (/Arial-?Black/i.test(name)) { + var SupplementalGlyphMapForArialBlack = (0, _standard_fonts.getSupplementalGlyphMapForArialBlack)(); + + for (charCode in SupplementalGlyphMapForArialBlack) { + map[+charCode] = SupplementalGlyphMapForArialBlack[charCode]; + } + } else if (/Calibri/i.test(name)) { + var SupplementalGlyphMapForCalibri = (0, _standard_fonts.getSupplementalGlyphMapForCalibri)(); + + for (charCode in SupplementalGlyphMapForCalibri) { + map[+charCode] = SupplementalGlyphMapForCalibri[charCode]; + } + } + + var isIdentityUnicode = this.toUnicode instanceof IdentityToUnicodeMap; + + if (!isIdentityUnicode) { + this.toUnicode.forEach(function (charCode, unicodeCharCode) { + map[+charCode] = unicodeCharCode; + }); + } + + this.toFontChar = map; + this.toUnicode = new ToUnicodeMap(map); + } else if (/Symbol/i.test(fontName)) { + this.toFontChar = buildToFontChar(_encodings.SymbolSetEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences); + } else if (/Dingbats/i.test(fontName)) { + if (/Wingdings/i.test(name)) { + (0, _util.warn)('Non-embedded Wingdings font, falling back to ZapfDingbats.'); + } + + this.toFontChar = buildToFontChar(_encodings.ZapfDingbatsEncoding, (0, _glyphlist.getDingbatsGlyphsUnicode)(), this.differences); + } else if (isStandardFont) { + this.toFontChar = buildToFontChar(this.defaultEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences); + } else { + var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)(); + this.toUnicode.forEach(function (charCode, unicodeCharCode) { + if (!_this.composite) { + var glyphName = _this.differences[charCode] || _this.defaultEncoding[charCode]; + unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap); + + if (unicode !== -1) { + unicodeCharCode = unicode; + } + } + + _this.toFontChar[charCode] = unicodeCharCode; + }); + } + + this.loadedName = fontName.split('-')[0]; + this.fontType = getFontType(type, subtype); + }, + checkAndRepair: function Font_checkAndRepair(name, font, properties) { + var VALID_TABLES = ['OS/2', 'cmap', 'head', 'hhea', 'hmtx', 'maxp', 'name', 'post', 'loca', 'glyf', 'fpgm', 'prep', 'cvt ', 'CFF ']; + + function readTables(file, numTables) { + var tables = Object.create(null); + tables['OS/2'] = null; + tables['cmap'] = null; + tables['head'] = null; + tables['hhea'] = null; + tables['hmtx'] = null; + tables['maxp'] = null; + tables['name'] = null; + tables['post'] = null; + + for (var i = 0; i < numTables; i++) { + var table = readTableEntry(font); + + if (!VALID_TABLES.includes(table.tag)) { + continue; + } + + if (table.length === 0) { + continue; + } + + tables[table.tag] = table; + } + + return tables; + } + + function readTableEntry(file) { + var tag = (0, _util.bytesToString)(file.getBytes(4)); + var checksum = file.getInt32() >>> 0; + var offset = file.getInt32() >>> 0; + var length = file.getInt32() >>> 0; + var previousPosition = file.pos; + file.pos = file.start ? file.start : 0; + file.skip(offset); + var data = file.getBytes(length); + file.pos = previousPosition; + + if (tag === 'head') { + data[8] = data[9] = data[10] = data[11] = 0; + data[17] |= 0x20; + } + + return { + tag: tag, + checksum: checksum, + length: length, + offset: offset, + data: data + }; + } + + function readOpenTypeHeader(ttf) { + return { + version: (0, _util.bytesToString)(ttf.getBytes(4)), + numTables: ttf.getUint16(), + searchRange: ttf.getUint16(), + entrySelector: ttf.getUint16(), + rangeShift: ttf.getUint16() + }; + } + + function readTrueTypeCollectionHeader(ttc) { + var ttcTag = (0, _util.bytesToString)(ttc.getBytes(4)); + (0, _util.assert)(ttcTag === 'ttcf', 'Must be a TrueType Collection font.'); + var majorVersion = ttc.getUint16(); + var minorVersion = ttc.getUint16(); + var numFonts = ttc.getInt32() >>> 0; + var offsetTable = []; + + for (var i = 0; i < numFonts; i++) { + offsetTable.push(ttc.getInt32() >>> 0); + } + + var header = { + ttcTag: ttcTag, + majorVersion: majorVersion, + minorVersion: minorVersion, + numFonts: numFonts, + offsetTable: offsetTable + }; + + switch (majorVersion) { + case 1: + return header; + + case 2: + header.dsigTag = ttc.getInt32() >>> 0; + header.dsigLength = ttc.getInt32() >>> 0; + header.dsigOffset = ttc.getInt32() >>> 0; + return header; + } + + throw new _util.FormatError("Invalid TrueType Collection majorVersion: ".concat(majorVersion, ".")); + } + + function readTrueTypeCollectionData(ttc, fontName) { + var _readTrueTypeCollecti = readTrueTypeCollectionHeader(ttc), + numFonts = _readTrueTypeCollecti.numFonts, + offsetTable = _readTrueTypeCollecti.offsetTable; + + for (var i = 0; i < numFonts; i++) { + ttc.pos = (ttc.start || 0) + offsetTable[i]; + var potentialHeader = readOpenTypeHeader(ttc); + var potentialTables = readTables(ttc, potentialHeader.numTables); + + if (!potentialTables['name']) { + throw new _util.FormatError('TrueType Collection font must contain a "name" table.'); + } + + var nameTable = readNameTable(potentialTables['name']); + + for (var j = 0, jj = nameTable.length; j < jj; j++) { + for (var k = 0, kk = nameTable[j].length; k < kk; k++) { + var nameEntry = nameTable[j][k]; + + if (nameEntry && nameEntry.replace(/\s/g, '') === fontName) { + return { + header: potentialHeader, + tables: potentialTables + }; + } + } + } + } + + throw new _util.FormatError("TrueType Collection does not contain \"".concat(fontName, "\" font.")); + } + + function readCmapTable(cmap, font, isSymbolicFont, hasEncoding) { + if (!cmap) { + (0, _util.warn)('No cmap table available.'); + return { + platformId: -1, + encodingId: -1, + mappings: [], + hasShortCmap: false + }; + } + + var segment; + var start = (font.start ? font.start : 0) + cmap.offset; + font.pos = start; + font.getUint16(); + var numTables = font.getUint16(); + var potentialTable; + var canBreak = false; + + for (var i = 0; i < numTables; i++) { + var platformId = font.getUint16(); + var encodingId = font.getUint16(); + var offset = font.getInt32() >>> 0; + var useTable = false; + + if (potentialTable && potentialTable.platformId === platformId && potentialTable.encodingId === encodingId) { + continue; + } + + if (platformId === 0 && encodingId === 0) { + useTable = true; + } else if (platformId === 1 && encodingId === 0) { + useTable = true; + } else if (platformId === 3 && encodingId === 1 && (hasEncoding || !potentialTable)) { + useTable = true; + + if (!isSymbolicFont) { + canBreak = true; + } + } else if (isSymbolicFont && platformId === 3 && encodingId === 0) { + useTable = true; + canBreak = true; + } + + if (useTable) { + potentialTable = { + platformId: platformId, + encodingId: encodingId, + offset: offset + }; + } + + if (canBreak) { + break; + } + } + + if (potentialTable) { + font.pos = start + potentialTable.offset; + } + + if (!potentialTable || font.peekByte() === -1) { + (0, _util.warn)('Could not find a preferred cmap table.'); + return { + platformId: -1, + encodingId: -1, + mappings: [], + hasShortCmap: false + }; + } + + var format = font.getUint16(); + font.getUint16(); + font.getUint16(); + var hasShortCmap = false; + var mappings = []; + var j, glyphId; + + if (format === 0) { + for (j = 0; j < 256; j++) { + var index = font.getByte(); + + if (!index) { + continue; + } + + mappings.push({ + charCode: j, + glyphId: index + }); + } + + hasShortCmap = true; + } else if (format === 4) { + var segCount = font.getUint16() >> 1; + font.getBytes(6); + var segIndex, + segments = []; + + for (segIndex = 0; segIndex < segCount; segIndex++) { + segments.push({ + end: font.getUint16() + }); + } + + font.getUint16(); + + for (segIndex = 0; segIndex < segCount; segIndex++) { + segments[segIndex].start = font.getUint16(); + } + + for (segIndex = 0; segIndex < segCount; segIndex++) { + segments[segIndex].delta = font.getUint16(); + } + + var offsetsCount = 0; + + for (segIndex = 0; segIndex < segCount; segIndex++) { + segment = segments[segIndex]; + var rangeOffset = font.getUint16(); + + if (!rangeOffset) { + segment.offsetIndex = -1; + continue; + } + + var offsetIndex = (rangeOffset >> 1) - (segCount - segIndex); + segment.offsetIndex = offsetIndex; + offsetsCount = Math.max(offsetsCount, offsetIndex + segment.end - segment.start + 1); + } + + var offsets = []; + + for (j = 0; j < offsetsCount; j++) { + offsets.push(font.getUint16()); + } + + for (segIndex = 0; segIndex < segCount; segIndex++) { + segment = segments[segIndex]; + start = segment.start; + var end = segment.end; + var delta = segment.delta; + offsetIndex = segment.offsetIndex; + + for (j = start; j <= end; j++) { + if (j === 0xFFFF) { + continue; + } + + glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start]; + glyphId = glyphId + delta & 0xFFFF; + mappings.push({ + charCode: j, + glyphId: glyphId + }); + } + } + } else if (format === 6) { + var firstCode = font.getUint16(); + var entryCount = font.getUint16(); + + for (j = 0; j < entryCount; j++) { + glyphId = font.getUint16(); + var charCode = firstCode + j; + mappings.push({ + charCode: charCode, + glyphId: glyphId + }); + } + } else { + (0, _util.warn)('cmap table has unsupported format: ' + format); + return { + platformId: -1, + encodingId: -1, + mappings: [], + hasShortCmap: false + }; + } + + mappings.sort(function (a, b) { + return a.charCode - b.charCode; + }); + + for (i = 1; i < mappings.length; i++) { + if (mappings[i - 1].charCode === mappings[i].charCode) { + mappings.splice(i, 1); + i--; + } + } + + return { + platformId: potentialTable.platformId, + encodingId: potentialTable.encodingId, + mappings: mappings, + hasShortCmap: hasShortCmap + }; + } + + function sanitizeMetrics(font, header, metrics, numGlyphs) { + if (!header) { + if (metrics) { + metrics.data = null; + } + + return; + } + + font.pos = (font.start ? font.start : 0) + header.offset; + font.pos += 4; + font.pos += 2; + font.pos += 2; + font.pos += 2; + font.pos += 2; + font.pos += 2; + font.pos += 2; + font.pos += 2; + font.pos += 2; + font.pos += 2; + font.pos += 2; + font.pos += 8; + font.pos += 2; + var numOfMetrics = font.getUint16(); + + if (numOfMetrics > numGlyphs) { + (0, _util.info)('The numOfMetrics (' + numOfMetrics + ') should not be ' + 'greater than the numGlyphs (' + numGlyphs + ')'); + numOfMetrics = numGlyphs; + header.data[34] = (numOfMetrics & 0xff00) >> 8; + header.data[35] = numOfMetrics & 0x00ff; + } + + var numOfSidebearings = numGlyphs - numOfMetrics; + var numMissing = numOfSidebearings - (metrics.length - numOfMetrics * 4 >> 1); + + if (numMissing > 0) { + var entries = new Uint8Array(metrics.length + numMissing * 2); + entries.set(metrics.data); + metrics.data = entries; + } + } + + function sanitizeGlyph(source, sourceStart, sourceEnd, dest, destStart, hintsValid) { + var glyphProfile = { + length: 0, + sizeOfInstructions: 0 + }; + + if (sourceEnd - sourceStart <= 12) { + return glyphProfile; + } + + var glyf = source.subarray(sourceStart, sourceEnd); + var contoursCount = signedInt16(glyf[0], glyf[1]); + + if (contoursCount < 0) { + contoursCount = -1; + writeSignedInt16(glyf, 0, contoursCount); + dest.set(glyf, destStart); + glyphProfile.length = glyf.length; + return glyphProfile; + } + + var i, + j = 10, + flagsCount = 0; + + for (i = 0; i < contoursCount; i++) { + var endPoint = glyf[j] << 8 | glyf[j + 1]; + flagsCount = endPoint + 1; + j += 2; + } + + var instructionsStart = j; + var instructionsLength = glyf[j] << 8 | glyf[j + 1]; + glyphProfile.sizeOfInstructions = instructionsLength; + j += 2 + instructionsLength; + var instructionsEnd = j; + var coordinatesLength = 0; + + for (i = 0; i < flagsCount; i++) { + var flag = glyf[j++]; + + if (flag & 0xC0) { + glyf[j - 1] = flag & 0x3F; + } + + var xyLength = (flag & 2 ? 1 : flag & 16 ? 0 : 2) + (flag & 4 ? 1 : flag & 32 ? 0 : 2); + coordinatesLength += xyLength; + + if (flag & 8) { + var repeat = glyf[j++]; + i += repeat; + coordinatesLength += repeat * xyLength; + } + } + + if (coordinatesLength === 0) { + return glyphProfile; + } + + var glyphDataLength = j + coordinatesLength; + + if (glyphDataLength > glyf.length) { + return glyphProfile; + } + + if (!hintsValid && instructionsLength > 0) { + dest.set(glyf.subarray(0, instructionsStart), destStart); + dest.set([0, 0], destStart + instructionsStart); + dest.set(glyf.subarray(instructionsEnd, glyphDataLength), destStart + instructionsStart + 2); + glyphDataLength -= instructionsLength; + + if (glyf.length - glyphDataLength > 3) { + glyphDataLength = glyphDataLength + 3 & ~3; + } + + glyphProfile.length = glyphDataLength; + return glyphProfile; + } + + if (glyf.length - glyphDataLength > 3) { + glyphDataLength = glyphDataLength + 3 & ~3; + dest.set(glyf.subarray(0, glyphDataLength), destStart); + glyphProfile.length = glyphDataLength; + return glyphProfile; + } + + dest.set(glyf, destStart); + glyphProfile.length = glyf.length; + return glyphProfile; + } + + function sanitizeHead(head, numGlyphs, locaLength) { + var data = head.data; + var version = int32(data[0], data[1], data[2], data[3]); + + if (version >> 16 !== 1) { + (0, _util.info)('Attempting to fix invalid version in head table: ' + version); + data[0] = 0; + data[1] = 1; + data[2] = 0; + data[3] = 0; + } + + var indexToLocFormat = int16(data[50], data[51]); + + if (indexToLocFormat < 0 || indexToLocFormat > 1) { + (0, _util.info)('Attempting to fix invalid indexToLocFormat in head table: ' + indexToLocFormat); + var numGlyphsPlusOne = numGlyphs + 1; + + if (locaLength === numGlyphsPlusOne << 1) { + data[50] = 0; + data[51] = 0; + } else if (locaLength === numGlyphsPlusOne << 2) { + data[50] = 0; + data[51] = 1; + } else { + throw new _util.FormatError('Could not fix indexToLocFormat: ' + indexToLocFormat); + } + } + } + + function sanitizeGlyphLocations(loca, glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions) { + var itemSize, itemDecode, itemEncode; + + if (isGlyphLocationsLong) { + itemSize = 4; + + itemDecode = function fontItemDecodeLong(data, offset) { + return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]; + }; + + itemEncode = function fontItemEncodeLong(data, offset, value) { + data[offset] = value >>> 24 & 0xFF; + data[offset + 1] = value >> 16 & 0xFF; + data[offset + 2] = value >> 8 & 0xFF; + data[offset + 3] = value & 0xFF; + }; + } else { + itemSize = 2; + + itemDecode = function fontItemDecode(data, offset) { + return data[offset] << 9 | data[offset + 1] << 1; + }; + + itemEncode = function fontItemEncode(data, offset, value) { + data[offset] = value >> 9 & 0xFF; + data[offset + 1] = value >> 1 & 0xFF; + }; + } + + var numGlyphsOut = dupFirstEntry ? numGlyphs + 1 : numGlyphs; + var locaData = loca.data; + var locaDataSize = itemSize * (1 + numGlyphsOut); + locaData = new Uint8Array(locaDataSize); + locaData.set(loca.data.subarray(0, locaDataSize)); + loca.data = locaData; + var oldGlyfData = glyf.data; + var oldGlyfDataLength = oldGlyfData.length; + var newGlyfData = new Uint8Array(oldGlyfDataLength); + var startOffset = itemDecode(locaData, 0); + var writeOffset = 0; + var missingGlyphs = Object.create(null); + itemEncode(locaData, 0, writeOffset); + var i, j; + + for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) { + var endOffset = itemDecode(locaData, j); + + if (endOffset === 0) { + endOffset = startOffset; + } + + if (endOffset > oldGlyfDataLength && (oldGlyfDataLength + 3 & ~3) === endOffset) { + endOffset = oldGlyfDataLength; + } + + if (endOffset > oldGlyfDataLength) { + startOffset = endOffset; + } + + var glyphProfile = sanitizeGlyph(oldGlyfData, startOffset, endOffset, newGlyfData, writeOffset, hintsValid); + var newLength = glyphProfile.length; + + if (newLength === 0) { + missingGlyphs[i] = true; + } + + if (glyphProfile.sizeOfInstructions > maxSizeOfInstructions) { + maxSizeOfInstructions = glyphProfile.sizeOfInstructions; + } + + writeOffset += newLength; + itemEncode(locaData, j, writeOffset); + startOffset = endOffset; + } + + if (writeOffset === 0) { + var simpleGlyph = new Uint8Array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]); + + for (i = 0, j = itemSize; i < numGlyphsOut; i++, j += itemSize) { + itemEncode(locaData, j, simpleGlyph.length); + } + + glyf.data = simpleGlyph; + } else if (dupFirstEntry) { + var firstEntryLength = itemDecode(locaData, itemSize); + + if (newGlyfData.length > firstEntryLength + writeOffset) { + glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset); + } else { + glyf.data = new Uint8Array(firstEntryLength + writeOffset); + glyf.data.set(newGlyfData.subarray(0, writeOffset)); + } + + glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset); + itemEncode(loca.data, locaData.length - itemSize, writeOffset + firstEntryLength); + } else { + glyf.data = newGlyfData.subarray(0, writeOffset); + } + + return { + missingGlyphs: missingGlyphs, + maxSizeOfInstructions: maxSizeOfInstructions + }; + } + + function readPostScriptTable(post, properties, maxpNumGlyphs) { + var start = (font.start ? font.start : 0) + post.offset; + font.pos = start; + var length = post.length, + end = start + length; + var version = font.getInt32(); + font.getBytes(28); + var glyphNames; + var valid = true; + var i; + + switch (version) { + case 0x00010000: + glyphNames = MacStandardGlyphOrdering; + break; + + case 0x00020000: + var numGlyphs = font.getUint16(); + + if (numGlyphs !== maxpNumGlyphs) { + valid = false; + break; + } + + var glyphNameIndexes = []; + + for (i = 0; i < numGlyphs; ++i) { + var index = font.getUint16(); + + if (index >= 32768) { + valid = false; + break; + } + + glyphNameIndexes.push(index); + } + + if (!valid) { + break; + } + + var customNames = []; + var strBuf = []; + + while (font.pos < end) { + var stringLength = font.getByte(); + strBuf.length = stringLength; + + for (i = 0; i < stringLength; ++i) { + strBuf[i] = String.fromCharCode(font.getByte()); + } + + customNames.push(strBuf.join('')); + } + + glyphNames = []; + + for (i = 0; i < numGlyphs; ++i) { + var j = glyphNameIndexes[i]; + + if (j < 258) { + glyphNames.push(MacStandardGlyphOrdering[j]); + continue; + } + + glyphNames.push(customNames[j - 258]); + } + + break; + + case 0x00030000: + break; + + default: + (0, _util.warn)('Unknown/unsupported post table version ' + version); + valid = false; + + if (properties.defaultEncoding) { + glyphNames = properties.defaultEncoding; + } + + break; + } + + properties.glyphNames = glyphNames; + return valid; + } + + function readNameTable(nameTable) { + var start = (font.start ? font.start : 0) + nameTable.offset; + font.pos = start; + var names = [[], []]; + var length = nameTable.length, + end = start + length; + var format = font.getUint16(); + var FORMAT_0_HEADER_LENGTH = 6; + + if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) { + return names; + } + + var numRecords = font.getUint16(); + var stringsStart = font.getUint16(); + var records = []; + var NAME_RECORD_LENGTH = 12; + var i, ii; + + for (i = 0; i < numRecords && font.pos + NAME_RECORD_LENGTH <= end; i++) { + var r = { + platform: font.getUint16(), + encoding: font.getUint16(), + language: font.getUint16(), + name: font.getUint16(), + length: font.getUint16(), + offset: font.getUint16() + }; + + if (r.platform === 1 && r.encoding === 0 && r.language === 0 || r.platform === 3 && r.encoding === 1 && r.language === 0x409) { + records.push(r); + } + } + + for (i = 0, ii = records.length; i < ii; i++) { + var record = records[i]; + + if (record.length <= 0) { + continue; + } + + var pos = start + stringsStart + record.offset; + + if (pos + record.length > end) { + continue; + } + + font.pos = pos; + var nameIndex = record.name; + + if (record.encoding) { + var str = ''; + + for (var j = 0, jj = record.length; j < jj; j += 2) { + str += String.fromCharCode(font.getUint16()); + } + + names[1][nameIndex] = str; + } else { + names[0][nameIndex] = (0, _util.bytesToString)(font.getBytes(record.length)); + } + } + + return names; + } + + var TTOpsStackDeltas = [0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1, 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2, 0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1, -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2]; + + function sanitizeTTProgram(table, ttContext) { + var data = table.data; + var i = 0, + j, + n, + b, + funcId, + pc, + lastEndf = 0, + lastDeff = 0; + var stack = []; + var callstack = []; + var functionsCalled = []; + var tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions; + var inFDEF = false, + ifLevel = 0, + inELSE = 0; + + for (var ii = data.length; i < ii;) { + var op = data[i++]; + + if (op === 0x40) { + n = data[i++]; + + if (inFDEF || inELSE) { + i += n; + } else { + for (j = 0; j < n; j++) { + stack.push(data[i++]); + } + } + } else if (op === 0x41) { + n = data[i++]; + + if (inFDEF || inELSE) { + i += n * 2; + } else { + for (j = 0; j < n; j++) { + b = data[i++]; + stack.push(b << 8 | data[i++]); + } + } + } else if ((op & 0xF8) === 0xB0) { + n = op - 0xB0 + 1; + + if (inFDEF || inELSE) { + i += n; + } else { + for (j = 0; j < n; j++) { + stack.push(data[i++]); + } + } + } else if ((op & 0xF8) === 0xB8) { + n = op - 0xB8 + 1; + + if (inFDEF || inELSE) { + i += n * 2; + } else { + for (j = 0; j < n; j++) { + b = data[i++]; + stack.push(b << 8 | data[i++]); + } + } + } else if (op === 0x2B && !tooComplexToFollowFunctions) { + if (!inFDEF && !inELSE) { + funcId = stack[stack.length - 1]; + + if (isNaN(funcId)) { + (0, _util.info)('TT: CALL empty stack (or invalid entry).'); + } else { + ttContext.functionsUsed[funcId] = true; + + if (funcId in ttContext.functionsStackDeltas) { + var newStackLength = stack.length + ttContext.functionsStackDeltas[funcId]; + + if (newStackLength < 0) { + (0, _util.warn)('TT: CALL invalid functions stack delta.'); + ttContext.hintsValid = false; + return; + } + + stack.length = newStackLength; + } else if (funcId in ttContext.functionsDefined && !functionsCalled.includes(funcId)) { + callstack.push({ + data: data, + i: i, + stackTop: stack.length - 1 + }); + functionsCalled.push(funcId); + pc = ttContext.functionsDefined[funcId]; + + if (!pc) { + (0, _util.warn)('TT: CALL non-existent function'); + ttContext.hintsValid = false; + return; + } + + data = pc.data; + i = pc.i; + } + } + } + } else if (op === 0x2C && !tooComplexToFollowFunctions) { + if (inFDEF || inELSE) { + (0, _util.warn)('TT: nested FDEFs not allowed'); + tooComplexToFollowFunctions = true; + } + + inFDEF = true; + lastDeff = i; + funcId = stack.pop(); + ttContext.functionsDefined[funcId] = { + data: data, + i: i + }; + } else if (op === 0x2D) { + if (inFDEF) { + inFDEF = false; + lastEndf = i; + } else { + pc = callstack.pop(); + + if (!pc) { + (0, _util.warn)('TT: ENDF bad stack'); + ttContext.hintsValid = false; + return; + } + + funcId = functionsCalled.pop(); + data = pc.data; + i = pc.i; + ttContext.functionsStackDeltas[funcId] = stack.length - pc.stackTop; + } + } else if (op === 0x89) { + if (inFDEF || inELSE) { + (0, _util.warn)('TT: nested IDEFs not allowed'); + tooComplexToFollowFunctions = true; + } + + inFDEF = true; + lastDeff = i; + } else if (op === 0x58) { + ++ifLevel; + } else if (op === 0x1B) { + inELSE = ifLevel; + } else if (op === 0x59) { + if (inELSE === ifLevel) { + inELSE = 0; + } + + --ifLevel; + } else if (op === 0x1C) { + if (!inFDEF && !inELSE) { + var offset = stack[stack.length - 1]; + + if (offset > 0) { + i += offset - 1; + } + } + } + + if (!inFDEF && !inELSE) { + var stackDelta = op <= 0x8E ? TTOpsStackDeltas[op] : op >= 0xC0 && op <= 0xDF ? -1 : op >= 0xE0 ? -2 : 0; + + if (op >= 0x71 && op <= 0x75) { + n = stack.pop(); + + if (!isNaN(n)) { + stackDelta = -n * 2; + } + } + + while (stackDelta < 0 && stack.length > 0) { + stack.pop(); + stackDelta++; + } + + while (stackDelta > 0) { + stack.push(NaN); + stackDelta--; + } + } + } + + ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions; + var content = [data]; + + if (i > data.length) { + content.push(new Uint8Array(i - data.length)); + } + + if (lastDeff > lastEndf) { + (0, _util.warn)('TT: complementing a missing function tail'); + content.push(new Uint8Array([0x22, 0x2D])); + } + + foldTTTable(table, content); + } + + function checkInvalidFunctions(ttContext, maxFunctionDefs) { + if (ttContext.tooComplexToFollowFunctions) { + return; + } + + if (ttContext.functionsDefined.length > maxFunctionDefs) { + (0, _util.warn)('TT: more functions defined than expected'); + ttContext.hintsValid = false; + return; + } + + for (var j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) { + if (j > maxFunctionDefs) { + (0, _util.warn)('TT: invalid function id: ' + j); + ttContext.hintsValid = false; + return; + } + + if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) { + (0, _util.warn)('TT: undefined function: ' + j); + ttContext.hintsValid = false; + return; + } + } + } + + function foldTTTable(table, content) { + if (content.length > 1) { + var newLength = 0; + var j, jj; + + for (j = 0, jj = content.length; j < jj; j++) { + newLength += content[j].length; + } + + newLength = newLength + 3 & ~3; + var result = new Uint8Array(newLength); + var pos = 0; + + for (j = 0, jj = content.length; j < jj; j++) { + result.set(content[j], pos); + pos += content[j].length; + } + + table.data = result; + table.length = newLength; + } + } + + function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) { + var ttContext = { + functionsDefined: [], + functionsUsed: [], + functionsStackDeltas: [], + tooComplexToFollowFunctions: false, + hintsValid: true + }; + + if (fpgm) { + sanitizeTTProgram(fpgm, ttContext); + } + + if (prep) { + sanitizeTTProgram(prep, ttContext); + } + + if (fpgm) { + checkInvalidFunctions(ttContext, maxFunctionDefs); + } + + if (cvt && cvt.length & 1) { + var cvtData = new Uint8Array(cvt.length + 1); + cvtData.set(cvt.data); + cvt.data = cvtData; + } + + return ttContext.hintsValid; + } + + font = new _stream.Stream(new Uint8Array(font.getBytes())); + var header, tables; + + if (isTrueTypeCollectionFile(font)) { + var ttcData = readTrueTypeCollectionData(font, this.name); + header = ttcData.header; + tables = ttcData.tables; + } else { + header = readOpenTypeHeader(font); + tables = readTables(font, header.numTables); + } + + var cff, cffFile; + var isTrueType = !tables['CFF ']; + + if (!isTrueType) { + var isComposite = properties.composite && ((properties.cidToGidMap || []).length > 0 || !(properties.cMap instanceof _cmap.IdentityCMap)); + + if (header.version === 'OTTO' && !isComposite || !tables['head'] || !tables['hhea'] || !tables['maxp'] || !tables['post']) { + cffFile = new _stream.Stream(tables['CFF '].data); + cff = new CFFFont(cffFile, properties); + adjustWidths(properties); + return this.convert(name, cff, properties); + } + + delete tables['glyf']; + delete tables['loca']; + delete tables['fpgm']; + delete tables['prep']; + delete tables['cvt ']; + this.isOpenType = true; + } else { + if (!tables['loca']) { + throw new _util.FormatError('Required "loca" table is not found'); + } + + if (!tables['glyf']) { + (0, _util.warn)('Required "glyf" table is not found -- trying to recover.'); + tables['glyf'] = { + tag: 'glyf', + data: new Uint8Array(0) + }; + } + + this.isOpenType = false; + } + + if (!tables['maxp']) { + throw new _util.FormatError('Required "maxp" table is not found'); + } + + font.pos = (font.start || 0) + tables['maxp'].offset; + var version = font.getInt32(); + var numGlyphs = font.getUint16(); + var numGlyphsOut = numGlyphs + 1; + var dupFirstEntry = true; + + if (numGlyphsOut > 0xFFFF) { + dupFirstEntry = false; + numGlyphsOut = numGlyphs; + (0, _util.warn)('Not enough space in glyfs to duplicate first glyph.'); + } + + var maxFunctionDefs = 0; + var maxSizeOfInstructions = 0; + + if (version >= 0x00010000 && tables['maxp'].length >= 22) { + font.pos += 8; + var maxZones = font.getUint16(); + + if (maxZones > 2) { + tables['maxp'].data[14] = 0; + tables['maxp'].data[15] = 2; + } + + font.pos += 4; + maxFunctionDefs = font.getUint16(); + font.pos += 4; + maxSizeOfInstructions = font.getUint16(); + } + + tables['maxp'].data[4] = numGlyphsOut >> 8; + tables['maxp'].data[5] = numGlyphsOut & 255; + var hintsValid = sanitizeTTPrograms(tables['fpgm'], tables['prep'], tables['cvt '], maxFunctionDefs); + + if (!hintsValid) { + delete tables['fpgm']; + delete tables['prep']; + delete tables['cvt ']; + } + + sanitizeMetrics(font, tables['hhea'], tables['hmtx'], numGlyphsOut); + + if (!tables['head']) { + throw new _util.FormatError('Required "head" table is not found'); + } + + sanitizeHead(tables['head'], numGlyphs, isTrueType ? tables['loca'].length : 0); + var missingGlyphs = Object.create(null); + + if (isTrueType) { + var isGlyphLocationsLong = int16(tables['head'].data[50], tables['head'].data[51]); + var glyphsInfo = sanitizeGlyphLocations(tables['loca'], tables['glyf'], numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions); + missingGlyphs = glyphsInfo.missingGlyphs; + + if (version >= 0x00010000 && tables['maxp'].length >= 22) { + tables['maxp'].data[26] = glyphsInfo.maxSizeOfInstructions >> 8; + tables['maxp'].data[27] = glyphsInfo.maxSizeOfInstructions & 255; + } + } + + if (!tables['hhea']) { + throw new _util.FormatError('Required "hhea" table is not found'); + } + + if (tables['hhea'].data[10] === 0 && tables['hhea'].data[11] === 0) { + tables['hhea'].data[10] = 0xFF; + tables['hhea'].data[11] = 0xFF; + } + + var metricsOverride = { + unitsPerEm: int16(tables['head'].data[18], tables['head'].data[19]), + yMax: int16(tables['head'].data[42], tables['head'].data[43]), + yMin: signedInt16(tables['head'].data[38], tables['head'].data[39]), + ascent: int16(tables['hhea'].data[4], tables['hhea'].data[5]), + descent: signedInt16(tables['hhea'].data[6], tables['hhea'].data[7]) + }; + this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm; + this.descent = metricsOverride.descent / metricsOverride.unitsPerEm; + + if (tables['post']) { + readPostScriptTable(tables['post'], properties, numGlyphs); + } + + tables['post'] = { + tag: 'post', + data: createPostTable(properties) + }; + var charCodeToGlyphId = [], + charCode; + + function hasGlyph(glyphId) { + return !missingGlyphs[glyphId]; + } + + if (properties.composite) { + var cidToGidMap = properties.cidToGidMap || []; + var isCidToGidMapEmpty = cidToGidMap.length === 0; + properties.cMap.forEach(function (charCode, cid) { + if (cid > 0xffff) { + throw new _util.FormatError('Max size of CID is 65,535'); + } + + var glyphId = -1; + + if (isCidToGidMapEmpty) { + glyphId = cid; + } else if (cidToGidMap[cid] !== undefined) { + glyphId = cidToGidMap[cid]; + } + + if (glyphId >= 0 && glyphId < numGlyphs && hasGlyph(glyphId)) { + charCodeToGlyphId[charCode] = glyphId; + } + }); + } else { + var cmapTable = readCmapTable(tables['cmap'], font, this.isSymbolicFont, properties.hasEncoding); + var cmapPlatformId = cmapTable.platformId; + var cmapEncodingId = cmapTable.encodingId; + var cmapMappings = cmapTable.mappings; + var cmapMappingsLength = cmapMappings.length; + + if (properties.hasEncoding && (cmapPlatformId === 3 && cmapEncodingId === 1 || cmapPlatformId === 1 && cmapEncodingId === 0) || cmapPlatformId === -1 && cmapEncodingId === -1 && !!(0, _encodings.getEncoding)(properties.baseEncodingName)) { + var baseEncoding = []; + + if (properties.baseEncodingName === 'MacRomanEncoding' || properties.baseEncodingName === 'WinAnsiEncoding') { + baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName); + } + + var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)(); + + for (charCode = 0; charCode < 256; charCode++) { + var glyphName, standardGlyphName; + + if (this.differences && charCode in this.differences) { + glyphName = this.differences[charCode]; + } else if (charCode in baseEncoding && baseEncoding[charCode] !== '') { + glyphName = baseEncoding[charCode]; + } else { + glyphName = _encodings.StandardEncoding[charCode]; + } + + if (!glyphName) { + continue; + } + + standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap); + var unicodeOrCharCode; + + if (cmapPlatformId === 3 && cmapEncodingId === 1) { + unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName]; + } else if (cmapPlatformId === 1 && cmapEncodingId === 0) { + unicodeOrCharCode = _encodings.MacRomanEncoding.indexOf(standardGlyphName); + } + + var found = false; + + for (var i = 0; i < cmapMappingsLength; ++i) { + if (cmapMappings[i].charCode !== unicodeOrCharCode) { + continue; + } + + charCodeToGlyphId[charCode] = cmapMappings[i].glyphId; + found = true; + break; + } + + if (!found && properties.glyphNames) { + var glyphId = properties.glyphNames.indexOf(glyphName); + + if (glyphId === -1 && standardGlyphName !== glyphName) { + glyphId = properties.glyphNames.indexOf(standardGlyphName); + } + + if (glyphId > 0 && hasGlyph(glyphId)) { + charCodeToGlyphId[charCode] = glyphId; + } + } + } + } else if (cmapPlatformId === 0 && cmapEncodingId === 0) { + for (var _i2 = 0; _i2 < cmapMappingsLength; ++_i2) { + charCodeToGlyphId[cmapMappings[_i2].charCode] = cmapMappings[_i2].glyphId; + } + } else { + for (var _i3 = 0; _i3 < cmapMappingsLength; ++_i3) { + charCode = cmapMappings[_i3].charCode; + + if (cmapPlatformId === 3 && charCode >= 0xF000 && charCode <= 0xF0FF) { + charCode &= 0xFF; + } + + charCodeToGlyphId[charCode] = cmapMappings[_i3].glyphId; + } + } + } + + if (charCodeToGlyphId.length === 0) { + charCodeToGlyphId[0] = 0; + } + + var glyphZeroId = numGlyphsOut - 1; + + if (!dupFirstEntry) { + glyphZeroId = 0; + } + + var newMapping = adjustMapping(charCodeToGlyphId, hasGlyph, glyphZeroId); + this.toFontChar = newMapping.toFontChar; + tables['cmap'] = { + tag: 'cmap', + data: createCmapTable(newMapping.charCodeToGlyphId, numGlyphsOut) + }; + + if (!tables['OS/2'] || !validateOS2Table(tables['OS/2'])) { + tables['OS/2'] = { + tag: 'OS/2', + data: createOS2Table(properties, newMapping.charCodeToGlyphId, metricsOverride) + }; + } + + if (!isTrueType) { + try { + cffFile = new _stream.Stream(tables['CFF '].data); + var parser = new _cff_parser.CFFParser(cffFile, properties, SEAC_ANALYSIS_ENABLED); + cff = parser.parse(); + cff.duplicateFirstGlyph(); + var compiler = new _cff_parser.CFFCompiler(cff); + tables['CFF '].data = compiler.compile(); + } catch (e) { + (0, _util.warn)('Failed to compile font ' + properties.loadedName); + } + } + + if (!tables['name']) { + tables['name'] = { + tag: 'name', + data: createNameTable(this.name) + }; + } else { + var namePrototype = readNameTable(tables['name']); + tables['name'].data = createNameTable(name, namePrototype); + } + + var builder = new OpenTypeFileBuilder(header.version); + + for (var tableTag in tables) { + builder.addTable(tableTag, tables[tableTag].data); + } + + return builder.toArray(); + }, + convert: function Font_convert(fontName, font, properties) { + properties.fixedPitch = false; + + if (properties.builtInEncoding) { + adjustToUnicode(properties, properties.builtInEncoding); + } + + var glyphZeroId = 1; + + if (font instanceof CFFFont) { + glyphZeroId = font.numGlyphs - 1; + } + + var mapping = font.getGlyphMapping(properties); + var newMapping = adjustMapping(mapping, font.hasGlyphId.bind(font), glyphZeroId); + this.toFontChar = newMapping.toFontChar; + var numGlyphs = font.numGlyphs; + + function getCharCodes(charCodeToGlyphId, glyphId) { + var charCodes = null; + + for (var charCode in charCodeToGlyphId) { + if (glyphId === charCodeToGlyphId[charCode]) { + if (!charCodes) { + charCodes = []; + } + + charCodes.push(charCode | 0); + } + } + + return charCodes; + } + + function createCharCode(charCodeToGlyphId, glyphId) { + for (var charCode in charCodeToGlyphId) { + if (glyphId === charCodeToGlyphId[charCode]) { + return charCode | 0; + } + } + + newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] = glyphId; + return newMapping.nextAvailableFontCharCode++; + } + + var seacs = font.seacs; + + if (SEAC_ANALYSIS_ENABLED && seacs && seacs.length) { + var matrix = properties.fontMatrix || _util.FONT_IDENTITY_MATRIX; + var charset = font.getCharset(); + var seacMap = Object.create(null); + + for (var glyphId in seacs) { + glyphId |= 0; + var seac = seacs[glyphId]; + var baseGlyphName = _encodings.StandardEncoding[seac[2]]; + var accentGlyphName = _encodings.StandardEncoding[seac[3]]; + var baseGlyphId = charset.indexOf(baseGlyphName); + var accentGlyphId = charset.indexOf(accentGlyphName); + + if (baseGlyphId < 0 || accentGlyphId < 0) { + continue; + } + + var accentOffset = { + x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4], + y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5] + }; + var charCodes = getCharCodes(mapping, glyphId); + + if (!charCodes) { + continue; + } + + for (var i = 0, ii = charCodes.length; i < ii; i++) { + var charCode = charCodes[i]; + var charCodeToGlyphId = newMapping.charCodeToGlyphId; + var baseFontCharCode = createCharCode(charCodeToGlyphId, baseGlyphId); + var accentFontCharCode = createCharCode(charCodeToGlyphId, accentGlyphId); + seacMap[charCode] = { + baseFontCharCode: baseFontCharCode, + accentFontCharCode: accentFontCharCode, + accentOffset: accentOffset + }; + } + } + + properties.seacMap = seacMap; + } + + var unitsPerEm = 1 / (properties.fontMatrix || _util.FONT_IDENTITY_MATRIX)[0]; + var builder = new OpenTypeFileBuilder('\x4F\x54\x54\x4F'); + builder.addTable('CFF ', font.data); + builder.addTable('OS/2', createOS2Table(properties, newMapping.charCodeToGlyphId)); + builder.addTable('cmap', createCmapTable(newMapping.charCodeToGlyphId, numGlyphs)); + builder.addTable('head', '\x00\x01\x00\x00' + '\x00\x00\x10\x00' + '\x00\x00\x00\x00' + '\x5F\x0F\x3C\xF5' + '\x00\x00' + safeString16(unitsPerEm) + '\x00\x00\x00\x00\x9e\x0b\x7e\x27' + '\x00\x00\x00\x00\x9e\x0b\x7e\x27' + '\x00\x00' + safeString16(properties.descent) + '\x0F\xFF' + safeString16(properties.ascent) + string16(properties.italicAngle ? 2 : 0) + '\x00\x11' + '\x00\x00' + '\x00\x00' + '\x00\x00'); + builder.addTable('hhea', '\x00\x01\x00\x00' + safeString16(properties.ascent) + safeString16(properties.descent) + '\x00\x00' + '\xFF\xFF' + '\x00\x00' + '\x00\x00' + '\x00\x00' + safeString16(properties.capHeight) + safeString16(Math.tan(properties.italicAngle) * properties.xHeight) + '\x00\x00' + '\x00\x00' + '\x00\x00' + '\x00\x00' + '\x00\x00' + '\x00\x00' + string16(numGlyphs)); + builder.addTable('hmtx', function fontFieldsHmtx() { + var charstrings = font.charstrings; + var cffWidths = font.cff ? font.cff.widths : null; + var hmtx = '\x00\x00\x00\x00'; + + for (var i = 1, ii = numGlyphs; i < ii; i++) { + var width = 0; + + if (charstrings) { + var charstring = charstrings[i - 1]; + width = 'width' in charstring ? charstring.width : 0; + } else if (cffWidths) { + width = Math.ceil(cffWidths[i] || 0); + } + + hmtx += string16(width) + string16(0); + } + + return hmtx; + }()); + builder.addTable('maxp', '\x00\x00\x50\x00' + string16(numGlyphs)); + builder.addTable('name', createNameTable(fontName)); + builder.addTable('post', createPostTable(properties)); + return builder.toArray(); + }, + + get spaceWidth() { + if ('_shadowWidth' in this) { + return this._shadowWidth; + } + + var possibleSpaceReplacements = ['space', 'minus', 'one', 'i', 'I']; + var width; + + for (var i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) { + var glyphName = possibleSpaceReplacements[i]; + + if (glyphName in this.widths) { + width = this.widths[glyphName]; + break; + } + + var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)(); + var glyphUnicode = glyphsUnicodeMap[glyphName]; + var charcode = 0; + + if (this.composite) { + if (this.cMap.contains(glyphUnicode)) { + charcode = this.cMap.lookup(glyphUnicode); + } + } + + if (!charcode && this.toUnicode) { + charcode = this.toUnicode.charCodeOf(glyphUnicode); + } + + if (charcode <= 0) { + charcode = glyphUnicode; + } + + width = this.widths[charcode]; + + if (width) { + break; + } + } + + width = width || this.defaultWidth; + this._shadowWidth = width; + return width; + }, + + charToGlyph: function Font_charToGlyph(charcode, isSpace) { + var fontCharCode, width, operatorListId; + var widthCode = charcode; + + if (this.cMap && this.cMap.contains(charcode)) { + widthCode = this.cMap.lookup(charcode); + } + + width = this.widths[widthCode]; + width = (0, _util.isNum)(width) ? width : this.defaultWidth; + var vmetric = this.vmetrics && this.vmetrics[widthCode]; + var unicode = this.toUnicode.get(charcode) || this.fallbackToUnicode.get(charcode) || charcode; + + if (typeof unicode === 'number') { + unicode = String.fromCharCode(unicode); + } + + var isInFont = charcode in this.toFontChar; + fontCharCode = this.toFontChar[charcode] || charcode; + + if (this.missingFile) { + fontCharCode = (0, _unicode.mapSpecialUnicodeValues)(fontCharCode); + } + + if (this.isType3Font) { + operatorListId = fontCharCode; + } + + var accent = null; + + if (this.seacMap && this.seacMap[charcode]) { + isInFont = true; + var seac = this.seacMap[charcode]; + fontCharCode = seac.baseFontCharCode; + accent = { + fontChar: String.fromCodePoint(seac.accentFontCharCode), + offset: seac.accentOffset + }; + } + + var fontChar = typeof fontCharCode === 'number' ? String.fromCodePoint(fontCharCode) : ''; + var glyph = this.glyphCache[charcode]; + + if (!glyph || !glyph.matchesForCache(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont)) { + glyph = new Glyph(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont); + this.glyphCache[charcode] = glyph; + } + + return glyph; + }, + charsToGlyphs: function Font_charsToGlyphs(chars) { + var charsCache = this.charsCache; + var glyphs, glyph, charcode; + + if (charsCache) { + glyphs = charsCache[chars]; + + if (glyphs) { + return glyphs; + } + } + + if (!charsCache) { + charsCache = this.charsCache = Object.create(null); + } + + glyphs = []; + var charsCacheKey = chars; + var i = 0, + ii; + + if (this.cMap) { + var c = Object.create(null); + + while (i < chars.length) { + this.cMap.readCharCode(chars, i, c); + charcode = c.charcode; + var length = c.length; + i += length; + var isSpace = length === 1 && chars.charCodeAt(i - 1) === 0x20; + glyph = this.charToGlyph(charcode, isSpace); + glyphs.push(glyph); + } + } else { + for (i = 0, ii = chars.length; i < ii; ++i) { + charcode = chars.charCodeAt(i); + glyph = this.charToGlyph(charcode, charcode === 0x20); + glyphs.push(glyph); + } + } + + return charsCache[charsCacheKey] = glyphs; + }, + + get glyphCacheValues() { + return Object.values(this.glyphCache); + } + + }; + return Font; +}(); + +exports.Font = Font; + +var ErrorFont = function ErrorFontClosure() { + function ErrorFont(error) { + this.error = error; + this.loadedName = 'g_font_error'; + this.missingFile = true; + } + + ErrorFont.prototype = { + charsToGlyphs: function ErrorFont_charsToGlyphs() { + return []; + }, + exportData: function ErrorFont_exportData() { + return { + error: this.error + }; + } + }; + return ErrorFont; +}(); + +exports.ErrorFont = ErrorFont; + +function type1FontGlyphMapping(properties, builtInEncoding, glyphNames) { + var charCodeToGlyphId = Object.create(null); + var glyphId, charCode, baseEncoding; + var isSymbolicFont = !!(properties.flags & FontFlags.Symbolic); + + if (properties.baseEncodingName) { + baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName); + + for (charCode = 0; charCode < baseEncoding.length; charCode++) { + glyphId = glyphNames.indexOf(baseEncoding[charCode]); + + if (glyphId >= 0) { + charCodeToGlyphId[charCode] = glyphId; + } else { + charCodeToGlyphId[charCode] = 0; + } + } + } else if (isSymbolicFont) { + for (charCode in builtInEncoding) { + charCodeToGlyphId[charCode] = builtInEncoding[charCode]; + } + } else { + baseEncoding = _encodings.StandardEncoding; + + for (charCode = 0; charCode < baseEncoding.length; charCode++) { + glyphId = glyphNames.indexOf(baseEncoding[charCode]); + + if (glyphId >= 0) { + charCodeToGlyphId[charCode] = glyphId; + } else { + charCodeToGlyphId[charCode] = 0; + } + } + } + + var differences = properties.differences, + glyphsUnicodeMap; + + if (differences) { + for (charCode in differences) { + var glyphName = differences[charCode]; + glyphId = glyphNames.indexOf(glyphName); + + if (glyphId === -1) { + if (!glyphsUnicodeMap) { + glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)(); + } + + var standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap); + + if (standardGlyphName !== glyphName) { + glyphId = glyphNames.indexOf(standardGlyphName); + } + } + + if (glyphId >= 0) { + charCodeToGlyphId[charCode] = glyphId; + } else { + charCodeToGlyphId[charCode] = 0; + } + } + } + + return charCodeToGlyphId; +} + +var Type1Font = function Type1FontClosure() { + function findBlock(streamBytes, signature, startIndex) { + var streamBytesLength = streamBytes.length; + var signatureLength = signature.length; + var scanLength = streamBytesLength - signatureLength; + var i = startIndex, + j, + found = false; + + while (i < scanLength) { + j = 0; + + while (j < signatureLength && streamBytes[i + j] === signature[j]) { + j++; + } + + if (j >= signatureLength) { + i += j; + + while (i < streamBytesLength && (0, _util.isSpace)(streamBytes[i])) { + i++; + } + + found = true; + break; + } + + i++; + } + + return { + found: found, + length: i + }; + } + + function getHeaderBlock(stream, suggestedLength) { + var EEXEC_SIGNATURE = [0x65, 0x65, 0x78, 0x65, 0x63]; + var streamStartPos = stream.pos; + var headerBytes, headerBytesLength, block; + + try { + headerBytes = stream.getBytes(suggestedLength); + headerBytesLength = headerBytes.length; + } catch (ex) { + if (ex instanceof _util.MissingDataException) { + throw ex; + } + } + + if (headerBytesLength === suggestedLength) { + block = findBlock(headerBytes, EEXEC_SIGNATURE, suggestedLength - 2 * EEXEC_SIGNATURE.length); + + if (block.found && block.length === suggestedLength) { + return { + stream: new _stream.Stream(headerBytes), + length: suggestedLength + }; + } + } + + (0, _util.warn)('Invalid "Length1" property in Type1 font -- trying to recover.'); + stream.pos = streamStartPos; + var SCAN_BLOCK_LENGTH = 2048; + var actualLength; + + while (true) { + var scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH); + block = findBlock(scanBytes, EEXEC_SIGNATURE, 0); + + if (block.length === 0) { + break; + } + + stream.pos += block.length; + + if (block.found) { + actualLength = stream.pos - streamStartPos; + break; + } + } + + stream.pos = streamStartPos; + + if (actualLength) { + return { + stream: new _stream.Stream(stream.getBytes(actualLength)), + length: actualLength + }; + } + + (0, _util.warn)('Unable to recover "Length1" property in Type1 font -- using as is.'); + return { + stream: new _stream.Stream(stream.getBytes(suggestedLength)), + length: suggestedLength + }; + } + + function getEexecBlock(stream, suggestedLength) { + var eexecBytes = stream.getBytes(); + return { + stream: new _stream.Stream(eexecBytes), + length: eexecBytes.length + }; + } + + function Type1Font(name, file, properties) { + var PFB_HEADER_SIZE = 6; + var headerBlockLength = properties.length1; + var eexecBlockLength = properties.length2; + var pfbHeader = file.peekBytes(PFB_HEADER_SIZE); + var pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01; + + if (pfbHeaderPresent) { + file.skip(PFB_HEADER_SIZE); + headerBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2]; + } + + var headerBlock = getHeaderBlock(file, headerBlockLength); + var headerBlockParser = new _type1_parser.Type1Parser(headerBlock.stream, false, SEAC_ANALYSIS_ENABLED); + headerBlockParser.extractFontHeader(properties); + + if (pfbHeaderPresent) { + pfbHeader = file.getBytes(PFB_HEADER_SIZE); + eexecBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2]; + } + + var eexecBlock = getEexecBlock(file, eexecBlockLength); + var eexecBlockParser = new _type1_parser.Type1Parser(eexecBlock.stream, true, SEAC_ANALYSIS_ENABLED); + var data = eexecBlockParser.extractFontProgram(); + + for (var info in data.properties) { + properties[info] = data.properties[info]; + } + + var charstrings = data.charstrings; + var type2Charstrings = this.getType2Charstrings(charstrings); + var subrs = this.getType2Subrs(data.subrs); + this.charstrings = charstrings; + this.data = this.wrap(name, type2Charstrings, this.charstrings, subrs, properties); + this.seacs = this.getSeacs(data.charstrings); + } + + Type1Font.prototype = { + get numGlyphs() { + return this.charstrings.length + 1; + }, + + getCharset: function Type1Font_getCharset() { + var charset = ['.notdef']; + var charstrings = this.charstrings; + + for (var glyphId = 0; glyphId < charstrings.length; glyphId++) { + charset.push(charstrings[glyphId].glyphName); + } + + return charset; + }, + getGlyphMapping: function Type1Font_getGlyphMapping(properties) { + var charstrings = this.charstrings; + var glyphNames = ['.notdef'], + glyphId; + + for (glyphId = 0; glyphId < charstrings.length; glyphId++) { + glyphNames.push(charstrings[glyphId].glyphName); + } + + var encoding = properties.builtInEncoding; + + if (encoding) { + var builtInEncoding = Object.create(null); + + for (var charCode in encoding) { + glyphId = glyphNames.indexOf(encoding[charCode]); + + if (glyphId >= 0) { + builtInEncoding[charCode] = glyphId; + } + } + } + + return type1FontGlyphMapping(properties, builtInEncoding, glyphNames); + }, + hasGlyphId: function Type1Font_hasGlyphID(id) { + if (id < 0 || id >= this.numGlyphs) { + return false; + } + + if (id === 0) { + return true; + } + + var glyph = this.charstrings[id - 1]; + return glyph.charstring.length > 0; + }, + getSeacs: function Type1Font_getSeacs(charstrings) { + var i, ii; + var seacMap = []; + + for (i = 0, ii = charstrings.length; i < ii; i++) { + var charstring = charstrings[i]; + + if (charstring.seac) { + seacMap[i + 1] = charstring.seac; + } + } + + return seacMap; + }, + getType2Charstrings: function Type1Font_getType2Charstrings(type1Charstrings) { + var type2Charstrings = []; + + for (var i = 0, ii = type1Charstrings.length; i < ii; i++) { + type2Charstrings.push(type1Charstrings[i].charstring); + } + + return type2Charstrings; + }, + getType2Subrs: function Type1Font_getType2Subrs(type1Subrs) { + var bias = 0; + var count = type1Subrs.length; + + if (count < 1133) { + bias = 107; + } else if (count < 33769) { + bias = 1131; + } else { + bias = 32768; + } + + var type2Subrs = []; + var i; + + for (i = 0; i < bias; i++) { + type2Subrs.push([0x0B]); + } + + for (i = 0; i < count; i++) { + type2Subrs.push(type1Subrs[i]); + } + + return type2Subrs; + }, + wrap: function Type1Font_wrap(name, glyphs, charstrings, subrs, properties) { + var cff = new _cff_parser.CFF(); + cff.header = new _cff_parser.CFFHeader(1, 0, 4, 4); + cff.names = [name]; + var topDict = new _cff_parser.CFFTopDict(); + topDict.setByName('version', 391); + topDict.setByName('Notice', 392); + topDict.setByName('FullName', 393); + topDict.setByName('FamilyName', 394); + topDict.setByName('Weight', 395); + topDict.setByName('Encoding', null); + topDict.setByName('FontMatrix', properties.fontMatrix); + topDict.setByName('FontBBox', properties.bbox); + topDict.setByName('charset', null); + topDict.setByName('CharStrings', null); + topDict.setByName('Private', null); + cff.topDict = topDict; + var strings = new _cff_parser.CFFStrings(); + strings.add('Version 0.11'); + strings.add('See original notice'); + strings.add(name); + strings.add(name); + strings.add('Medium'); + cff.strings = strings; + cff.globalSubrIndex = new _cff_parser.CFFIndex(); + var count = glyphs.length; + var charsetArray = [0]; + var i, ii; + + for (i = 0; i < count; i++) { + var index = _cff_parser.CFFStandardStrings.indexOf(charstrings[i].glyphName); + + if (index === -1) { + index = 0; + } + + charsetArray.push(index >> 8 & 0xff, index & 0xff); + } + + cff.charset = new _cff_parser.CFFCharset(false, 0, [], charsetArray); + var charStringsIndex = new _cff_parser.CFFIndex(); + charStringsIndex.add([0x8B, 0x0E]); + + for (i = 0; i < count; i++) { + charStringsIndex.add(glyphs[i]); + } + + cff.charStrings = charStringsIndex; + var privateDict = new _cff_parser.CFFPrivateDict(); + privateDict.setByName('Subrs', null); + var fields = ['BlueValues', 'OtherBlues', 'FamilyBlues', 'FamilyOtherBlues', 'StemSnapH', 'StemSnapV', 'BlueShift', 'BlueFuzz', 'BlueScale', 'LanguageGroup', 'ExpansionFactor', 'ForceBold', 'StdHW', 'StdVW']; + + for (i = 0, ii = fields.length; i < ii; i++) { + var field = fields[i]; + + if (!(field in properties.privateData)) { + continue; + } + + var value = properties.privateData[field]; + + if (Array.isArray(value)) { + for (var j = value.length - 1; j > 0; j--) { + value[j] -= value[j - 1]; + } + } + + privateDict.setByName(field, value); + } + + cff.topDict.privateDict = privateDict; + var subrIndex = new _cff_parser.CFFIndex(); + + for (i = 0, ii = subrs.length; i < ii; i++) { + subrIndex.add(subrs[i]); + } + + privateDict.subrsIndex = subrIndex; + var compiler = new _cff_parser.CFFCompiler(cff); + return compiler.compile(); + } + }; + return Type1Font; +}(); + +var CFFFont = function CFFFontClosure() { + function CFFFont(file, properties) { + this.properties = properties; + var parser = new _cff_parser.CFFParser(file, properties, SEAC_ANALYSIS_ENABLED); + this.cff = parser.parse(); + this.cff.duplicateFirstGlyph(); + var compiler = new _cff_parser.CFFCompiler(this.cff); + this.seacs = this.cff.seacs; + + try { + this.data = compiler.compile(); + } catch (e) { + (0, _util.warn)('Failed to compile font ' + properties.loadedName); + this.data = file; + } + } + + CFFFont.prototype = { + get numGlyphs() { + return this.cff.charStrings.count; + }, + + getCharset: function CFFFont_getCharset() { + return this.cff.charset.charset; + }, + getGlyphMapping: function CFFFont_getGlyphMapping() { + var cff = this.cff; + var properties = this.properties; + var charsets = cff.charset.charset; + var charCodeToGlyphId; + var glyphId; + + if (properties.composite) { + charCodeToGlyphId = Object.create(null); + + if (cff.isCIDFont) { + for (glyphId = 0; glyphId < charsets.length; glyphId++) { + var cid = charsets[glyphId]; + var charCode = properties.cMap.charCodeOf(cid); + charCodeToGlyphId[charCode] = glyphId; + } + } else { + for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) { + charCodeToGlyphId[glyphId] = glyphId; + } + } + + return charCodeToGlyphId; + } + + var encoding = cff.encoding ? cff.encoding.encoding : null; + charCodeToGlyphId = type1FontGlyphMapping(properties, encoding, charsets); + return charCodeToGlyphId; + }, + hasGlyphId: function CFFFont_hasGlyphID(id) { + return this.cff.hasGlyphId(id); + } + }; + return CFFFont; +}(); + +/***/ }), +/* 174 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.CFFFDSelect = exports.CFFCompiler = exports.CFFPrivateDict = exports.CFFTopDict = exports.CFFCharset = exports.CFFIndex = exports.CFFStrings = exports.CFFHeader = exports.CFF = exports.CFFParser = exports.CFFStandardStrings = void 0; + +var _util = __w_pdfjs_require__(6); + +var _charsets = __w_pdfjs_require__(175); + +var _encodings = __w_pdfjs_require__(176); + +var MAX_SUBR_NESTING = 10; +var CFFStandardStrings = ['.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl', 'periodcentered', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', 'perthousand', 'questiondown', 'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'emdash', 'AE', 'ordfeminine', 'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae', 'dotlessi', 'lslash', 'oslash', 'oe', 'germandbls', 'onesuperior', 'logicalnot', 'mu', 'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn', 'onequarter', 'divide', 'brokenbar', 'degree', 'thorn', 'threequarters', 'twosuperior', 'registered', 'minus', 'eth', 'multiply', 'threesuperior', 'copyright', 'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring', 'Atilde', 'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute', 'Ocircumflex', 'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute', 'Ucircumflex', 'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron', 'aacute', 'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde', 'ccedilla', 'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute', 'icircumflex', 'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex', 'odieresis', 'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex', 'udieresis', 'ugrave', 'yacute', 'ydieresis', 'zcaron', 'exclamsmall', 'Hungarumlautsmall', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'questionsmall', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 'tsuperior', 'ff', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall', 'Dotaccentsmall', 'Macronsmall', 'figuredash', 'hypheninferior', 'Ogoneksmall', 'Ringsmall', 'Cedillasmall', 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 'Ydieresissmall', '001.000', '001.001', '001.002', '001.003', 'Black', 'Bold', 'Book', 'Light', 'Medium', 'Regular', 'Roman', 'Semibold']; +exports.CFFStandardStrings = CFFStandardStrings; + +var CFFParser = function CFFParserClosure() { + var CharstringValidationData = [null, { + id: 'hstem', + min: 2, + stackClearing: true, + stem: true + }, null, { + id: 'vstem', + min: 2, + stackClearing: true, + stem: true + }, { + id: 'vmoveto', + min: 1, + stackClearing: true + }, { + id: 'rlineto', + min: 2, + resetStack: true + }, { + id: 'hlineto', + min: 1, + resetStack: true + }, { + id: 'vlineto', + min: 1, + resetStack: true + }, { + id: 'rrcurveto', + min: 6, + resetStack: true + }, null, { + id: 'callsubr', + min: 1, + undefStack: true + }, { + id: 'return', + min: 0, + undefStack: true + }, null, null, { + id: 'endchar', + min: 0, + stackClearing: true + }, null, null, null, { + id: 'hstemhm', + min: 2, + stackClearing: true, + stem: true + }, { + id: 'hintmask', + min: 0, + stackClearing: true + }, { + id: 'cntrmask', + min: 0, + stackClearing: true + }, { + id: 'rmoveto', + min: 2, + stackClearing: true + }, { + id: 'hmoveto', + min: 1, + stackClearing: true + }, { + id: 'vstemhm', + min: 2, + stackClearing: true, + stem: true + }, { + id: 'rcurveline', + min: 8, + resetStack: true + }, { + id: 'rlinecurve', + min: 8, + resetStack: true + }, { + id: 'vvcurveto', + min: 4, + resetStack: true + }, { + id: 'hhcurveto', + min: 4, + resetStack: true + }, null, { + id: 'callgsubr', + min: 1, + undefStack: true + }, { + id: 'vhcurveto', + min: 4, + resetStack: true + }, { + id: 'hvcurveto', + min: 4, + resetStack: true + }]; + var CharstringValidationData12 = [null, null, null, { + id: 'and', + min: 2, + stackDelta: -1 + }, { + id: 'or', + min: 2, + stackDelta: -1 + }, { + id: 'not', + min: 1, + stackDelta: 0 + }, null, null, null, { + id: 'abs', + min: 1, + stackDelta: 0 + }, { + id: 'add', + min: 2, + stackDelta: -1, + stackFn: function stack_div(stack, index) { + stack[index - 2] = stack[index - 2] + stack[index - 1]; + } + }, { + id: 'sub', + min: 2, + stackDelta: -1, + stackFn: function stack_div(stack, index) { + stack[index - 2] = stack[index - 2] - stack[index - 1]; + } + }, { + id: 'div', + min: 2, + stackDelta: -1, + stackFn: function stack_div(stack, index) { + stack[index - 2] = stack[index - 2] / stack[index - 1]; + } + }, null, { + id: 'neg', + min: 1, + stackDelta: 0, + stackFn: function stack_div(stack, index) { + stack[index - 1] = -stack[index - 1]; + } + }, { + id: 'eq', + min: 2, + stackDelta: -1 + }, null, null, { + id: 'drop', + min: 1, + stackDelta: -1 + }, null, { + id: 'put', + min: 2, + stackDelta: -2 + }, { + id: 'get', + min: 1, + stackDelta: 0 + }, { + id: 'ifelse', + min: 4, + stackDelta: -3 + }, { + id: 'random', + min: 0, + stackDelta: 1 + }, { + id: 'mul', + min: 2, + stackDelta: -1, + stackFn: function stack_div(stack, index) { + stack[index - 2] = stack[index - 2] * stack[index - 1]; + } + }, null, { + id: 'sqrt', + min: 1, + stackDelta: 0 + }, { + id: 'dup', + min: 1, + stackDelta: 1 + }, { + id: 'exch', + min: 2, + stackDelta: 0 + }, { + id: 'index', + min: 2, + stackDelta: 0 + }, { + id: 'roll', + min: 3, + stackDelta: -2 + }, null, null, null, { + id: 'hflex', + min: 7, + resetStack: true + }, { + id: 'flex', + min: 13, + resetStack: true + }, { + id: 'hflex1', + min: 9, + resetStack: true + }, { + id: 'flex1', + min: 11, + resetStack: true + }]; + + function CFFParser(file, properties, seacAnalysisEnabled) { + this.bytes = file.getBytes(); + this.properties = properties; + this.seacAnalysisEnabled = !!seacAnalysisEnabled; + } + + CFFParser.prototype = { + parse: function CFFParser_parse() { + var properties = this.properties; + var cff = new CFF(); + this.cff = cff; + var header = this.parseHeader(); + var nameIndex = this.parseIndex(header.endPos); + var topDictIndex = this.parseIndex(nameIndex.endPos); + var stringIndex = this.parseIndex(topDictIndex.endPos); + var globalSubrIndex = this.parseIndex(stringIndex.endPos); + var topDictParsed = this.parseDict(topDictIndex.obj.get(0)); + var topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings); + cff.header = header.obj; + cff.names = this.parseNameIndex(nameIndex.obj); + cff.strings = this.parseStringIndex(stringIndex.obj); + cff.topDict = topDict; + cff.globalSubrIndex = globalSubrIndex.obj; + this.parsePrivateDict(cff.topDict); + cff.isCIDFont = topDict.hasName('ROS'); + var charStringOffset = topDict.getByName('CharStrings'); + var charStringIndex = this.parseIndex(charStringOffset).obj; + var fontMatrix = topDict.getByName('FontMatrix'); + + if (fontMatrix) { + properties.fontMatrix = fontMatrix; + } + + var fontBBox = topDict.getByName('FontBBox'); + + if (fontBBox) { + properties.ascent = Math.max(fontBBox[3], fontBBox[1]); + properties.descent = Math.min(fontBBox[1], fontBBox[3]); + properties.ascentScaled = true; + } + + var charset, encoding; + + if (cff.isCIDFont) { + var fdArrayIndex = this.parseIndex(topDict.getByName('FDArray')).obj; + + for (var i = 0, ii = fdArrayIndex.count; i < ii; ++i) { + var dictRaw = fdArrayIndex.get(i); + var fontDict = this.createDict(CFFTopDict, this.parseDict(dictRaw), cff.strings); + this.parsePrivateDict(fontDict); + cff.fdArray.push(fontDict); + } + + encoding = null; + charset = this.parseCharsets(topDict.getByName('charset'), charStringIndex.count, cff.strings, true); + cff.fdSelect = this.parseFDSelect(topDict.getByName('FDSelect'), charStringIndex.count); + } else { + charset = this.parseCharsets(topDict.getByName('charset'), charStringIndex.count, cff.strings, false); + encoding = this.parseEncoding(topDict.getByName('Encoding'), properties, cff.strings, charset.charset); + } + + cff.charset = charset; + cff.encoding = encoding; + var charStringsAndSeacs = this.parseCharStrings({ + charStrings: charStringIndex, + localSubrIndex: topDict.privateDict.subrsIndex, + globalSubrIndex: globalSubrIndex.obj, + fdSelect: cff.fdSelect, + fdArray: cff.fdArray, + privateDict: topDict.privateDict + }); + cff.charStrings = charStringsAndSeacs.charStrings; + cff.seacs = charStringsAndSeacs.seacs; + cff.widths = charStringsAndSeacs.widths; + return cff; + }, + parseHeader: function CFFParser_parseHeader() { + var bytes = this.bytes; + var bytesLength = bytes.length; + var offset = 0; + + while (offset < bytesLength && bytes[offset] !== 1) { + ++offset; + } + + if (offset >= bytesLength) { + throw new _util.FormatError('Invalid CFF header'); + } + + if (offset !== 0) { + (0, _util.info)('cff data is shifted'); + bytes = bytes.subarray(offset); + this.bytes = bytes; + } + + var major = bytes[0]; + var minor = bytes[1]; + var hdrSize = bytes[2]; + var offSize = bytes[3]; + var header = new CFFHeader(major, minor, hdrSize, offSize); + return { + obj: header, + endPos: hdrSize + }; + }, + parseDict: function CFFParser_parseDict(dict) { + var pos = 0; + + function parseOperand() { + var value = dict[pos++]; + + if (value === 30) { + return parseFloatOperand(); + } else if (value === 28) { + value = dict[pos++]; + value = (value << 24 | dict[pos++] << 16) >> 16; + return value; + } else if (value === 29) { + value = dict[pos++]; + value = value << 8 | dict[pos++]; + value = value << 8 | dict[pos++]; + value = value << 8 | dict[pos++]; + return value; + } else if (value >= 32 && value <= 246) { + return value - 139; + } else if (value >= 247 && value <= 250) { + return (value - 247) * 256 + dict[pos++] + 108; + } else if (value >= 251 && value <= 254) { + return -((value - 251) * 256) - dict[pos++] - 108; + } + + (0, _util.warn)('CFFParser_parseDict: "' + value + '" is a reserved command.'); + return NaN; + } + + function parseFloatOperand() { + var str = ''; + var eof = 15; + var lookup = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', 'E', 'E-', null, '-']; + var length = dict.length; + + while (pos < length) { + var b = dict[pos++]; + var b1 = b >> 4; + var b2 = b & 15; + + if (b1 === eof) { + break; + } + + str += lookup[b1]; + + if (b2 === eof) { + break; + } + + str += lookup[b2]; + } + + return parseFloat(str); + } + + var operands = []; + var entries = []; + pos = 0; + var end = dict.length; + + while (pos < end) { + var b = dict[pos]; + + if (b <= 21) { + if (b === 12) { + b = b << 8 | dict[++pos]; + } + + entries.push([b, operands]); + operands = []; + ++pos; + } else { + operands.push(parseOperand()); + } + } + + return entries; + }, + parseIndex: function CFFParser_parseIndex(pos) { + var cffIndex = new CFFIndex(); + var bytes = this.bytes; + var count = bytes[pos++] << 8 | bytes[pos++]; + var offsets = []; + var end = pos; + var i, ii; + + if (count !== 0) { + var offsetSize = bytes[pos++]; + var startPos = pos + (count + 1) * offsetSize - 1; + + for (i = 0, ii = count + 1; i < ii; ++i) { + var offset = 0; + + for (var j = 0; j < offsetSize; ++j) { + offset <<= 8; + offset += bytes[pos++]; + } + + offsets.push(startPos + offset); + } + + end = offsets[count]; + } + + for (i = 0, ii = offsets.length - 1; i < ii; ++i) { + var offsetStart = offsets[i]; + var offsetEnd = offsets[i + 1]; + cffIndex.add(bytes.subarray(offsetStart, offsetEnd)); + } + + return { + obj: cffIndex, + endPos: end + }; + }, + parseNameIndex: function CFFParser_parseNameIndex(index) { + var names = []; + + for (var i = 0, ii = index.count; i < ii; ++i) { + var name = index.get(i); + names.push((0, _util.bytesToString)(name)); + } + + return names; + }, + parseStringIndex: function CFFParser_parseStringIndex(index) { + var strings = new CFFStrings(); + + for (var i = 0, ii = index.count; i < ii; ++i) { + var data = index.get(i); + strings.add((0, _util.bytesToString)(data)); + } + + return strings; + }, + createDict: function CFFParser_createDict(Type, dict, strings) { + var cffDict = new Type(strings); + + for (var i = 0, ii = dict.length; i < ii; ++i) { + var pair = dict[i]; + var key = pair[0]; + var value = pair[1]; + cffDict.setByKey(key, value); + } + + return cffDict; + }, + parseCharString: function CFFParser_parseCharString(state, data, localSubrIndex, globalSubrIndex) { + if (!data || state.callDepth > MAX_SUBR_NESTING) { + return false; + } + + var stackSize = state.stackSize; + var stack = state.stack; + var length = data.length; + + for (var j = 0; j < length;) { + var value = data[j++]; + var validationCommand = null; + + if (value === 12) { + var q = data[j++]; + + if (q === 0) { + data[j - 2] = 139; + data[j - 1] = 22; + stackSize = 0; + } else { + validationCommand = CharstringValidationData12[q]; + } + } else if (value === 28) { + stack[stackSize] = (data[j] << 24 | data[j + 1] << 16) >> 16; + j += 2; + stackSize++; + } else if (value === 14) { + if (stackSize >= 4) { + stackSize -= 4; + + if (this.seacAnalysisEnabled) { + state.seac = stack.slice(stackSize, stackSize + 4); + return false; + } + } + + validationCommand = CharstringValidationData[value]; + } else if (value >= 32 && value <= 246) { + stack[stackSize] = value - 139; + stackSize++; + } else if (value >= 247 && value <= 254) { + stack[stackSize] = value < 251 ? (value - 247 << 8) + data[j] + 108 : -(value - 251 << 8) - data[j] - 108; + j++; + stackSize++; + } else if (value === 255) { + stack[stackSize] = (data[j] << 24 | data[j + 1] << 16 | data[j + 2] << 8 | data[j + 3]) / 65536; + j += 4; + stackSize++; + } else if (value === 19 || value === 20) { + state.hints += stackSize >> 1; + j += state.hints + 7 >> 3; + stackSize %= 2; + validationCommand = CharstringValidationData[value]; + } else if (value === 10 || value === 29) { + var subrsIndex; + + if (value === 10) { + subrsIndex = localSubrIndex; + } else { + subrsIndex = globalSubrIndex; + } + + if (!subrsIndex) { + validationCommand = CharstringValidationData[value]; + (0, _util.warn)('Missing subrsIndex for ' + validationCommand.id); + return false; + } + + var bias = 32768; + + if (subrsIndex.count < 1240) { + bias = 107; + } else if (subrsIndex.count < 33900) { + bias = 1131; + } + + var subrNumber = stack[--stackSize] + bias; + + if (subrNumber < 0 || subrNumber >= subrsIndex.count || isNaN(subrNumber)) { + validationCommand = CharstringValidationData[value]; + (0, _util.warn)('Out of bounds subrIndex for ' + validationCommand.id); + return false; + } + + state.stackSize = stackSize; + state.callDepth++; + var valid = this.parseCharString(state, subrsIndex.get(subrNumber), localSubrIndex, globalSubrIndex); + + if (!valid) { + return false; + } + + state.callDepth--; + stackSize = state.stackSize; + continue; + } else if (value === 11) { + state.stackSize = stackSize; + return true; + } else { + validationCommand = CharstringValidationData[value]; + } + + if (validationCommand) { + if (validationCommand.stem) { + state.hints += stackSize >> 1; + + if (value === 3 || value === 23) { + state.hasVStems = true; + } else if (state.hasVStems && (value === 1 || value === 18)) { + (0, _util.warn)('CFF stem hints are in wrong order'); + data[j - 1] = value === 1 ? 3 : 23; + } + } + + if ('min' in validationCommand) { + if (!state.undefStack && stackSize < validationCommand.min) { + (0, _util.warn)('Not enough parameters for ' + validationCommand.id + '; actual: ' + stackSize + ', expected: ' + validationCommand.min); + return false; + } + } + + if (state.firstStackClearing && validationCommand.stackClearing) { + state.firstStackClearing = false; + stackSize -= validationCommand.min; + + if (stackSize >= 2 && validationCommand.stem) { + stackSize %= 2; + } else if (stackSize > 1) { + (0, _util.warn)('Found too many parameters for stack-clearing command'); + } + + if (stackSize > 0 && stack[stackSize - 1] >= 0) { + state.width = stack[stackSize - 1]; + } + } + + if ('stackDelta' in validationCommand) { + if ('stackFn' in validationCommand) { + validationCommand.stackFn(stack, stackSize); + } + + stackSize += validationCommand.stackDelta; + } else if (validationCommand.stackClearing) { + stackSize = 0; + } else if (validationCommand.resetStack) { + stackSize = 0; + state.undefStack = false; + } else if (validationCommand.undefStack) { + stackSize = 0; + state.undefStack = true; + state.firstStackClearing = false; + } + } + } + + state.stackSize = stackSize; + return true; + }, + parseCharStrings: function parseCharStrings(_ref) { + var charStrings = _ref.charStrings, + localSubrIndex = _ref.localSubrIndex, + globalSubrIndex = _ref.globalSubrIndex, + fdSelect = _ref.fdSelect, + fdArray = _ref.fdArray, + privateDict = _ref.privateDict; + var seacs = []; + var widths = []; + var count = charStrings.count; + + for (var i = 0; i < count; i++) { + var charstring = charStrings.get(i); + var state = { + callDepth: 0, + stackSize: 0, + stack: [], + undefStack: true, + hints: 0, + firstStackClearing: true, + seac: null, + width: null, + hasVStems: false + }; + var valid = true; + var localSubrToUse = null; + var privateDictToUse = privateDict; + + if (fdSelect && fdArray.length) { + var fdIndex = fdSelect.getFDIndex(i); + + if (fdIndex === -1) { + (0, _util.warn)('Glyph index is not in fd select.'); + valid = false; + } + + if (fdIndex >= fdArray.length) { + (0, _util.warn)('Invalid fd index for glyph index.'); + valid = false; + } + + if (valid) { + privateDictToUse = fdArray[fdIndex].privateDict; + localSubrToUse = privateDictToUse.subrsIndex; + } + } else if (localSubrIndex) { + localSubrToUse = localSubrIndex; + } + + if (valid) { + valid = this.parseCharString(state, charstring, localSubrToUse, globalSubrIndex); + } + + if (state.width !== null) { + var nominalWidth = privateDictToUse.getByName('nominalWidthX'); + widths[i] = nominalWidth + state.width; + } else { + var defaultWidth = privateDictToUse.getByName('defaultWidthX'); + widths[i] = defaultWidth; + } + + if (state.seac !== null) { + seacs[i] = state.seac; + } + + if (!valid) { + charStrings.set(i, new Uint8Array([14])); + } + } + + return { + charStrings: charStrings, + seacs: seacs, + widths: widths + }; + }, + emptyPrivateDictionary: function CFFParser_emptyPrivateDictionary(parentDict) { + var privateDict = this.createDict(CFFPrivateDict, [], parentDict.strings); + parentDict.setByKey(18, [0, 0]); + parentDict.privateDict = privateDict; + }, + parsePrivateDict: function CFFParser_parsePrivateDict(parentDict) { + if (!parentDict.hasName('Private')) { + this.emptyPrivateDictionary(parentDict); + return; + } + + var privateOffset = parentDict.getByName('Private'); + + if (!Array.isArray(privateOffset) || privateOffset.length !== 2) { + parentDict.removeByName('Private'); + return; + } + + var size = privateOffset[0]; + var offset = privateOffset[1]; + + if (size === 0 || offset >= this.bytes.length) { + this.emptyPrivateDictionary(parentDict); + return; + } + + var privateDictEnd = offset + size; + var dictData = this.bytes.subarray(offset, privateDictEnd); + var dict = this.parseDict(dictData); + var privateDict = this.createDict(CFFPrivateDict, dict, parentDict.strings); + parentDict.privateDict = privateDict; + + if (!privateDict.getByName('Subrs')) { + return; + } + + var subrsOffset = privateDict.getByName('Subrs'); + var relativeOffset = offset + subrsOffset; + + if (subrsOffset === 0 || relativeOffset >= this.bytes.length) { + this.emptyPrivateDictionary(parentDict); + return; + } + + var subrsIndex = this.parseIndex(relativeOffset); + privateDict.subrsIndex = subrsIndex.obj; + }, + parseCharsets: function CFFParser_parseCharsets(pos, length, strings, cid) { + if (pos === 0) { + return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE, _charsets.ISOAdobeCharset); + } else if (pos === 1) { + return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT, _charsets.ExpertCharset); + } else if (pos === 2) { + return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT_SUBSET, _charsets.ExpertSubsetCharset); + } + + var bytes = this.bytes; + var start = pos; + var format = bytes[pos++]; + var charset = ['.notdef']; + var id, count, i; + length -= 1; + + switch (format) { + case 0: + for (i = 0; i < length; i++) { + id = bytes[pos++] << 8 | bytes[pos++]; + charset.push(cid ? id : strings.get(id)); + } + + break; + + case 1: + while (charset.length <= length) { + id = bytes[pos++] << 8 | bytes[pos++]; + count = bytes[pos++]; + + for (i = 0; i <= count; i++) { + charset.push(cid ? id++ : strings.get(id++)); + } + } + + break; + + case 2: + while (charset.length <= length) { + id = bytes[pos++] << 8 | bytes[pos++]; + count = bytes[pos++] << 8 | bytes[pos++]; + + for (i = 0; i <= count; i++) { + charset.push(cid ? id++ : strings.get(id++)); + } + } + + break; + + default: + throw new _util.FormatError('Unknown charset format'); + } + + var end = pos; + var raw = bytes.subarray(start, end); + return new CFFCharset(false, format, charset, raw); + }, + parseEncoding: function CFFParser_parseEncoding(pos, properties, strings, charset) { + var encoding = Object.create(null); + var bytes = this.bytes; + var predefined = false; + var format, i, ii; + var raw = null; + + function readSupplement() { + var supplementsCount = bytes[pos++]; + + for (i = 0; i < supplementsCount; i++) { + var code = bytes[pos++]; + var sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff); + encoding[code] = charset.indexOf(strings.get(sid)); + } + } + + if (pos === 0 || pos === 1) { + predefined = true; + format = pos; + var baseEncoding = pos ? _encodings.ExpertEncoding : _encodings.StandardEncoding; + + for (i = 0, ii = charset.length; i < ii; i++) { + var index = baseEncoding.indexOf(charset[i]); + + if (index !== -1) { + encoding[index] = i; + } + } + } else { + var dataStart = pos; + format = bytes[pos++]; + + switch (format & 0x7f) { + case 0: + var glyphsCount = bytes[pos++]; + + for (i = 1; i <= glyphsCount; i++) { + encoding[bytes[pos++]] = i; + } + + break; + + case 1: + var rangesCount = bytes[pos++]; + var gid = 1; + + for (i = 0; i < rangesCount; i++) { + var start = bytes[pos++]; + var left = bytes[pos++]; + + for (var j = start; j <= start + left; j++) { + encoding[j] = gid++; + } + } + + break; + + default: + throw new _util.FormatError("Unknown encoding format: ".concat(format, " in CFF")); + } + + var dataEnd = pos; + + if (format & 0x80) { + bytes[dataStart] &= 0x7f; + readSupplement(); + } + + raw = bytes.subarray(dataStart, dataEnd); + } + + format = format & 0x7f; + return new CFFEncoding(predefined, format, encoding, raw); + }, + parseFDSelect: function CFFParser_parseFDSelect(pos, length) { + var bytes = this.bytes; + var format = bytes[pos++]; + var fdSelect = []; + var i; + + switch (format) { + case 0: + for (i = 0; i < length; ++i) { + var id = bytes[pos++]; + fdSelect.push(id); + } + + break; + + case 3: + var rangesCount = bytes[pos++] << 8 | bytes[pos++]; + + for (i = 0; i < rangesCount; ++i) { + var first = bytes[pos++] << 8 | bytes[pos++]; + + if (i === 0 && first !== 0) { + (0, _util.warn)('parseFDSelect: The first range must have a first GID of 0' + ' -- trying to recover.'); + first = 0; + } + + var fdIndex = bytes[pos++]; + var next = bytes[pos] << 8 | bytes[pos + 1]; + + for (var j = first; j < next; ++j) { + fdSelect.push(fdIndex); + } + } + + pos += 2; + break; + + default: + throw new _util.FormatError("parseFDSelect: Unknown format \"".concat(format, "\".")); + } + + if (fdSelect.length !== length) { + throw new _util.FormatError('parseFDSelect: Invalid font data.'); + } + + return new CFFFDSelect(format, fdSelect); + } + }; + return CFFParser; +}(); + +exports.CFFParser = CFFParser; + +var CFF = function CFFClosure() { + function CFF() { + this.header = null; + this.names = []; + this.topDict = null; + this.strings = new CFFStrings(); + this.globalSubrIndex = null; + this.encoding = null; + this.charset = null; + this.charStrings = null; + this.fdArray = []; + this.fdSelect = null; + this.isCIDFont = false; + } + + CFF.prototype = { + duplicateFirstGlyph: function CFF_duplicateFirstGlyph() { + if (this.charStrings.count >= 65535) { + (0, _util.warn)('Not enough space in charstrings to duplicate first glyph.'); + return; + } + + var glyphZero = this.charStrings.get(0); + this.charStrings.add(glyphZero); + + if (this.isCIDFont) { + this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]); + } + }, + hasGlyphId: function CFF_hasGlyphID(id) { + if (id < 0 || id >= this.charStrings.count) { + return false; + } + + var glyph = this.charStrings.get(id); + return glyph.length > 0; + } + }; + return CFF; +}(); + +exports.CFF = CFF; + +var CFFHeader = function CFFHeaderClosure() { + function CFFHeader(major, minor, hdrSize, offSize) { + this.major = major; + this.minor = minor; + this.hdrSize = hdrSize; + this.offSize = offSize; + } + + return CFFHeader; +}(); + +exports.CFFHeader = CFFHeader; + +var CFFStrings = function CFFStringsClosure() { + function CFFStrings() { + this.strings = []; + } + + CFFStrings.prototype = { + get: function CFFStrings_get(index) { + if (index >= 0 && index <= 390) { + return CFFStandardStrings[index]; + } + + if (index - 391 <= this.strings.length) { + return this.strings[index - 391]; + } + + return CFFStandardStrings[0]; + }, + add: function CFFStrings_add(value) { + this.strings.push(value); + }, + + get count() { + return this.strings.length; + } + + }; + return CFFStrings; +}(); + +exports.CFFStrings = CFFStrings; + +var CFFIndex = function CFFIndexClosure() { + function CFFIndex() { + this.objects = []; + this.length = 0; + } + + CFFIndex.prototype = { + add: function CFFIndex_add(data) { + this.length += data.length; + this.objects.push(data); + }, + set: function CFFIndex_set(index, data) { + this.length += data.length - this.objects[index].length; + this.objects[index] = data; + }, + get: function CFFIndex_get(index) { + return this.objects[index]; + }, + + get count() { + return this.objects.length; + } + + }; + return CFFIndex; +}(); + +exports.CFFIndex = CFFIndex; + +var CFFDict = function CFFDictClosure() { + function CFFDict(tables, strings) { + this.keyToNameMap = tables.keyToNameMap; + this.nameToKeyMap = tables.nameToKeyMap; + this.defaults = tables.defaults; + this.types = tables.types; + this.opcodes = tables.opcodes; + this.order = tables.order; + this.strings = strings; + this.values = Object.create(null); + } + + CFFDict.prototype = { + setByKey: function CFFDict_setByKey(key, value) { + if (!(key in this.keyToNameMap)) { + return false; + } + + var valueLength = value.length; + + if (valueLength === 0) { + return true; + } + + for (var i = 0; i < valueLength; i++) { + if (isNaN(value[i])) { + (0, _util.warn)('Invalid CFFDict value: "' + value + '" for key "' + key + '".'); + return true; + } + } + + var type = this.types[key]; + + if (type === 'num' || type === 'sid' || type === 'offset') { + value = value[0]; + } + + this.values[key] = value; + return true; + }, + setByName: function CFFDict_setByName(name, value) { + if (!(name in this.nameToKeyMap)) { + throw new _util.FormatError("Invalid dictionary name \"".concat(name, "\"")); + } + + this.values[this.nameToKeyMap[name]] = value; + }, + hasName: function CFFDict_hasName(name) { + return this.nameToKeyMap[name] in this.values; + }, + getByName: function CFFDict_getByName(name) { + if (!(name in this.nameToKeyMap)) { + throw new _util.FormatError("Invalid dictionary name ".concat(name, "\"")); + } + + var key = this.nameToKeyMap[name]; + + if (!(key in this.values)) { + return this.defaults[key]; + } + + return this.values[key]; + }, + removeByName: function CFFDict_removeByName(name) { + delete this.values[this.nameToKeyMap[name]]; + } + }; + + CFFDict.createTables = function CFFDict_createTables(layout) { + var tables = { + keyToNameMap: {}, + nameToKeyMap: {}, + defaults: {}, + types: {}, + opcodes: {}, + order: [] + }; + + for (var i = 0, ii = layout.length; i < ii; ++i) { + var entry = layout[i]; + var key = Array.isArray(entry[0]) ? (entry[0][0] << 8) + entry[0][1] : entry[0]; + tables.keyToNameMap[key] = entry[1]; + tables.nameToKeyMap[entry[1]] = key; + tables.types[key] = entry[2]; + tables.defaults[key] = entry[3]; + tables.opcodes[key] = Array.isArray(entry[0]) ? entry[0] : [entry[0]]; + tables.order.push(key); + } + + return tables; + }; + + return CFFDict; +}(); + +var CFFTopDict = function CFFTopDictClosure() { + var layout = [[[12, 30], 'ROS', ['sid', 'sid', 'num'], null], [[12, 20], 'SyntheticBase', 'num', null], [0, 'version', 'sid', null], [1, 'Notice', 'sid', null], [[12, 0], 'Copyright', 'sid', null], [2, 'FullName', 'sid', null], [3, 'FamilyName', 'sid', null], [4, 'Weight', 'sid', null], [[12, 1], 'isFixedPitch', 'num', 0], [[12, 2], 'ItalicAngle', 'num', 0], [[12, 3], 'UnderlinePosition', 'num', -100], [[12, 4], 'UnderlineThickness', 'num', 50], [[12, 5], 'PaintType', 'num', 0], [[12, 6], 'CharstringType', 'num', 2], [[12, 7], 'FontMatrix', ['num', 'num', 'num', 'num', 'num', 'num'], [0.001, 0, 0, 0.001, 0, 0]], [13, 'UniqueID', 'num', null], [5, 'FontBBox', ['num', 'num', 'num', 'num'], [0, 0, 0, 0]], [[12, 8], 'StrokeWidth', 'num', 0], [14, 'XUID', 'array', null], [15, 'charset', 'offset', 0], [16, 'Encoding', 'offset', 0], [17, 'CharStrings', 'offset', 0], [18, 'Private', ['offset', 'offset'], null], [[12, 21], 'PostScript', 'sid', null], [[12, 22], 'BaseFontName', 'sid', null], [[12, 23], 'BaseFontBlend', 'delta', null], [[12, 31], 'CIDFontVersion', 'num', 0], [[12, 32], 'CIDFontRevision', 'num', 0], [[12, 33], 'CIDFontType', 'num', 0], [[12, 34], 'CIDCount', 'num', 8720], [[12, 35], 'UIDBase', 'num', null], [[12, 37], 'FDSelect', 'offset', null], [[12, 36], 'FDArray', 'offset', null], [[12, 38], 'FontName', 'sid', null]]; + var tables = null; + + function CFFTopDict(strings) { + if (tables === null) { + tables = CFFDict.createTables(layout); + } + + CFFDict.call(this, tables, strings); + this.privateDict = null; + } + + CFFTopDict.prototype = Object.create(CFFDict.prototype); + return CFFTopDict; +}(); + +exports.CFFTopDict = CFFTopDict; + +var CFFPrivateDict = function CFFPrivateDictClosure() { + var layout = [[6, 'BlueValues', 'delta', null], [7, 'OtherBlues', 'delta', null], [8, 'FamilyBlues', 'delta', null], [9, 'FamilyOtherBlues', 'delta', null], [[12, 9], 'BlueScale', 'num', 0.039625], [[12, 10], 'BlueShift', 'num', 7], [[12, 11], 'BlueFuzz', 'num', 1], [10, 'StdHW', 'num', null], [11, 'StdVW', 'num', null], [[12, 12], 'StemSnapH', 'delta', null], [[12, 13], 'StemSnapV', 'delta', null], [[12, 14], 'ForceBold', 'num', 0], [[12, 17], 'LanguageGroup', 'num', 0], [[12, 18], 'ExpansionFactor', 'num', 0.06], [[12, 19], 'initialRandomSeed', 'num', 0], [20, 'defaultWidthX', 'num', 0], [21, 'nominalWidthX', 'num', 0], [19, 'Subrs', 'offset', null]]; + var tables = null; + + function CFFPrivateDict(strings) { + if (tables === null) { + tables = CFFDict.createTables(layout); + } + + CFFDict.call(this, tables, strings); + this.subrsIndex = null; + } + + CFFPrivateDict.prototype = Object.create(CFFDict.prototype); + return CFFPrivateDict; +}(); + +exports.CFFPrivateDict = CFFPrivateDict; +var CFFCharsetPredefinedTypes = { + ISO_ADOBE: 0, + EXPERT: 1, + EXPERT_SUBSET: 2 +}; + +var CFFCharset = function CFFCharsetClosure() { + function CFFCharset(predefined, format, charset, raw) { + this.predefined = predefined; + this.format = format; + this.charset = charset; + this.raw = raw; + } + + return CFFCharset; +}(); + +exports.CFFCharset = CFFCharset; + +var CFFEncoding = function CFFEncodingClosure() { + function CFFEncoding(predefined, format, encoding, raw) { + this.predefined = predefined; + this.format = format; + this.encoding = encoding; + this.raw = raw; + } + + return CFFEncoding; +}(); + +var CFFFDSelect = function CFFFDSelectClosure() { + function CFFFDSelect(format, fdSelect) { + this.format = format; + this.fdSelect = fdSelect; + } + + CFFFDSelect.prototype = { + getFDIndex: function CFFFDSelect_get(glyphIndex) { + if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) { + return -1; + } + + return this.fdSelect[glyphIndex]; + } + }; + return CFFFDSelect; +}(); + +exports.CFFFDSelect = CFFFDSelect; + +var CFFOffsetTracker = function CFFOffsetTrackerClosure() { + function CFFOffsetTracker() { + this.offsets = Object.create(null); + } + + CFFOffsetTracker.prototype = { + isTracking: function CFFOffsetTracker_isTracking(key) { + return key in this.offsets; + }, + track: function CFFOffsetTracker_track(key, location) { + if (key in this.offsets) { + throw new _util.FormatError("Already tracking location of ".concat(key)); + } + + this.offsets[key] = location; + }, + offset: function CFFOffsetTracker_offset(value) { + for (var key in this.offsets) { + this.offsets[key] += value; + } + }, + setEntryLocation: function CFFOffsetTracker_setEntryLocation(key, values, output) { + if (!(key in this.offsets)) { + throw new _util.FormatError("Not tracking location of ".concat(key)); + } + + var data = output.data; + var dataOffset = this.offsets[key]; + var size = 5; + + for (var i = 0, ii = values.length; i < ii; ++i) { + var offset0 = i * size + dataOffset; + var offset1 = offset0 + 1; + var offset2 = offset0 + 2; + var offset3 = offset0 + 3; + var offset4 = offset0 + 4; + + if (data[offset0] !== 0x1d || data[offset1] !== 0 || data[offset2] !== 0 || data[offset3] !== 0 || data[offset4] !== 0) { + throw new _util.FormatError('writing to an offset that is not empty'); + } + + var value = values[i]; + data[offset0] = 0x1d; + data[offset1] = value >> 24 & 0xFF; + data[offset2] = value >> 16 & 0xFF; + data[offset3] = value >> 8 & 0xFF; + data[offset4] = value & 0xFF; + } + } + }; + return CFFOffsetTracker; +}(); + +var CFFCompiler = function CFFCompilerClosure() { + function CFFCompiler(cff) { + this.cff = cff; + } + + CFFCompiler.prototype = { + compile: function CFFCompiler_compile() { + var cff = this.cff; + var output = { + data: [], + length: 0, + add: function CFFCompiler_add(data) { + this.data = this.data.concat(data); + this.length = this.data.length; + } + }; + var header = this.compileHeader(cff.header); + output.add(header); + var nameIndex = this.compileNameIndex(cff.names); + output.add(nameIndex); + + if (cff.isCIDFont) { + if (cff.topDict.hasName('FontMatrix')) { + var base = cff.topDict.getByName('FontMatrix'); + cff.topDict.removeByName('FontMatrix'); + + for (var i = 0, ii = cff.fdArray.length; i < ii; i++) { + var subDict = cff.fdArray[i]; + var matrix = base.slice(0); + + if (subDict.hasName('FontMatrix')) { + matrix = _util.Util.transform(matrix, subDict.getByName('FontMatrix')); + } + + subDict.setByName('FontMatrix', matrix); + } + } + } + + cff.topDict.setByName('charset', 0); + var compiled = this.compileTopDicts([cff.topDict], output.length, cff.isCIDFont); + output.add(compiled.output); + var topDictTracker = compiled.trackers[0]; + var stringIndex = this.compileStringIndex(cff.strings.strings); + output.add(stringIndex); + var globalSubrIndex = this.compileIndex(cff.globalSubrIndex); + output.add(globalSubrIndex); + + if (cff.encoding && cff.topDict.hasName('Encoding')) { + if (cff.encoding.predefined) { + topDictTracker.setEntryLocation('Encoding', [cff.encoding.format], output); + } else { + var encoding = this.compileEncoding(cff.encoding); + topDictTracker.setEntryLocation('Encoding', [output.length], output); + output.add(encoding); + } + } + + var charset = this.compileCharset(cff.charset); + topDictTracker.setEntryLocation('charset', [output.length], output); + output.add(charset); + var charStrings = this.compileCharStrings(cff.charStrings); + topDictTracker.setEntryLocation('CharStrings', [output.length], output); + output.add(charStrings); + + if (cff.isCIDFont) { + topDictTracker.setEntryLocation('FDSelect', [output.length], output); + var fdSelect = this.compileFDSelect(cff.fdSelect); + output.add(fdSelect); + compiled = this.compileTopDicts(cff.fdArray, output.length, true); + topDictTracker.setEntryLocation('FDArray', [output.length], output); + output.add(compiled.output); + var fontDictTrackers = compiled.trackers; + this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output); + } + + this.compilePrivateDicts([cff.topDict], [topDictTracker], output); + output.add([0]); + return output.data; + }, + encodeNumber: function CFFCompiler_encodeNumber(value) { + if (parseFloat(value) === parseInt(value, 10) && !isNaN(value)) { + return this.encodeInteger(value); + } + + return this.encodeFloat(value); + }, + encodeFloat: function CFFCompiler_encodeFloat(num) { + var value = num.toString(); + var m = /\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(value); + + if (m) { + var epsilon = parseFloat('1e' + ((m[2] ? +m[2] : 0) + m[1].length)); + value = (Math.round(num * epsilon) / epsilon).toString(); + } + + var nibbles = ''; + var i, ii; + + for (i = 0, ii = value.length; i < ii; ++i) { + var a = value[i]; + + if (a === 'e') { + nibbles += value[++i] === '-' ? 'c' : 'b'; + } else if (a === '.') { + nibbles += 'a'; + } else if (a === '-') { + nibbles += 'e'; + } else { + nibbles += a; + } + } + + nibbles += nibbles.length & 1 ? 'f' : 'ff'; + var out = [30]; + + for (i = 0, ii = nibbles.length; i < ii; i += 2) { + out.push(parseInt(nibbles.substring(i, i + 2), 16)); + } + + return out; + }, + encodeInteger: function CFFCompiler_encodeInteger(value) { + var code; + + if (value >= -107 && value <= 107) { + code = [value + 139]; + } else if (value >= 108 && value <= 1131) { + value = value - 108; + code = [(value >> 8) + 247, value & 0xFF]; + } else if (value >= -1131 && value <= -108) { + value = -value - 108; + code = [(value >> 8) + 251, value & 0xFF]; + } else if (value >= -32768 && value <= 32767) { + code = [0x1c, value >> 8 & 0xFF, value & 0xFF]; + } else { + code = [0x1d, value >> 24 & 0xFF, value >> 16 & 0xFF, value >> 8 & 0xFF, value & 0xFF]; + } + + return code; + }, + compileHeader: function CFFCompiler_compileHeader(header) { + return [header.major, header.minor, header.hdrSize, header.offSize]; + }, + compileNameIndex: function CFFCompiler_compileNameIndex(names) { + var nameIndex = new CFFIndex(); + + for (var i = 0, ii = names.length; i < ii; ++i) { + var name = names[i]; + var length = Math.min(name.length, 127); + var sanitizedName = new Array(length); + + for (var j = 0; j < length; j++) { + var char = name[j]; + + if (char < '!' || char > '~' || char === '[' || char === ']' || char === '(' || char === ')' || char === '{' || char === '}' || char === '<' || char === '>' || char === '/' || char === '%') { + char = '_'; + } + + sanitizedName[j] = char; + } + + sanitizedName = sanitizedName.join(''); + + if (sanitizedName === '') { + sanitizedName = 'Bad_Font_Name'; + } + + nameIndex.add((0, _util.stringToBytes)(sanitizedName)); + } + + return this.compileIndex(nameIndex); + }, + compileTopDicts: function CFFCompiler_compileTopDicts(dicts, length, removeCidKeys) { + var fontDictTrackers = []; + var fdArrayIndex = new CFFIndex(); + + for (var i = 0, ii = dicts.length; i < ii; ++i) { + var fontDict = dicts[i]; + + if (removeCidKeys) { + fontDict.removeByName('CIDFontVersion'); + fontDict.removeByName('CIDFontRevision'); + fontDict.removeByName('CIDFontType'); + fontDict.removeByName('CIDCount'); + fontDict.removeByName('UIDBase'); + } + + var fontDictTracker = new CFFOffsetTracker(); + var fontDictData = this.compileDict(fontDict, fontDictTracker); + fontDictTrackers.push(fontDictTracker); + fdArrayIndex.add(fontDictData); + fontDictTracker.offset(length); + } + + fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers); + return { + trackers: fontDictTrackers, + output: fdArrayIndex + }; + }, + compilePrivateDicts: function CFFCompiler_compilePrivateDicts(dicts, trackers, output) { + for (var i = 0, ii = dicts.length; i < ii; ++i) { + var fontDict = dicts[i]; + var privateDict = fontDict.privateDict; + + if (!privateDict || !fontDict.hasName('Private')) { + throw new _util.FormatError('There must be a private dictionary.'); + } + + var privateDictTracker = new CFFOffsetTracker(); + var privateDictData = this.compileDict(privateDict, privateDictTracker); + var outputLength = output.length; + privateDictTracker.offset(outputLength); + + if (!privateDictData.length) { + outputLength = 0; + } + + trackers[i].setEntryLocation('Private', [privateDictData.length, outputLength], output); + output.add(privateDictData); + + if (privateDict.subrsIndex && privateDict.hasName('Subrs')) { + var subrs = this.compileIndex(privateDict.subrsIndex); + privateDictTracker.setEntryLocation('Subrs', [privateDictData.length], output); + output.add(subrs); + } + } + }, + compileDict: function CFFCompiler_compileDict(dict, offsetTracker) { + var out = []; + var order = dict.order; + + for (var i = 0; i < order.length; ++i) { + var key = order[i]; + + if (!(key in dict.values)) { + continue; + } + + var values = dict.values[key]; + var types = dict.types[key]; + + if (!Array.isArray(types)) { + types = [types]; + } + + if (!Array.isArray(values)) { + values = [values]; + } + + if (values.length === 0) { + continue; + } + + for (var j = 0, jj = types.length; j < jj; ++j) { + var type = types[j]; + var value = values[j]; + + switch (type) { + case 'num': + case 'sid': + out = out.concat(this.encodeNumber(value)); + break; + + case 'offset': + var name = dict.keyToNameMap[key]; + + if (!offsetTracker.isTracking(name)) { + offsetTracker.track(name, out.length); + } + + out = out.concat([0x1d, 0, 0, 0, 0]); + break; + + case 'array': + case 'delta': + out = out.concat(this.encodeNumber(value)); + + for (var k = 1, kk = values.length; k < kk; ++k) { + out = out.concat(this.encodeNumber(values[k])); + } + + break; + + default: + throw new _util.FormatError("Unknown data type of ".concat(type)); + } + } + + out = out.concat(dict.opcodes[key]); + } + + return out; + }, + compileStringIndex: function CFFCompiler_compileStringIndex(strings) { + var stringIndex = new CFFIndex(); + + for (var i = 0, ii = strings.length; i < ii; ++i) { + stringIndex.add((0, _util.stringToBytes)(strings[i])); + } + + return this.compileIndex(stringIndex); + }, + compileGlobalSubrIndex: function CFFCompiler_compileGlobalSubrIndex() { + var globalSubrIndex = this.cff.globalSubrIndex; + this.out.writeByteArray(this.compileIndex(globalSubrIndex)); + }, + compileCharStrings: function CFFCompiler_compileCharStrings(charStrings) { + var charStringsIndex = new CFFIndex(); + + for (var i = 0; i < charStrings.count; i++) { + var glyph = charStrings.get(i); + + if (glyph.length === 0) { + charStringsIndex.add(new Uint8Array([0x8B, 0x0E])); + continue; + } + + charStringsIndex.add(glyph); + } + + return this.compileIndex(charStringsIndex); + }, + compileCharset: function CFFCompiler_compileCharset(charset) { + var length = 1 + (this.cff.charStrings.count - 1) * 2; + var out = new Uint8Array(length); + return this.compileTypedArray(out); + }, + compileEncoding: function CFFCompiler_compileEncoding(encoding) { + return this.compileTypedArray(encoding.raw); + }, + compileFDSelect: function CFFCompiler_compileFDSelect(fdSelect) { + var format = fdSelect.format; + var out, i; + + switch (format) { + case 0: + out = new Uint8Array(1 + fdSelect.fdSelect.length); + out[0] = format; + + for (i = 0; i < fdSelect.fdSelect.length; i++) { + out[i + 1] = fdSelect.fdSelect[i]; + } + + break; + + case 3: + var start = 0; + var lastFD = fdSelect.fdSelect[0]; + var ranges = [format, 0, 0, start >> 8 & 0xFF, start & 0xFF, lastFD]; + + for (i = 1; i < fdSelect.fdSelect.length; i++) { + var currentFD = fdSelect.fdSelect[i]; + + if (currentFD !== lastFD) { + ranges.push(i >> 8 & 0xFF, i & 0xFF, currentFD); + lastFD = currentFD; + } + } + + var numRanges = (ranges.length - 3) / 3; + ranges[1] = numRanges >> 8 & 0xFF; + ranges[2] = numRanges & 0xFF; + ranges.push(i >> 8 & 0xFF, i & 0xFF); + out = new Uint8Array(ranges); + break; + } + + return this.compileTypedArray(out); + }, + compileTypedArray: function CFFCompiler_compileTypedArray(data) { + var out = []; + + for (var i = 0, ii = data.length; i < ii; ++i) { + out[i] = data[i]; + } + + return out; + }, + compileIndex: function CFFCompiler_compileIndex(index, trackers) { + trackers = trackers || []; + var objects = index.objects; + var count = objects.length; + + if (count === 0) { + return [0, 0, 0]; + } + + var data = [count >> 8 & 0xFF, count & 0xff]; + var lastOffset = 1, + i; + + for (i = 0; i < count; ++i) { + lastOffset += objects[i].length; + } + + var offsetSize; + + if (lastOffset < 0x100) { + offsetSize = 1; + } else if (lastOffset < 0x10000) { + offsetSize = 2; + } else if (lastOffset < 0x1000000) { + offsetSize = 3; + } else { + offsetSize = 4; + } + + data.push(offsetSize); + var relativeOffset = 1; + + for (i = 0; i < count + 1; i++) { + if (offsetSize === 1) { + data.push(relativeOffset & 0xFF); + } else if (offsetSize === 2) { + data.push(relativeOffset >> 8 & 0xFF, relativeOffset & 0xFF); + } else if (offsetSize === 3) { + data.push(relativeOffset >> 16 & 0xFF, relativeOffset >> 8 & 0xFF, relativeOffset & 0xFF); + } else { + data.push(relativeOffset >>> 24 & 0xFF, relativeOffset >> 16 & 0xFF, relativeOffset >> 8 & 0xFF, relativeOffset & 0xFF); + } + + if (objects[i]) { + relativeOffset += objects[i].length; + } + } + + for (i = 0; i < count; i++) { + if (trackers[i]) { + trackers[i].offset(data.length); + } + + for (var j = 0, jj = objects[i].length; j < jj; j++) { + data.push(objects[i][j]); + } + } + + return data; + } + }; + return CFFCompiler; +}(); + +exports.CFFCompiler = CFFCompiler; + +/***/ }), +/* 175 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ExpertSubsetCharset = exports.ExpertCharset = exports.ISOAdobeCharset = void 0; +var ISOAdobeCharset = ['.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl', 'periodcentered', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', 'perthousand', 'questiondown', 'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'emdash', 'AE', 'ordfeminine', 'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae', 'dotlessi', 'lslash', 'oslash', 'oe', 'germandbls', 'onesuperior', 'logicalnot', 'mu', 'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn', 'onequarter', 'divide', 'brokenbar', 'degree', 'thorn', 'threequarters', 'twosuperior', 'registered', 'minus', 'eth', 'multiply', 'threesuperior', 'copyright', 'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring', 'Atilde', 'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute', 'Ocircumflex', 'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute', 'Ucircumflex', 'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron', 'aacute', 'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde', 'ccedilla', 'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute', 'icircumflex', 'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex', 'odieresis', 'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex', 'udieresis', 'ugrave', 'yacute', 'ydieresis', 'zcaron']; +exports.ISOAdobeCharset = ISOAdobeCharset; +var ExpertCharset = ['.notdef', 'space', 'exclamsmall', 'Hungarumlautsmall', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'questionsmall', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall', 'Dotaccentsmall', 'Macronsmall', 'figuredash', 'hypheninferior', 'Ogoneksmall', 'Ringsmall', 'Cedillasmall', 'onequarter', 'onehalf', 'threequarters', 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 'Ydieresissmall']; +exports.ExpertCharset = ExpertCharset; +var ExpertSubsetCharset = ['.notdef', 'space', 'dollaroldstyle', 'dollarsuperior', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior', 'hyphensuperior', 'colonmonetary', 'onefitted', 'rupiah', 'centoldstyle', 'figuredash', 'hypheninferior', 'onequarter', 'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior']; +exports.ExpertSubsetCharset = ExpertSubsetCharset; + +/***/ }), +/* 176 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getEncoding = getEncoding; +exports.ExpertEncoding = exports.ZapfDingbatsEncoding = exports.SymbolSetEncoding = exports.MacRomanEncoding = exports.StandardEncoding = exports.WinAnsiEncoding = void 0; +var ExpertEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclamsmall', 'Hungarumlautsmall', '', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'questionsmall', '', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', '', '', '', 'isuperior', '', '', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', '', '', 'rsuperior', 'ssuperior', 'tsuperior', '', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', '', 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', '', '', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall', '', 'Dotaccentsmall', '', '', 'Macronsmall', '', '', 'figuredash', 'hypheninferior', '', '', 'Ogoneksmall', 'Ringsmall', 'Cedillasmall', '', '', '', 'onequarter', 'onehalf', 'threequarters', 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', '', '', 'zerosuperior', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 'Ydieresissmall']; +exports.ExpertEncoding = ExpertEncoding; +var MacExpertEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclamsmall', 'Hungarumlautsmall', 'centoldstyle', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', '', 'threequartersemdash', '', 'questionsmall', '', '', '', '', 'Ethsmall', '', '', 'onequarter', 'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', '', '', '', '', '', '', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', '', 'parenrightinferior', 'Circumflexsmall', 'hypheninferior', 'Gravesmall', 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', '', '', 'asuperior', 'centsuperior', '', '', '', '', 'Aacutesmall', 'Agravesmall', 'Acircumflexsmall', 'Adieresissmall', 'Atildesmall', 'Aringsmall', 'Ccedillasmall', 'Eacutesmall', 'Egravesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Iacutesmall', 'Igravesmall', 'Icircumflexsmall', 'Idieresissmall', 'Ntildesmall', 'Oacutesmall', 'Ogravesmall', 'Ocircumflexsmall', 'Odieresissmall', 'Otildesmall', 'Uacutesmall', 'Ugravesmall', 'Ucircumflexsmall', 'Udieresissmall', '', 'eightsuperior', 'fourinferior', 'threeinferior', 'sixinferior', 'eightinferior', 'seveninferior', 'Scaronsmall', '', 'centinferior', 'twoinferior', '', 'Dieresissmall', '', 'Caronsmall', 'osuperior', 'fiveinferior', '', 'commainferior', 'periodinferior', 'Yacutesmall', '', 'dollarinferior', '', '', 'Thornsmall', '', 'nineinferior', 'zeroinferior', 'Zcaronsmall', 'AEsmall', 'Oslashsmall', 'questiondownsmall', 'oneinferior', 'Lslashsmall', '', '', '', '', '', '', 'Cedillasmall', '', '', '', '', '', 'OEsmall', 'figuredash', 'hyphensuperior', '', '', '', '', 'exclamdownsmall', '', 'Ydieresissmall', '', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'ninesuperior', 'zerosuperior', '', 'esuperior', 'rsuperior', 'tsuperior', '', '', 'isuperior', 'ssuperior', 'dsuperior', '', '', '', '', '', 'lsuperior', 'Ogoneksmall', 'Brevesmall', 'Macronsmall', 'bsuperior', 'nsuperior', 'msuperior', 'commasuperior', 'periodsuperior', 'Dotaccentsmall', 'Ringsmall', '', '', '', '']; +var MacRomanEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', '', 'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde', 'Odieresis', 'Udieresis', 'aacute', 'agrave', 'acircumflex', 'adieresis', 'atilde', 'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis', 'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute', 'ograve', 'ocircumflex', 'odieresis', 'otilde', 'uacute', 'ugrave', 'ucircumflex', 'udieresis', 'dagger', 'degree', 'cent', 'sterling', 'section', 'bullet', 'paragraph', 'germandbls', 'registered', 'copyright', 'trademark', 'acute', 'dieresis', 'notequal', 'AE', 'Oslash', 'infinity', 'plusminus', 'lessequal', 'greaterequal', 'yen', 'mu', 'partialdiff', 'summation', 'product', 'pi', 'integral', 'ordfeminine', 'ordmasculine', 'Omega', 'ae', 'oslash', 'questiondown', 'exclamdown', 'logicalnot', 'radical', 'florin', 'approxequal', 'Delta', 'guillemotleft', 'guillemotright', 'ellipsis', 'space', 'Agrave', 'Atilde', 'Otilde', 'OE', 'oe', 'endash', 'emdash', 'quotedblleft', 'quotedblright', 'quoteleft', 'quoteright', 'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction', 'currency', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl', 'periodcentered', 'quotesinglbase', 'quotedblbase', 'perthousand', 'Acircumflex', 'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple', 'Ograve', 'Uacute', 'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron']; +exports.MacRomanEncoding = MacRomanEncoding; +var StandardEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'exclamdown', 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', '', 'endash', 'dagger', 'daggerdbl', 'periodcentered', '', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', 'perthousand', '', 'questiondown', '', 'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', '', 'ring', 'cedilla', '', 'hungarumlaut', 'ogonek', 'caron', 'emdash', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'AE', '', 'ordfeminine', '', '', '', '', 'Lslash', 'Oslash', 'OE', 'ordmasculine', '', '', '', '', '', 'ae', '', '', '', 'dotlessi', '', '', 'lslash', 'oslash', 'oe', 'germandbls', '', '', '', '']; +exports.StandardEncoding = StandardEncoding; +var WinAnsiEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'bullet', 'Euro', 'bullet', 'quotesinglbase', 'florin', 'quotedblbase', 'ellipsis', 'dagger', 'daggerdbl', 'circumflex', 'perthousand', 'Scaron', 'guilsinglleft', 'OE', 'bullet', 'Zcaron', 'bullet', 'bullet', 'quoteleft', 'quoteright', 'quotedblleft', 'quotedblright', 'bullet', 'endash', 'emdash', 'tilde', 'trademark', 'scaron', 'guilsinglright', 'oe', 'bullet', 'zcaron', 'Ydieresis', 'space', 'exclamdown', 'cent', 'sterling', 'currency', 'yen', 'brokenbar', 'section', 'dieresis', 'copyright', 'ordfeminine', 'guillemotleft', 'logicalnot', 'hyphen', 'registered', 'macron', 'degree', 'plusminus', 'twosuperior', 'threesuperior', 'acute', 'mu', 'paragraph', 'periodcentered', 'cedilla', 'onesuperior', 'ordmasculine', 'guillemotright', 'onequarter', 'onehalf', 'threequarters', 'questiondown', 'Agrave', 'Aacute', 'Acircumflex', 'Atilde', 'Adieresis', 'Aring', 'AE', 'Ccedilla', 'Egrave', 'Eacute', 'Ecircumflex', 'Edieresis', 'Igrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Eth', 'Ntilde', 'Ograve', 'Oacute', 'Ocircumflex', 'Otilde', 'Odieresis', 'multiply', 'Oslash', 'Ugrave', 'Uacute', 'Ucircumflex', 'Udieresis', 'Yacute', 'Thorn', 'germandbls', 'agrave', 'aacute', 'acircumflex', 'atilde', 'adieresis', 'aring', 'ae', 'ccedilla', 'egrave', 'eacute', 'ecircumflex', 'edieresis', 'igrave', 'iacute', 'icircumflex', 'idieresis', 'eth', 'ntilde', 'ograve', 'oacute', 'ocircumflex', 'otilde', 'odieresis', 'divide', 'oslash', 'ugrave', 'uacute', 'ucircumflex', 'udieresis', 'yacute', 'thorn', 'ydieresis']; +exports.WinAnsiEncoding = WinAnsiEncoding; +var SymbolSetEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclam', 'universal', 'numbersign', 'existential', 'percent', 'ampersand', 'suchthat', 'parenleft', 'parenright', 'asteriskmath', 'plus', 'comma', 'minus', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'congruent', 'Alpha', 'Beta', 'Chi', 'Delta', 'Epsilon', 'Phi', 'Gamma', 'Eta', 'Iota', 'theta1', 'Kappa', 'Lambda', 'Mu', 'Nu', 'Omicron', 'Pi', 'Theta', 'Rho', 'Sigma', 'Tau', 'Upsilon', 'sigma1', 'Omega', 'Xi', 'Psi', 'Zeta', 'bracketleft', 'therefore', 'bracketright', 'perpendicular', 'underscore', 'radicalex', 'alpha', 'beta', 'chi', 'delta', 'epsilon', 'phi', 'gamma', 'eta', 'iota', 'phi1', 'kappa', 'lambda', 'mu', 'nu', 'omicron', 'pi', 'theta', 'rho', 'sigma', 'tau', 'upsilon', 'omega1', 'omega', 'xi', 'psi', 'zeta', 'braceleft', 'bar', 'braceright', 'similar', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'Euro', 'Upsilon1', 'minute', 'lessequal', 'fraction', 'infinity', 'florin', 'club', 'diamond', 'heart', 'spade', 'arrowboth', 'arrowleft', 'arrowup', 'arrowright', 'arrowdown', 'degree', 'plusminus', 'second', 'greaterequal', 'multiply', 'proportional', 'partialdiff', 'bullet', 'divide', 'notequal', 'equivalence', 'approxequal', 'ellipsis', 'arrowvertex', 'arrowhorizex', 'carriagereturn', 'aleph', 'Ifraktur', 'Rfraktur', 'weierstrass', 'circlemultiply', 'circleplus', 'emptyset', 'intersection', 'union', 'propersuperset', 'reflexsuperset', 'notsubset', 'propersubset', 'reflexsubset', 'element', 'notelement', 'angle', 'gradient', 'registerserif', 'copyrightserif', 'trademarkserif', 'product', 'radical', 'dotmath', 'logicalnot', 'logicaland', 'logicalor', 'arrowdblboth', 'arrowdblleft', 'arrowdblup', 'arrowdblright', 'arrowdbldown', 'lozenge', 'angleleft', 'registersans', 'copyrightsans', 'trademarksans', 'summation', 'parenlefttp', 'parenleftex', 'parenleftbt', 'bracketlefttp', 'bracketleftex', 'bracketleftbt', 'bracelefttp', 'braceleftmid', 'braceleftbt', 'braceex', '', 'angleright', 'integral', 'integraltp', 'integralex', 'integralbt', 'parenrighttp', 'parenrightex', 'parenrightbt', 'bracketrighttp', 'bracketrightex', 'bracketrightbt', 'bracerighttp', 'bracerightmid', 'bracerightbt', '']; +exports.SymbolSetEncoding = SymbolSetEncoding; +var ZapfDingbatsEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'a1', 'a2', 'a202', 'a3', 'a4', 'a5', 'a119', 'a118', 'a117', 'a11', 'a12', 'a13', 'a14', 'a15', 'a16', 'a105', 'a17', 'a18', 'a19', 'a20', 'a21', 'a22', 'a23', 'a24', 'a25', 'a26', 'a27', 'a28', 'a6', 'a7', 'a8', 'a9', 'a10', 'a29', 'a30', 'a31', 'a32', 'a33', 'a34', 'a35', 'a36', 'a37', 'a38', 'a39', 'a40', 'a41', 'a42', 'a43', 'a44', 'a45', 'a46', 'a47', 'a48', 'a49', 'a50', 'a51', 'a52', 'a53', 'a54', 'a55', 'a56', 'a57', 'a58', 'a59', 'a60', 'a61', 'a62', 'a63', 'a64', 'a65', 'a66', 'a67', 'a68', 'a69', 'a70', 'a71', 'a72', 'a73', 'a74', 'a203', 'a75', 'a204', 'a76', 'a77', 'a78', 'a79', 'a81', 'a82', 'a83', 'a84', 'a97', 'a98', 'a99', 'a100', '', 'a89', 'a90', 'a93', 'a94', 'a91', 'a92', 'a205', 'a85', 'a206', 'a86', 'a87', 'a88', 'a95', 'a96', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'a101', 'a102', 'a103', 'a104', 'a106', 'a107', 'a108', 'a112', 'a111', 'a110', 'a109', 'a120', 'a121', 'a122', 'a123', 'a124', 'a125', 'a126', 'a127', 'a128', 'a129', 'a130', 'a131', 'a132', 'a133', 'a134', 'a135', 'a136', 'a137', 'a138', 'a139', 'a140', 'a141', 'a142', 'a143', 'a144', 'a145', 'a146', 'a147', 'a148', 'a149', 'a150', 'a151', 'a152', 'a153', 'a154', 'a155', 'a156', 'a157', 'a158', 'a159', 'a160', 'a161', 'a163', 'a164', 'a196', 'a165', 'a192', 'a166', 'a167', 'a168', 'a169', 'a170', 'a171', 'a172', 'a173', 'a162', 'a174', 'a175', 'a176', 'a177', 'a178', 'a179', 'a193', 'a180', 'a199', 'a181', 'a200', 'a182', '', 'a201', 'a183', 'a184', 'a197', 'a185', 'a194', 'a198', 'a186', 'a195', 'a187', 'a188', 'a189', 'a190', 'a191', '']; +exports.ZapfDingbatsEncoding = ZapfDingbatsEncoding; + +function getEncoding(encodingName) { + switch (encodingName) { + case 'WinAnsiEncoding': + return WinAnsiEncoding; + + case 'StandardEncoding': + return StandardEncoding; + + case 'MacRomanEncoding': + return MacRomanEncoding; + + case 'SymbolSetEncoding': + return SymbolSetEncoding; + + case 'ZapfDingbatsEncoding': + return ZapfDingbatsEncoding; + + case 'ExpertEncoding': + return ExpertEncoding; + + case 'MacExpertEncoding': + return MacExpertEncoding; + + default: + return null; + } +} + +/***/ }), +/* 177 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +var getLookupTableFactory = __w_pdfjs_require__(6).getLookupTableFactory; +var getGlyphsUnicode = getLookupTableFactory(function (t) { + t['A'] = 0x0041; + t['AE'] = 0x00C6; + t['AEacute'] = 0x01FC; + t['AEmacron'] = 0x01E2; + t['AEsmall'] = 0xF7E6; + t['Aacute'] = 0x00C1; + t['Aacutesmall'] = 0xF7E1; + t['Abreve'] = 0x0102; + t['Abreveacute'] = 0x1EAE; + t['Abrevecyrillic'] = 0x04D0; + t['Abrevedotbelow'] = 0x1EB6; + t['Abrevegrave'] = 0x1EB0; + t['Abrevehookabove'] = 0x1EB2; + t['Abrevetilde'] = 0x1EB4; + t['Acaron'] = 0x01CD; + t['Acircle'] = 0x24B6; + t['Acircumflex'] = 0x00C2; + t['Acircumflexacute'] = 0x1EA4; + t['Acircumflexdotbelow'] = 0x1EAC; + t['Acircumflexgrave'] = 0x1EA6; + t['Acircumflexhookabove'] = 0x1EA8; + t['Acircumflexsmall'] = 0xF7E2; + t['Acircumflextilde'] = 0x1EAA; + t['Acute'] = 0xF6C9; + t['Acutesmall'] = 0xF7B4; + t['Acyrillic'] = 0x0410; + t['Adblgrave'] = 0x0200; + t['Adieresis'] = 0x00C4; + t['Adieresiscyrillic'] = 0x04D2; + t['Adieresismacron'] = 0x01DE; + t['Adieresissmall'] = 0xF7E4; + t['Adotbelow'] = 0x1EA0; + t['Adotmacron'] = 0x01E0; + t['Agrave'] = 0x00C0; + t['Agravesmall'] = 0xF7E0; + t['Ahookabove'] = 0x1EA2; + t['Aiecyrillic'] = 0x04D4; + t['Ainvertedbreve'] = 0x0202; + t['Alpha'] = 0x0391; + t['Alphatonos'] = 0x0386; + t['Amacron'] = 0x0100; + t['Amonospace'] = 0xFF21; + t['Aogonek'] = 0x0104; + t['Aring'] = 0x00C5; + t['Aringacute'] = 0x01FA; + t['Aringbelow'] = 0x1E00; + t['Aringsmall'] = 0xF7E5; + t['Asmall'] = 0xF761; + t['Atilde'] = 0x00C3; + t['Atildesmall'] = 0xF7E3; + t['Aybarmenian'] = 0x0531; + t['B'] = 0x0042; + t['Bcircle'] = 0x24B7; + t['Bdotaccent'] = 0x1E02; + t['Bdotbelow'] = 0x1E04; + t['Becyrillic'] = 0x0411; + t['Benarmenian'] = 0x0532; + t['Beta'] = 0x0392; + t['Bhook'] = 0x0181; + t['Blinebelow'] = 0x1E06; + t['Bmonospace'] = 0xFF22; + t['Brevesmall'] = 0xF6F4; + t['Bsmall'] = 0xF762; + t['Btopbar'] = 0x0182; + t['C'] = 0x0043; + t['Caarmenian'] = 0x053E; + t['Cacute'] = 0x0106; + t['Caron'] = 0xF6CA; + t['Caronsmall'] = 0xF6F5; + t['Ccaron'] = 0x010C; + t['Ccedilla'] = 0x00C7; + t['Ccedillaacute'] = 0x1E08; + t['Ccedillasmall'] = 0xF7E7; + t['Ccircle'] = 0x24B8; + t['Ccircumflex'] = 0x0108; + t['Cdot'] = 0x010A; + t['Cdotaccent'] = 0x010A; + t['Cedillasmall'] = 0xF7B8; + t['Chaarmenian'] = 0x0549; + t['Cheabkhasiancyrillic'] = 0x04BC; + t['Checyrillic'] = 0x0427; + t['Chedescenderabkhasiancyrillic'] = 0x04BE; + t['Chedescendercyrillic'] = 0x04B6; + t['Chedieresiscyrillic'] = 0x04F4; + t['Cheharmenian'] = 0x0543; + t['Chekhakassiancyrillic'] = 0x04CB; + t['Cheverticalstrokecyrillic'] = 0x04B8; + t['Chi'] = 0x03A7; + t['Chook'] = 0x0187; + t['Circumflexsmall'] = 0xF6F6; + t['Cmonospace'] = 0xFF23; + t['Coarmenian'] = 0x0551; + t['Csmall'] = 0xF763; + t['D'] = 0x0044; + t['DZ'] = 0x01F1; + t['DZcaron'] = 0x01C4; + t['Daarmenian'] = 0x0534; + t['Dafrican'] = 0x0189; + t['Dcaron'] = 0x010E; + t['Dcedilla'] = 0x1E10; + t['Dcircle'] = 0x24B9; + t['Dcircumflexbelow'] = 0x1E12; + t['Dcroat'] = 0x0110; + t['Ddotaccent'] = 0x1E0A; + t['Ddotbelow'] = 0x1E0C; + t['Decyrillic'] = 0x0414; + t['Deicoptic'] = 0x03EE; + t['Delta'] = 0x2206; + t['Deltagreek'] = 0x0394; + t['Dhook'] = 0x018A; + t['Dieresis'] = 0xF6CB; + t['DieresisAcute'] = 0xF6CC; + t['DieresisGrave'] = 0xF6CD; + t['Dieresissmall'] = 0xF7A8; + t['Digammagreek'] = 0x03DC; + t['Djecyrillic'] = 0x0402; + t['Dlinebelow'] = 0x1E0E; + t['Dmonospace'] = 0xFF24; + t['Dotaccentsmall'] = 0xF6F7; + t['Dslash'] = 0x0110; + t['Dsmall'] = 0xF764; + t['Dtopbar'] = 0x018B; + t['Dz'] = 0x01F2; + t['Dzcaron'] = 0x01C5; + t['Dzeabkhasiancyrillic'] = 0x04E0; + t['Dzecyrillic'] = 0x0405; + t['Dzhecyrillic'] = 0x040F; + t['E'] = 0x0045; + t['Eacute'] = 0x00C9; + t['Eacutesmall'] = 0xF7E9; + t['Ebreve'] = 0x0114; + t['Ecaron'] = 0x011A; + t['Ecedillabreve'] = 0x1E1C; + t['Echarmenian'] = 0x0535; + t['Ecircle'] = 0x24BA; + t['Ecircumflex'] = 0x00CA; + t['Ecircumflexacute'] = 0x1EBE; + t['Ecircumflexbelow'] = 0x1E18; + t['Ecircumflexdotbelow'] = 0x1EC6; + t['Ecircumflexgrave'] = 0x1EC0; + t['Ecircumflexhookabove'] = 0x1EC2; + t['Ecircumflexsmall'] = 0xF7EA; + t['Ecircumflextilde'] = 0x1EC4; + t['Ecyrillic'] = 0x0404; + t['Edblgrave'] = 0x0204; + t['Edieresis'] = 0x00CB; + t['Edieresissmall'] = 0xF7EB; + t['Edot'] = 0x0116; + t['Edotaccent'] = 0x0116; + t['Edotbelow'] = 0x1EB8; + t['Efcyrillic'] = 0x0424; + t['Egrave'] = 0x00C8; + t['Egravesmall'] = 0xF7E8; + t['Eharmenian'] = 0x0537; + t['Ehookabove'] = 0x1EBA; + t['Eightroman'] = 0x2167; + t['Einvertedbreve'] = 0x0206; + t['Eiotifiedcyrillic'] = 0x0464; + t['Elcyrillic'] = 0x041B; + t['Elevenroman'] = 0x216A; + t['Emacron'] = 0x0112; + t['Emacronacute'] = 0x1E16; + t['Emacrongrave'] = 0x1E14; + t['Emcyrillic'] = 0x041C; + t['Emonospace'] = 0xFF25; + t['Encyrillic'] = 0x041D; + t['Endescendercyrillic'] = 0x04A2; + t['Eng'] = 0x014A; + t['Enghecyrillic'] = 0x04A4; + t['Enhookcyrillic'] = 0x04C7; + t['Eogonek'] = 0x0118; + t['Eopen'] = 0x0190; + t['Epsilon'] = 0x0395; + t['Epsilontonos'] = 0x0388; + t['Ercyrillic'] = 0x0420; + t['Ereversed'] = 0x018E; + t['Ereversedcyrillic'] = 0x042D; + t['Escyrillic'] = 0x0421; + t['Esdescendercyrillic'] = 0x04AA; + t['Esh'] = 0x01A9; + t['Esmall'] = 0xF765; + t['Eta'] = 0x0397; + t['Etarmenian'] = 0x0538; + t['Etatonos'] = 0x0389; + t['Eth'] = 0x00D0; + t['Ethsmall'] = 0xF7F0; + t['Etilde'] = 0x1EBC; + t['Etildebelow'] = 0x1E1A; + t['Euro'] = 0x20AC; + t['Ezh'] = 0x01B7; + t['Ezhcaron'] = 0x01EE; + t['Ezhreversed'] = 0x01B8; + t['F'] = 0x0046; + t['Fcircle'] = 0x24BB; + t['Fdotaccent'] = 0x1E1E; + t['Feharmenian'] = 0x0556; + t['Feicoptic'] = 0x03E4; + t['Fhook'] = 0x0191; + t['Fitacyrillic'] = 0x0472; + t['Fiveroman'] = 0x2164; + t['Fmonospace'] = 0xFF26; + t['Fourroman'] = 0x2163; + t['Fsmall'] = 0xF766; + t['G'] = 0x0047; + t['GBsquare'] = 0x3387; + t['Gacute'] = 0x01F4; + t['Gamma'] = 0x0393; + t['Gammaafrican'] = 0x0194; + t['Gangiacoptic'] = 0x03EA; + t['Gbreve'] = 0x011E; + t['Gcaron'] = 0x01E6; + t['Gcedilla'] = 0x0122; + t['Gcircle'] = 0x24BC; + t['Gcircumflex'] = 0x011C; + t['Gcommaaccent'] = 0x0122; + t['Gdot'] = 0x0120; + t['Gdotaccent'] = 0x0120; + t['Gecyrillic'] = 0x0413; + t['Ghadarmenian'] = 0x0542; + t['Ghemiddlehookcyrillic'] = 0x0494; + t['Ghestrokecyrillic'] = 0x0492; + t['Gheupturncyrillic'] = 0x0490; + t['Ghook'] = 0x0193; + t['Gimarmenian'] = 0x0533; + t['Gjecyrillic'] = 0x0403; + t['Gmacron'] = 0x1E20; + t['Gmonospace'] = 0xFF27; + t['Grave'] = 0xF6CE; + t['Gravesmall'] = 0xF760; + t['Gsmall'] = 0xF767; + t['Gsmallhook'] = 0x029B; + t['Gstroke'] = 0x01E4; + t['H'] = 0x0048; + t['H18533'] = 0x25CF; + t['H18543'] = 0x25AA; + t['H18551'] = 0x25AB; + t['H22073'] = 0x25A1; + t['HPsquare'] = 0x33CB; + t['Haabkhasiancyrillic'] = 0x04A8; + t['Hadescendercyrillic'] = 0x04B2; + t['Hardsigncyrillic'] = 0x042A; + t['Hbar'] = 0x0126; + t['Hbrevebelow'] = 0x1E2A; + t['Hcedilla'] = 0x1E28; + t['Hcircle'] = 0x24BD; + t['Hcircumflex'] = 0x0124; + t['Hdieresis'] = 0x1E26; + t['Hdotaccent'] = 0x1E22; + t['Hdotbelow'] = 0x1E24; + t['Hmonospace'] = 0xFF28; + t['Hoarmenian'] = 0x0540; + t['Horicoptic'] = 0x03E8; + t['Hsmall'] = 0xF768; + t['Hungarumlaut'] = 0xF6CF; + t['Hungarumlautsmall'] = 0xF6F8; + t['Hzsquare'] = 0x3390; + t['I'] = 0x0049; + t['IAcyrillic'] = 0x042F; + t['IJ'] = 0x0132; + t['IUcyrillic'] = 0x042E; + t['Iacute'] = 0x00CD; + t['Iacutesmall'] = 0xF7ED; + t['Ibreve'] = 0x012C; + t['Icaron'] = 0x01CF; + t['Icircle'] = 0x24BE; + t['Icircumflex'] = 0x00CE; + t['Icircumflexsmall'] = 0xF7EE; + t['Icyrillic'] = 0x0406; + t['Idblgrave'] = 0x0208; + t['Idieresis'] = 0x00CF; + t['Idieresisacute'] = 0x1E2E; + t['Idieresiscyrillic'] = 0x04E4; + t['Idieresissmall'] = 0xF7EF; + t['Idot'] = 0x0130; + t['Idotaccent'] = 0x0130; + t['Idotbelow'] = 0x1ECA; + t['Iebrevecyrillic'] = 0x04D6; + t['Iecyrillic'] = 0x0415; + t['Ifraktur'] = 0x2111; + t['Igrave'] = 0x00CC; + t['Igravesmall'] = 0xF7EC; + t['Ihookabove'] = 0x1EC8; + t['Iicyrillic'] = 0x0418; + t['Iinvertedbreve'] = 0x020A; + t['Iishortcyrillic'] = 0x0419; + t['Imacron'] = 0x012A; + t['Imacroncyrillic'] = 0x04E2; + t['Imonospace'] = 0xFF29; + t['Iniarmenian'] = 0x053B; + t['Iocyrillic'] = 0x0401; + t['Iogonek'] = 0x012E; + t['Iota'] = 0x0399; + t['Iotaafrican'] = 0x0196; + t['Iotadieresis'] = 0x03AA; + t['Iotatonos'] = 0x038A; + t['Ismall'] = 0xF769; + t['Istroke'] = 0x0197; + t['Itilde'] = 0x0128; + t['Itildebelow'] = 0x1E2C; + t['Izhitsacyrillic'] = 0x0474; + t['Izhitsadblgravecyrillic'] = 0x0476; + t['J'] = 0x004A; + t['Jaarmenian'] = 0x0541; + t['Jcircle'] = 0x24BF; + t['Jcircumflex'] = 0x0134; + t['Jecyrillic'] = 0x0408; + t['Jheharmenian'] = 0x054B; + t['Jmonospace'] = 0xFF2A; + t['Jsmall'] = 0xF76A; + t['K'] = 0x004B; + t['KBsquare'] = 0x3385; + t['KKsquare'] = 0x33CD; + t['Kabashkircyrillic'] = 0x04A0; + t['Kacute'] = 0x1E30; + t['Kacyrillic'] = 0x041A; + t['Kadescendercyrillic'] = 0x049A; + t['Kahookcyrillic'] = 0x04C3; + t['Kappa'] = 0x039A; + t['Kastrokecyrillic'] = 0x049E; + t['Kaverticalstrokecyrillic'] = 0x049C; + t['Kcaron'] = 0x01E8; + t['Kcedilla'] = 0x0136; + t['Kcircle'] = 0x24C0; + t['Kcommaaccent'] = 0x0136; + t['Kdotbelow'] = 0x1E32; + t['Keharmenian'] = 0x0554; + t['Kenarmenian'] = 0x053F; + t['Khacyrillic'] = 0x0425; + t['Kheicoptic'] = 0x03E6; + t['Khook'] = 0x0198; + t['Kjecyrillic'] = 0x040C; + t['Klinebelow'] = 0x1E34; + t['Kmonospace'] = 0xFF2B; + t['Koppacyrillic'] = 0x0480; + t['Koppagreek'] = 0x03DE; + t['Ksicyrillic'] = 0x046E; + t['Ksmall'] = 0xF76B; + t['L'] = 0x004C; + t['LJ'] = 0x01C7; + t['LL'] = 0xF6BF; + t['Lacute'] = 0x0139; + t['Lambda'] = 0x039B; + t['Lcaron'] = 0x013D; + t['Lcedilla'] = 0x013B; + t['Lcircle'] = 0x24C1; + t['Lcircumflexbelow'] = 0x1E3C; + t['Lcommaaccent'] = 0x013B; + t['Ldot'] = 0x013F; + t['Ldotaccent'] = 0x013F; + t['Ldotbelow'] = 0x1E36; + t['Ldotbelowmacron'] = 0x1E38; + t['Liwnarmenian'] = 0x053C; + t['Lj'] = 0x01C8; + t['Ljecyrillic'] = 0x0409; + t['Llinebelow'] = 0x1E3A; + t['Lmonospace'] = 0xFF2C; + t['Lslash'] = 0x0141; + t['Lslashsmall'] = 0xF6F9; + t['Lsmall'] = 0xF76C; + t['M'] = 0x004D; + t['MBsquare'] = 0x3386; + t['Macron'] = 0xF6D0; + t['Macronsmall'] = 0xF7AF; + t['Macute'] = 0x1E3E; + t['Mcircle'] = 0x24C2; + t['Mdotaccent'] = 0x1E40; + t['Mdotbelow'] = 0x1E42; + t['Menarmenian'] = 0x0544; + t['Mmonospace'] = 0xFF2D; + t['Msmall'] = 0xF76D; + t['Mturned'] = 0x019C; + t['Mu'] = 0x039C; + t['N'] = 0x004E; + t['NJ'] = 0x01CA; + t['Nacute'] = 0x0143; + t['Ncaron'] = 0x0147; + t['Ncedilla'] = 0x0145; + t['Ncircle'] = 0x24C3; + t['Ncircumflexbelow'] = 0x1E4A; + t['Ncommaaccent'] = 0x0145; + t['Ndotaccent'] = 0x1E44; + t['Ndotbelow'] = 0x1E46; + t['Nhookleft'] = 0x019D; + t['Nineroman'] = 0x2168; + t['Nj'] = 0x01CB; + t['Njecyrillic'] = 0x040A; + t['Nlinebelow'] = 0x1E48; + t['Nmonospace'] = 0xFF2E; + t['Nowarmenian'] = 0x0546; + t['Nsmall'] = 0xF76E; + t['Ntilde'] = 0x00D1; + t['Ntildesmall'] = 0xF7F1; + t['Nu'] = 0x039D; + t['O'] = 0x004F; + t['OE'] = 0x0152; + t['OEsmall'] = 0xF6FA; + t['Oacute'] = 0x00D3; + t['Oacutesmall'] = 0xF7F3; + t['Obarredcyrillic'] = 0x04E8; + t['Obarreddieresiscyrillic'] = 0x04EA; + t['Obreve'] = 0x014E; + t['Ocaron'] = 0x01D1; + t['Ocenteredtilde'] = 0x019F; + t['Ocircle'] = 0x24C4; + t['Ocircumflex'] = 0x00D4; + t['Ocircumflexacute'] = 0x1ED0; + t['Ocircumflexdotbelow'] = 0x1ED8; + t['Ocircumflexgrave'] = 0x1ED2; + t['Ocircumflexhookabove'] = 0x1ED4; + t['Ocircumflexsmall'] = 0xF7F4; + t['Ocircumflextilde'] = 0x1ED6; + t['Ocyrillic'] = 0x041E; + t['Odblacute'] = 0x0150; + t['Odblgrave'] = 0x020C; + t['Odieresis'] = 0x00D6; + t['Odieresiscyrillic'] = 0x04E6; + t['Odieresissmall'] = 0xF7F6; + t['Odotbelow'] = 0x1ECC; + t['Ogoneksmall'] = 0xF6FB; + t['Ograve'] = 0x00D2; + t['Ogravesmall'] = 0xF7F2; + t['Oharmenian'] = 0x0555; + t['Ohm'] = 0x2126; + t['Ohookabove'] = 0x1ECE; + t['Ohorn'] = 0x01A0; + t['Ohornacute'] = 0x1EDA; + t['Ohorndotbelow'] = 0x1EE2; + t['Ohorngrave'] = 0x1EDC; + t['Ohornhookabove'] = 0x1EDE; + t['Ohorntilde'] = 0x1EE0; + t['Ohungarumlaut'] = 0x0150; + t['Oi'] = 0x01A2; + t['Oinvertedbreve'] = 0x020E; + t['Omacron'] = 0x014C; + t['Omacronacute'] = 0x1E52; + t['Omacrongrave'] = 0x1E50; + t['Omega'] = 0x2126; + t['Omegacyrillic'] = 0x0460; + t['Omegagreek'] = 0x03A9; + t['Omegaroundcyrillic'] = 0x047A; + t['Omegatitlocyrillic'] = 0x047C; + t['Omegatonos'] = 0x038F; + t['Omicron'] = 0x039F; + t['Omicrontonos'] = 0x038C; + t['Omonospace'] = 0xFF2F; + t['Oneroman'] = 0x2160; + t['Oogonek'] = 0x01EA; + t['Oogonekmacron'] = 0x01EC; + t['Oopen'] = 0x0186; + t['Oslash'] = 0x00D8; + t['Oslashacute'] = 0x01FE; + t['Oslashsmall'] = 0xF7F8; + t['Osmall'] = 0xF76F; + t['Ostrokeacute'] = 0x01FE; + t['Otcyrillic'] = 0x047E; + t['Otilde'] = 0x00D5; + t['Otildeacute'] = 0x1E4C; + t['Otildedieresis'] = 0x1E4E; + t['Otildesmall'] = 0xF7F5; + t['P'] = 0x0050; + t['Pacute'] = 0x1E54; + t['Pcircle'] = 0x24C5; + t['Pdotaccent'] = 0x1E56; + t['Pecyrillic'] = 0x041F; + t['Peharmenian'] = 0x054A; + t['Pemiddlehookcyrillic'] = 0x04A6; + t['Phi'] = 0x03A6; + t['Phook'] = 0x01A4; + t['Pi'] = 0x03A0; + t['Piwrarmenian'] = 0x0553; + t['Pmonospace'] = 0xFF30; + t['Psi'] = 0x03A8; + t['Psicyrillic'] = 0x0470; + t['Psmall'] = 0xF770; + t['Q'] = 0x0051; + t['Qcircle'] = 0x24C6; + t['Qmonospace'] = 0xFF31; + t['Qsmall'] = 0xF771; + t['R'] = 0x0052; + t['Raarmenian'] = 0x054C; + t['Racute'] = 0x0154; + t['Rcaron'] = 0x0158; + t['Rcedilla'] = 0x0156; + t['Rcircle'] = 0x24C7; + t['Rcommaaccent'] = 0x0156; + t['Rdblgrave'] = 0x0210; + t['Rdotaccent'] = 0x1E58; + t['Rdotbelow'] = 0x1E5A; + t['Rdotbelowmacron'] = 0x1E5C; + t['Reharmenian'] = 0x0550; + t['Rfraktur'] = 0x211C; + t['Rho'] = 0x03A1; + t['Ringsmall'] = 0xF6FC; + t['Rinvertedbreve'] = 0x0212; + t['Rlinebelow'] = 0x1E5E; + t['Rmonospace'] = 0xFF32; + t['Rsmall'] = 0xF772; + t['Rsmallinverted'] = 0x0281; + t['Rsmallinvertedsuperior'] = 0x02B6; + t['S'] = 0x0053; + t['SF010000'] = 0x250C; + t['SF020000'] = 0x2514; + t['SF030000'] = 0x2510; + t['SF040000'] = 0x2518; + t['SF050000'] = 0x253C; + t['SF060000'] = 0x252C; + t['SF070000'] = 0x2534; + t['SF080000'] = 0x251C; + t['SF090000'] = 0x2524; + t['SF100000'] = 0x2500; + t['SF110000'] = 0x2502; + t['SF190000'] = 0x2561; + t['SF200000'] = 0x2562; + t['SF210000'] = 0x2556; + t['SF220000'] = 0x2555; + t['SF230000'] = 0x2563; + t['SF240000'] = 0x2551; + t['SF250000'] = 0x2557; + t['SF260000'] = 0x255D; + t['SF270000'] = 0x255C; + t['SF280000'] = 0x255B; + t['SF360000'] = 0x255E; + t['SF370000'] = 0x255F; + t['SF380000'] = 0x255A; + t['SF390000'] = 0x2554; + t['SF400000'] = 0x2569; + t['SF410000'] = 0x2566; + t['SF420000'] = 0x2560; + t['SF430000'] = 0x2550; + t['SF440000'] = 0x256C; + t['SF450000'] = 0x2567; + t['SF460000'] = 0x2568; + t['SF470000'] = 0x2564; + t['SF480000'] = 0x2565; + t['SF490000'] = 0x2559; + t['SF500000'] = 0x2558; + t['SF510000'] = 0x2552; + t['SF520000'] = 0x2553; + t['SF530000'] = 0x256B; + t['SF540000'] = 0x256A; + t['Sacute'] = 0x015A; + t['Sacutedotaccent'] = 0x1E64; + t['Sampigreek'] = 0x03E0; + t['Scaron'] = 0x0160; + t['Scarondotaccent'] = 0x1E66; + t['Scaronsmall'] = 0xF6FD; + t['Scedilla'] = 0x015E; + t['Schwa'] = 0x018F; + t['Schwacyrillic'] = 0x04D8; + t['Schwadieresiscyrillic'] = 0x04DA; + t['Scircle'] = 0x24C8; + t['Scircumflex'] = 0x015C; + t['Scommaaccent'] = 0x0218; + t['Sdotaccent'] = 0x1E60; + t['Sdotbelow'] = 0x1E62; + t['Sdotbelowdotaccent'] = 0x1E68; + t['Seharmenian'] = 0x054D; + t['Sevenroman'] = 0x2166; + t['Shaarmenian'] = 0x0547; + t['Shacyrillic'] = 0x0428; + t['Shchacyrillic'] = 0x0429; + t['Sheicoptic'] = 0x03E2; + t['Shhacyrillic'] = 0x04BA; + t['Shimacoptic'] = 0x03EC; + t['Sigma'] = 0x03A3; + t['Sixroman'] = 0x2165; + t['Smonospace'] = 0xFF33; + t['Softsigncyrillic'] = 0x042C; + t['Ssmall'] = 0xF773; + t['Stigmagreek'] = 0x03DA; + t['T'] = 0x0054; + t['Tau'] = 0x03A4; + t['Tbar'] = 0x0166; + t['Tcaron'] = 0x0164; + t['Tcedilla'] = 0x0162; + t['Tcircle'] = 0x24C9; + t['Tcircumflexbelow'] = 0x1E70; + t['Tcommaaccent'] = 0x0162; + t['Tdotaccent'] = 0x1E6A; + t['Tdotbelow'] = 0x1E6C; + t['Tecyrillic'] = 0x0422; + t['Tedescendercyrillic'] = 0x04AC; + t['Tenroman'] = 0x2169; + t['Tetsecyrillic'] = 0x04B4; + t['Theta'] = 0x0398; + t['Thook'] = 0x01AC; + t['Thorn'] = 0x00DE; + t['Thornsmall'] = 0xF7FE; + t['Threeroman'] = 0x2162; + t['Tildesmall'] = 0xF6FE; + t['Tiwnarmenian'] = 0x054F; + t['Tlinebelow'] = 0x1E6E; + t['Tmonospace'] = 0xFF34; + t['Toarmenian'] = 0x0539; + t['Tonefive'] = 0x01BC; + t['Tonesix'] = 0x0184; + t['Tonetwo'] = 0x01A7; + t['Tretroflexhook'] = 0x01AE; + t['Tsecyrillic'] = 0x0426; + t['Tshecyrillic'] = 0x040B; + t['Tsmall'] = 0xF774; + t['Twelveroman'] = 0x216B; + t['Tworoman'] = 0x2161; + t['U'] = 0x0055; + t['Uacute'] = 0x00DA; + t['Uacutesmall'] = 0xF7FA; + t['Ubreve'] = 0x016C; + t['Ucaron'] = 0x01D3; + t['Ucircle'] = 0x24CA; + t['Ucircumflex'] = 0x00DB; + t['Ucircumflexbelow'] = 0x1E76; + t['Ucircumflexsmall'] = 0xF7FB; + t['Ucyrillic'] = 0x0423; + t['Udblacute'] = 0x0170; + t['Udblgrave'] = 0x0214; + t['Udieresis'] = 0x00DC; + t['Udieresisacute'] = 0x01D7; + t['Udieresisbelow'] = 0x1E72; + t['Udieresiscaron'] = 0x01D9; + t['Udieresiscyrillic'] = 0x04F0; + t['Udieresisgrave'] = 0x01DB; + t['Udieresismacron'] = 0x01D5; + t['Udieresissmall'] = 0xF7FC; + t['Udotbelow'] = 0x1EE4; + t['Ugrave'] = 0x00D9; + t['Ugravesmall'] = 0xF7F9; + t['Uhookabove'] = 0x1EE6; + t['Uhorn'] = 0x01AF; + t['Uhornacute'] = 0x1EE8; + t['Uhorndotbelow'] = 0x1EF0; + t['Uhorngrave'] = 0x1EEA; + t['Uhornhookabove'] = 0x1EEC; + t['Uhorntilde'] = 0x1EEE; + t['Uhungarumlaut'] = 0x0170; + t['Uhungarumlautcyrillic'] = 0x04F2; + t['Uinvertedbreve'] = 0x0216; + t['Ukcyrillic'] = 0x0478; + t['Umacron'] = 0x016A; + t['Umacroncyrillic'] = 0x04EE; + t['Umacrondieresis'] = 0x1E7A; + t['Umonospace'] = 0xFF35; + t['Uogonek'] = 0x0172; + t['Upsilon'] = 0x03A5; + t['Upsilon1'] = 0x03D2; + t['Upsilonacutehooksymbolgreek'] = 0x03D3; + t['Upsilonafrican'] = 0x01B1; + t['Upsilondieresis'] = 0x03AB; + t['Upsilondieresishooksymbolgreek'] = 0x03D4; + t['Upsilonhooksymbol'] = 0x03D2; + t['Upsilontonos'] = 0x038E; + t['Uring'] = 0x016E; + t['Ushortcyrillic'] = 0x040E; + t['Usmall'] = 0xF775; + t['Ustraightcyrillic'] = 0x04AE; + t['Ustraightstrokecyrillic'] = 0x04B0; + t['Utilde'] = 0x0168; + t['Utildeacute'] = 0x1E78; + t['Utildebelow'] = 0x1E74; + t['V'] = 0x0056; + t['Vcircle'] = 0x24CB; + t['Vdotbelow'] = 0x1E7E; + t['Vecyrillic'] = 0x0412; + t['Vewarmenian'] = 0x054E; + t['Vhook'] = 0x01B2; + t['Vmonospace'] = 0xFF36; + t['Voarmenian'] = 0x0548; + t['Vsmall'] = 0xF776; + t['Vtilde'] = 0x1E7C; + t['W'] = 0x0057; + t['Wacute'] = 0x1E82; + t['Wcircle'] = 0x24CC; + t['Wcircumflex'] = 0x0174; + t['Wdieresis'] = 0x1E84; + t['Wdotaccent'] = 0x1E86; + t['Wdotbelow'] = 0x1E88; + t['Wgrave'] = 0x1E80; + t['Wmonospace'] = 0xFF37; + t['Wsmall'] = 0xF777; + t['X'] = 0x0058; + t['Xcircle'] = 0x24CD; + t['Xdieresis'] = 0x1E8C; + t['Xdotaccent'] = 0x1E8A; + t['Xeharmenian'] = 0x053D; + t['Xi'] = 0x039E; + t['Xmonospace'] = 0xFF38; + t['Xsmall'] = 0xF778; + t['Y'] = 0x0059; + t['Yacute'] = 0x00DD; + t['Yacutesmall'] = 0xF7FD; + t['Yatcyrillic'] = 0x0462; + t['Ycircle'] = 0x24CE; + t['Ycircumflex'] = 0x0176; + t['Ydieresis'] = 0x0178; + t['Ydieresissmall'] = 0xF7FF; + t['Ydotaccent'] = 0x1E8E; + t['Ydotbelow'] = 0x1EF4; + t['Yericyrillic'] = 0x042B; + t['Yerudieresiscyrillic'] = 0x04F8; + t['Ygrave'] = 0x1EF2; + t['Yhook'] = 0x01B3; + t['Yhookabove'] = 0x1EF6; + t['Yiarmenian'] = 0x0545; + t['Yicyrillic'] = 0x0407; + t['Yiwnarmenian'] = 0x0552; + t['Ymonospace'] = 0xFF39; + t['Ysmall'] = 0xF779; + t['Ytilde'] = 0x1EF8; + t['Yusbigcyrillic'] = 0x046A; + t['Yusbigiotifiedcyrillic'] = 0x046C; + t['Yuslittlecyrillic'] = 0x0466; + t['Yuslittleiotifiedcyrillic'] = 0x0468; + t['Z'] = 0x005A; + t['Zaarmenian'] = 0x0536; + t['Zacute'] = 0x0179; + t['Zcaron'] = 0x017D; + t['Zcaronsmall'] = 0xF6FF; + t['Zcircle'] = 0x24CF; + t['Zcircumflex'] = 0x1E90; + t['Zdot'] = 0x017B; + t['Zdotaccent'] = 0x017B; + t['Zdotbelow'] = 0x1E92; + t['Zecyrillic'] = 0x0417; + t['Zedescendercyrillic'] = 0x0498; + t['Zedieresiscyrillic'] = 0x04DE; + t['Zeta'] = 0x0396; + t['Zhearmenian'] = 0x053A; + t['Zhebrevecyrillic'] = 0x04C1; + t['Zhecyrillic'] = 0x0416; + t['Zhedescendercyrillic'] = 0x0496; + t['Zhedieresiscyrillic'] = 0x04DC; + t['Zlinebelow'] = 0x1E94; + t['Zmonospace'] = 0xFF3A; + t['Zsmall'] = 0xF77A; + t['Zstroke'] = 0x01B5; + t['a'] = 0x0061; + t['aabengali'] = 0x0986; + t['aacute'] = 0x00E1; + t['aadeva'] = 0x0906; + t['aagujarati'] = 0x0A86; + t['aagurmukhi'] = 0x0A06; + t['aamatragurmukhi'] = 0x0A3E; + t['aarusquare'] = 0x3303; + t['aavowelsignbengali'] = 0x09BE; + t['aavowelsigndeva'] = 0x093E; + t['aavowelsigngujarati'] = 0x0ABE; + t['abbreviationmarkarmenian'] = 0x055F; + t['abbreviationsigndeva'] = 0x0970; + t['abengali'] = 0x0985; + t['abopomofo'] = 0x311A; + t['abreve'] = 0x0103; + t['abreveacute'] = 0x1EAF; + t['abrevecyrillic'] = 0x04D1; + t['abrevedotbelow'] = 0x1EB7; + t['abrevegrave'] = 0x1EB1; + t['abrevehookabove'] = 0x1EB3; + t['abrevetilde'] = 0x1EB5; + t['acaron'] = 0x01CE; + t['acircle'] = 0x24D0; + t['acircumflex'] = 0x00E2; + t['acircumflexacute'] = 0x1EA5; + t['acircumflexdotbelow'] = 0x1EAD; + t['acircumflexgrave'] = 0x1EA7; + t['acircumflexhookabove'] = 0x1EA9; + t['acircumflextilde'] = 0x1EAB; + t['acute'] = 0x00B4; + t['acutebelowcmb'] = 0x0317; + t['acutecmb'] = 0x0301; + t['acutecomb'] = 0x0301; + t['acutedeva'] = 0x0954; + t['acutelowmod'] = 0x02CF; + t['acutetonecmb'] = 0x0341; + t['acyrillic'] = 0x0430; + t['adblgrave'] = 0x0201; + t['addakgurmukhi'] = 0x0A71; + t['adeva'] = 0x0905; + t['adieresis'] = 0x00E4; + t['adieresiscyrillic'] = 0x04D3; + t['adieresismacron'] = 0x01DF; + t['adotbelow'] = 0x1EA1; + t['adotmacron'] = 0x01E1; + t['ae'] = 0x00E6; + t['aeacute'] = 0x01FD; + t['aekorean'] = 0x3150; + t['aemacron'] = 0x01E3; + t['afii00208'] = 0x2015; + t['afii08941'] = 0x20A4; + t['afii10017'] = 0x0410; + t['afii10018'] = 0x0411; + t['afii10019'] = 0x0412; + t['afii10020'] = 0x0413; + t['afii10021'] = 0x0414; + t['afii10022'] = 0x0415; + t['afii10023'] = 0x0401; + t['afii10024'] = 0x0416; + t['afii10025'] = 0x0417; + t['afii10026'] = 0x0418; + t['afii10027'] = 0x0419; + t['afii10028'] = 0x041A; + t['afii10029'] = 0x041B; + t['afii10030'] = 0x041C; + t['afii10031'] = 0x041D; + t['afii10032'] = 0x041E; + t['afii10033'] = 0x041F; + t['afii10034'] = 0x0420; + t['afii10035'] = 0x0421; + t['afii10036'] = 0x0422; + t['afii10037'] = 0x0423; + t['afii10038'] = 0x0424; + t['afii10039'] = 0x0425; + t['afii10040'] = 0x0426; + t['afii10041'] = 0x0427; + t['afii10042'] = 0x0428; + t['afii10043'] = 0x0429; + t['afii10044'] = 0x042A; + t['afii10045'] = 0x042B; + t['afii10046'] = 0x042C; + t['afii10047'] = 0x042D; + t['afii10048'] = 0x042E; + t['afii10049'] = 0x042F; + t['afii10050'] = 0x0490; + t['afii10051'] = 0x0402; + t['afii10052'] = 0x0403; + t['afii10053'] = 0x0404; + t['afii10054'] = 0x0405; + t['afii10055'] = 0x0406; + t['afii10056'] = 0x0407; + t['afii10057'] = 0x0408; + t['afii10058'] = 0x0409; + t['afii10059'] = 0x040A; + t['afii10060'] = 0x040B; + t['afii10061'] = 0x040C; + t['afii10062'] = 0x040E; + t['afii10063'] = 0xF6C4; + t['afii10064'] = 0xF6C5; + t['afii10065'] = 0x0430; + t['afii10066'] = 0x0431; + t['afii10067'] = 0x0432; + t['afii10068'] = 0x0433; + t['afii10069'] = 0x0434; + t['afii10070'] = 0x0435; + t['afii10071'] = 0x0451; + t['afii10072'] = 0x0436; + t['afii10073'] = 0x0437; + t['afii10074'] = 0x0438; + t['afii10075'] = 0x0439; + t['afii10076'] = 0x043A; + t['afii10077'] = 0x043B; + t['afii10078'] = 0x043C; + t['afii10079'] = 0x043D; + t['afii10080'] = 0x043E; + t['afii10081'] = 0x043F; + t['afii10082'] = 0x0440; + t['afii10083'] = 0x0441; + t['afii10084'] = 0x0442; + t['afii10085'] = 0x0443; + t['afii10086'] = 0x0444; + t['afii10087'] = 0x0445; + t['afii10088'] = 0x0446; + t['afii10089'] = 0x0447; + t['afii10090'] = 0x0448; + t['afii10091'] = 0x0449; + t['afii10092'] = 0x044A; + t['afii10093'] = 0x044B; + t['afii10094'] = 0x044C; + t['afii10095'] = 0x044D; + t['afii10096'] = 0x044E; + t['afii10097'] = 0x044F; + t['afii10098'] = 0x0491; + t['afii10099'] = 0x0452; + t['afii10100'] = 0x0453; + t['afii10101'] = 0x0454; + t['afii10102'] = 0x0455; + t['afii10103'] = 0x0456; + t['afii10104'] = 0x0457; + t['afii10105'] = 0x0458; + t['afii10106'] = 0x0459; + t['afii10107'] = 0x045A; + t['afii10108'] = 0x045B; + t['afii10109'] = 0x045C; + t['afii10110'] = 0x045E; + t['afii10145'] = 0x040F; + t['afii10146'] = 0x0462; + t['afii10147'] = 0x0472; + t['afii10148'] = 0x0474; + t['afii10192'] = 0xF6C6; + t['afii10193'] = 0x045F; + t['afii10194'] = 0x0463; + t['afii10195'] = 0x0473; + t['afii10196'] = 0x0475; + t['afii10831'] = 0xF6C7; + t['afii10832'] = 0xF6C8; + t['afii10846'] = 0x04D9; + t['afii299'] = 0x200E; + t['afii300'] = 0x200F; + t['afii301'] = 0x200D; + t['afii57381'] = 0x066A; + t['afii57388'] = 0x060C; + t['afii57392'] = 0x0660; + t['afii57393'] = 0x0661; + t['afii57394'] = 0x0662; + t['afii57395'] = 0x0663; + t['afii57396'] = 0x0664; + t['afii57397'] = 0x0665; + t['afii57398'] = 0x0666; + t['afii57399'] = 0x0667; + t['afii57400'] = 0x0668; + t['afii57401'] = 0x0669; + t['afii57403'] = 0x061B; + t['afii57407'] = 0x061F; + t['afii57409'] = 0x0621; + t['afii57410'] = 0x0622; + t['afii57411'] = 0x0623; + t['afii57412'] = 0x0624; + t['afii57413'] = 0x0625; + t['afii57414'] = 0x0626; + t['afii57415'] = 0x0627; + t['afii57416'] = 0x0628; + t['afii57417'] = 0x0629; + t['afii57418'] = 0x062A; + t['afii57419'] = 0x062B; + t['afii57420'] = 0x062C; + t['afii57421'] = 0x062D; + t['afii57422'] = 0x062E; + t['afii57423'] = 0x062F; + t['afii57424'] = 0x0630; + t['afii57425'] = 0x0631; + t['afii57426'] = 0x0632; + t['afii57427'] = 0x0633; + t['afii57428'] = 0x0634; + t['afii57429'] = 0x0635; + t['afii57430'] = 0x0636; + t['afii57431'] = 0x0637; + t['afii57432'] = 0x0638; + t['afii57433'] = 0x0639; + t['afii57434'] = 0x063A; + t['afii57440'] = 0x0640; + t['afii57441'] = 0x0641; + t['afii57442'] = 0x0642; + t['afii57443'] = 0x0643; + t['afii57444'] = 0x0644; + t['afii57445'] = 0x0645; + t['afii57446'] = 0x0646; + t['afii57448'] = 0x0648; + t['afii57449'] = 0x0649; + t['afii57450'] = 0x064A; + t['afii57451'] = 0x064B; + t['afii57452'] = 0x064C; + t['afii57453'] = 0x064D; + t['afii57454'] = 0x064E; + t['afii57455'] = 0x064F; + t['afii57456'] = 0x0650; + t['afii57457'] = 0x0651; + t['afii57458'] = 0x0652; + t['afii57470'] = 0x0647; + t['afii57505'] = 0x06A4; + t['afii57506'] = 0x067E; + t['afii57507'] = 0x0686; + t['afii57508'] = 0x0698; + t['afii57509'] = 0x06AF; + t['afii57511'] = 0x0679; + t['afii57512'] = 0x0688; + t['afii57513'] = 0x0691; + t['afii57514'] = 0x06BA; + t['afii57519'] = 0x06D2; + t['afii57534'] = 0x06D5; + t['afii57636'] = 0x20AA; + t['afii57645'] = 0x05BE; + t['afii57658'] = 0x05C3; + t['afii57664'] = 0x05D0; + t['afii57665'] = 0x05D1; + t['afii57666'] = 0x05D2; + t['afii57667'] = 0x05D3; + t['afii57668'] = 0x05D4; + t['afii57669'] = 0x05D5; + t['afii57670'] = 0x05D6; + t['afii57671'] = 0x05D7; + t['afii57672'] = 0x05D8; + t['afii57673'] = 0x05D9; + t['afii57674'] = 0x05DA; + t['afii57675'] = 0x05DB; + t['afii57676'] = 0x05DC; + t['afii57677'] = 0x05DD; + t['afii57678'] = 0x05DE; + t['afii57679'] = 0x05DF; + t['afii57680'] = 0x05E0; + t['afii57681'] = 0x05E1; + t['afii57682'] = 0x05E2; + t['afii57683'] = 0x05E3; + t['afii57684'] = 0x05E4; + t['afii57685'] = 0x05E5; + t['afii57686'] = 0x05E6; + t['afii57687'] = 0x05E7; + t['afii57688'] = 0x05E8; + t['afii57689'] = 0x05E9; + t['afii57690'] = 0x05EA; + t['afii57694'] = 0xFB2A; + t['afii57695'] = 0xFB2B; + t['afii57700'] = 0xFB4B; + t['afii57705'] = 0xFB1F; + t['afii57716'] = 0x05F0; + t['afii57717'] = 0x05F1; + t['afii57718'] = 0x05F2; + t['afii57723'] = 0xFB35; + t['afii57793'] = 0x05B4; + t['afii57794'] = 0x05B5; + t['afii57795'] = 0x05B6; + t['afii57796'] = 0x05BB; + t['afii57797'] = 0x05B8; + t['afii57798'] = 0x05B7; + t['afii57799'] = 0x05B0; + t['afii57800'] = 0x05B2; + t['afii57801'] = 0x05B1; + t['afii57802'] = 0x05B3; + t['afii57803'] = 0x05C2; + t['afii57804'] = 0x05C1; + t['afii57806'] = 0x05B9; + t['afii57807'] = 0x05BC; + t['afii57839'] = 0x05BD; + t['afii57841'] = 0x05BF; + t['afii57842'] = 0x05C0; + t['afii57929'] = 0x02BC; + t['afii61248'] = 0x2105; + t['afii61289'] = 0x2113; + t['afii61352'] = 0x2116; + t['afii61573'] = 0x202C; + t['afii61574'] = 0x202D; + t['afii61575'] = 0x202E; + t['afii61664'] = 0x200C; + t['afii63167'] = 0x066D; + t['afii64937'] = 0x02BD; + t['agrave'] = 0x00E0; + t['agujarati'] = 0x0A85; + t['agurmukhi'] = 0x0A05; + t['ahiragana'] = 0x3042; + t['ahookabove'] = 0x1EA3; + t['aibengali'] = 0x0990; + t['aibopomofo'] = 0x311E; + t['aideva'] = 0x0910; + t['aiecyrillic'] = 0x04D5; + t['aigujarati'] = 0x0A90; + t['aigurmukhi'] = 0x0A10; + t['aimatragurmukhi'] = 0x0A48; + t['ainarabic'] = 0x0639; + t['ainfinalarabic'] = 0xFECA; + t['aininitialarabic'] = 0xFECB; + t['ainmedialarabic'] = 0xFECC; + t['ainvertedbreve'] = 0x0203; + t['aivowelsignbengali'] = 0x09C8; + t['aivowelsigndeva'] = 0x0948; + t['aivowelsigngujarati'] = 0x0AC8; + t['akatakana'] = 0x30A2; + t['akatakanahalfwidth'] = 0xFF71; + t['akorean'] = 0x314F; + t['alef'] = 0x05D0; + t['alefarabic'] = 0x0627; + t['alefdageshhebrew'] = 0xFB30; + t['aleffinalarabic'] = 0xFE8E; + t['alefhamzaabovearabic'] = 0x0623; + t['alefhamzaabovefinalarabic'] = 0xFE84; + t['alefhamzabelowarabic'] = 0x0625; + t['alefhamzabelowfinalarabic'] = 0xFE88; + t['alefhebrew'] = 0x05D0; + t['aleflamedhebrew'] = 0xFB4F; + t['alefmaddaabovearabic'] = 0x0622; + t['alefmaddaabovefinalarabic'] = 0xFE82; + t['alefmaksuraarabic'] = 0x0649; + t['alefmaksurafinalarabic'] = 0xFEF0; + t['alefmaksurainitialarabic'] = 0xFEF3; + t['alefmaksuramedialarabic'] = 0xFEF4; + t['alefpatahhebrew'] = 0xFB2E; + t['alefqamatshebrew'] = 0xFB2F; + t['aleph'] = 0x2135; + t['allequal'] = 0x224C; + t['alpha'] = 0x03B1; + t['alphatonos'] = 0x03AC; + t['amacron'] = 0x0101; + t['amonospace'] = 0xFF41; + t['ampersand'] = 0x0026; + t['ampersandmonospace'] = 0xFF06; + t['ampersandsmall'] = 0xF726; + t['amsquare'] = 0x33C2; + t['anbopomofo'] = 0x3122; + t['angbopomofo'] = 0x3124; + t['angbracketleft'] = 0x3008; + t['angbracketright'] = 0x3009; + t['angkhankhuthai'] = 0x0E5A; + t['angle'] = 0x2220; + t['anglebracketleft'] = 0x3008; + t['anglebracketleftvertical'] = 0xFE3F; + t['anglebracketright'] = 0x3009; + t['anglebracketrightvertical'] = 0xFE40; + t['angleleft'] = 0x2329; + t['angleright'] = 0x232A; + t['angstrom'] = 0x212B; + t['anoteleia'] = 0x0387; + t['anudattadeva'] = 0x0952; + t['anusvarabengali'] = 0x0982; + t['anusvaradeva'] = 0x0902; + t['anusvaragujarati'] = 0x0A82; + t['aogonek'] = 0x0105; + t['apaatosquare'] = 0x3300; + t['aparen'] = 0x249C; + t['apostrophearmenian'] = 0x055A; + t['apostrophemod'] = 0x02BC; + t['apple'] = 0xF8FF; + t['approaches'] = 0x2250; + t['approxequal'] = 0x2248; + t['approxequalorimage'] = 0x2252; + t['approximatelyequal'] = 0x2245; + t['araeaekorean'] = 0x318E; + t['araeakorean'] = 0x318D; + t['arc'] = 0x2312; + t['arighthalfring'] = 0x1E9A; + t['aring'] = 0x00E5; + t['aringacute'] = 0x01FB; + t['aringbelow'] = 0x1E01; + t['arrowboth'] = 0x2194; + t['arrowdashdown'] = 0x21E3; + t['arrowdashleft'] = 0x21E0; + t['arrowdashright'] = 0x21E2; + t['arrowdashup'] = 0x21E1; + t['arrowdblboth'] = 0x21D4; + t['arrowdbldown'] = 0x21D3; + t['arrowdblleft'] = 0x21D0; + t['arrowdblright'] = 0x21D2; + t['arrowdblup'] = 0x21D1; + t['arrowdown'] = 0x2193; + t['arrowdownleft'] = 0x2199; + t['arrowdownright'] = 0x2198; + t['arrowdownwhite'] = 0x21E9; + t['arrowheaddownmod'] = 0x02C5; + t['arrowheadleftmod'] = 0x02C2; + t['arrowheadrightmod'] = 0x02C3; + t['arrowheadupmod'] = 0x02C4; + t['arrowhorizex'] = 0xF8E7; + t['arrowleft'] = 0x2190; + t['arrowleftdbl'] = 0x21D0; + t['arrowleftdblstroke'] = 0x21CD; + t['arrowleftoverright'] = 0x21C6; + t['arrowleftwhite'] = 0x21E6; + t['arrowright'] = 0x2192; + t['arrowrightdblstroke'] = 0x21CF; + t['arrowrightheavy'] = 0x279E; + t['arrowrightoverleft'] = 0x21C4; + t['arrowrightwhite'] = 0x21E8; + t['arrowtableft'] = 0x21E4; + t['arrowtabright'] = 0x21E5; + t['arrowup'] = 0x2191; + t['arrowupdn'] = 0x2195; + t['arrowupdnbse'] = 0x21A8; + t['arrowupdownbase'] = 0x21A8; + t['arrowupleft'] = 0x2196; + t['arrowupleftofdown'] = 0x21C5; + t['arrowupright'] = 0x2197; + t['arrowupwhite'] = 0x21E7; + t['arrowvertex'] = 0xF8E6; + t['asciicircum'] = 0x005E; + t['asciicircummonospace'] = 0xFF3E; + t['asciitilde'] = 0x007E; + t['asciitildemonospace'] = 0xFF5E; + t['ascript'] = 0x0251; + t['ascriptturned'] = 0x0252; + t['asmallhiragana'] = 0x3041; + t['asmallkatakana'] = 0x30A1; + t['asmallkatakanahalfwidth'] = 0xFF67; + t['asterisk'] = 0x002A; + t['asteriskaltonearabic'] = 0x066D; + t['asteriskarabic'] = 0x066D; + t['asteriskmath'] = 0x2217; + t['asteriskmonospace'] = 0xFF0A; + t['asterisksmall'] = 0xFE61; + t['asterism'] = 0x2042; + t['asuperior'] = 0xF6E9; + t['asymptoticallyequal'] = 0x2243; + t['at'] = 0x0040; + t['atilde'] = 0x00E3; + t['atmonospace'] = 0xFF20; + t['atsmall'] = 0xFE6B; + t['aturned'] = 0x0250; + t['aubengali'] = 0x0994; + t['aubopomofo'] = 0x3120; + t['audeva'] = 0x0914; + t['augujarati'] = 0x0A94; + t['augurmukhi'] = 0x0A14; + t['aulengthmarkbengali'] = 0x09D7; + t['aumatragurmukhi'] = 0x0A4C; + t['auvowelsignbengali'] = 0x09CC; + t['auvowelsigndeva'] = 0x094C; + t['auvowelsigngujarati'] = 0x0ACC; + t['avagrahadeva'] = 0x093D; + t['aybarmenian'] = 0x0561; + t['ayin'] = 0x05E2; + t['ayinaltonehebrew'] = 0xFB20; + t['ayinhebrew'] = 0x05E2; + t['b'] = 0x0062; + t['babengali'] = 0x09AC; + t['backslash'] = 0x005C; + t['backslashmonospace'] = 0xFF3C; + t['badeva'] = 0x092C; + t['bagujarati'] = 0x0AAC; + t['bagurmukhi'] = 0x0A2C; + t['bahiragana'] = 0x3070; + t['bahtthai'] = 0x0E3F; + t['bakatakana'] = 0x30D0; + t['bar'] = 0x007C; + t['barmonospace'] = 0xFF5C; + t['bbopomofo'] = 0x3105; + t['bcircle'] = 0x24D1; + t['bdotaccent'] = 0x1E03; + t['bdotbelow'] = 0x1E05; + t['beamedsixteenthnotes'] = 0x266C; + t['because'] = 0x2235; + t['becyrillic'] = 0x0431; + t['beharabic'] = 0x0628; + t['behfinalarabic'] = 0xFE90; + t['behinitialarabic'] = 0xFE91; + t['behiragana'] = 0x3079; + t['behmedialarabic'] = 0xFE92; + t['behmeeminitialarabic'] = 0xFC9F; + t['behmeemisolatedarabic'] = 0xFC08; + t['behnoonfinalarabic'] = 0xFC6D; + t['bekatakana'] = 0x30D9; + t['benarmenian'] = 0x0562; + t['bet'] = 0x05D1; + t['beta'] = 0x03B2; + t['betasymbolgreek'] = 0x03D0; + t['betdagesh'] = 0xFB31; + t['betdageshhebrew'] = 0xFB31; + t['bethebrew'] = 0x05D1; + t['betrafehebrew'] = 0xFB4C; + t['bhabengali'] = 0x09AD; + t['bhadeva'] = 0x092D; + t['bhagujarati'] = 0x0AAD; + t['bhagurmukhi'] = 0x0A2D; + t['bhook'] = 0x0253; + t['bihiragana'] = 0x3073; + t['bikatakana'] = 0x30D3; + t['bilabialclick'] = 0x0298; + t['bindigurmukhi'] = 0x0A02; + t['birusquare'] = 0x3331; + t['blackcircle'] = 0x25CF; + t['blackdiamond'] = 0x25C6; + t['blackdownpointingtriangle'] = 0x25BC; + t['blackleftpointingpointer'] = 0x25C4; + t['blackleftpointingtriangle'] = 0x25C0; + t['blacklenticularbracketleft'] = 0x3010; + t['blacklenticularbracketleftvertical'] = 0xFE3B; + t['blacklenticularbracketright'] = 0x3011; + t['blacklenticularbracketrightvertical'] = 0xFE3C; + t['blacklowerlefttriangle'] = 0x25E3; + t['blacklowerrighttriangle'] = 0x25E2; + t['blackrectangle'] = 0x25AC; + t['blackrightpointingpointer'] = 0x25BA; + t['blackrightpointingtriangle'] = 0x25B6; + t['blacksmallsquare'] = 0x25AA; + t['blacksmilingface'] = 0x263B; + t['blacksquare'] = 0x25A0; + t['blackstar'] = 0x2605; + t['blackupperlefttriangle'] = 0x25E4; + t['blackupperrighttriangle'] = 0x25E5; + t['blackuppointingsmalltriangle'] = 0x25B4; + t['blackuppointingtriangle'] = 0x25B2; + t['blank'] = 0x2423; + t['blinebelow'] = 0x1E07; + t['block'] = 0x2588; + t['bmonospace'] = 0xFF42; + t['bobaimaithai'] = 0x0E1A; + t['bohiragana'] = 0x307C; + t['bokatakana'] = 0x30DC; + t['bparen'] = 0x249D; + t['bqsquare'] = 0x33C3; + t['braceex'] = 0xF8F4; + t['braceleft'] = 0x007B; + t['braceleftbt'] = 0xF8F3; + t['braceleftmid'] = 0xF8F2; + t['braceleftmonospace'] = 0xFF5B; + t['braceleftsmall'] = 0xFE5B; + t['bracelefttp'] = 0xF8F1; + t['braceleftvertical'] = 0xFE37; + t['braceright'] = 0x007D; + t['bracerightbt'] = 0xF8FE; + t['bracerightmid'] = 0xF8FD; + t['bracerightmonospace'] = 0xFF5D; + t['bracerightsmall'] = 0xFE5C; + t['bracerighttp'] = 0xF8FC; + t['bracerightvertical'] = 0xFE38; + t['bracketleft'] = 0x005B; + t['bracketleftbt'] = 0xF8F0; + t['bracketleftex'] = 0xF8EF; + t['bracketleftmonospace'] = 0xFF3B; + t['bracketlefttp'] = 0xF8EE; + t['bracketright'] = 0x005D; + t['bracketrightbt'] = 0xF8FB; + t['bracketrightex'] = 0xF8FA; + t['bracketrightmonospace'] = 0xFF3D; + t['bracketrighttp'] = 0xF8F9; + t['breve'] = 0x02D8; + t['brevebelowcmb'] = 0x032E; + t['brevecmb'] = 0x0306; + t['breveinvertedbelowcmb'] = 0x032F; + t['breveinvertedcmb'] = 0x0311; + t['breveinverteddoublecmb'] = 0x0361; + t['bridgebelowcmb'] = 0x032A; + t['bridgeinvertedbelowcmb'] = 0x033A; + t['brokenbar'] = 0x00A6; + t['bstroke'] = 0x0180; + t['bsuperior'] = 0xF6EA; + t['btopbar'] = 0x0183; + t['buhiragana'] = 0x3076; + t['bukatakana'] = 0x30D6; + t['bullet'] = 0x2022; + t['bulletinverse'] = 0x25D8; + t['bulletoperator'] = 0x2219; + t['bullseye'] = 0x25CE; + t['c'] = 0x0063; + t['caarmenian'] = 0x056E; + t['cabengali'] = 0x099A; + t['cacute'] = 0x0107; + t['cadeva'] = 0x091A; + t['cagujarati'] = 0x0A9A; + t['cagurmukhi'] = 0x0A1A; + t['calsquare'] = 0x3388; + t['candrabindubengali'] = 0x0981; + t['candrabinducmb'] = 0x0310; + t['candrabindudeva'] = 0x0901; + t['candrabindugujarati'] = 0x0A81; + t['capslock'] = 0x21EA; + t['careof'] = 0x2105; + t['caron'] = 0x02C7; + t['caronbelowcmb'] = 0x032C; + t['caroncmb'] = 0x030C; + t['carriagereturn'] = 0x21B5; + t['cbopomofo'] = 0x3118; + t['ccaron'] = 0x010D; + t['ccedilla'] = 0x00E7; + t['ccedillaacute'] = 0x1E09; + t['ccircle'] = 0x24D2; + t['ccircumflex'] = 0x0109; + t['ccurl'] = 0x0255; + t['cdot'] = 0x010B; + t['cdotaccent'] = 0x010B; + t['cdsquare'] = 0x33C5; + t['cedilla'] = 0x00B8; + t['cedillacmb'] = 0x0327; + t['cent'] = 0x00A2; + t['centigrade'] = 0x2103; + t['centinferior'] = 0xF6DF; + t['centmonospace'] = 0xFFE0; + t['centoldstyle'] = 0xF7A2; + t['centsuperior'] = 0xF6E0; + t['chaarmenian'] = 0x0579; + t['chabengali'] = 0x099B; + t['chadeva'] = 0x091B; + t['chagujarati'] = 0x0A9B; + t['chagurmukhi'] = 0x0A1B; + t['chbopomofo'] = 0x3114; + t['cheabkhasiancyrillic'] = 0x04BD; + t['checkmark'] = 0x2713; + t['checyrillic'] = 0x0447; + t['chedescenderabkhasiancyrillic'] = 0x04BF; + t['chedescendercyrillic'] = 0x04B7; + t['chedieresiscyrillic'] = 0x04F5; + t['cheharmenian'] = 0x0573; + t['chekhakassiancyrillic'] = 0x04CC; + t['cheverticalstrokecyrillic'] = 0x04B9; + t['chi'] = 0x03C7; + t['chieuchacirclekorean'] = 0x3277; + t['chieuchaparenkorean'] = 0x3217; + t['chieuchcirclekorean'] = 0x3269; + t['chieuchkorean'] = 0x314A; + t['chieuchparenkorean'] = 0x3209; + t['chochangthai'] = 0x0E0A; + t['chochanthai'] = 0x0E08; + t['chochingthai'] = 0x0E09; + t['chochoethai'] = 0x0E0C; + t['chook'] = 0x0188; + t['cieucacirclekorean'] = 0x3276; + t['cieucaparenkorean'] = 0x3216; + t['cieuccirclekorean'] = 0x3268; + t['cieuckorean'] = 0x3148; + t['cieucparenkorean'] = 0x3208; + t['cieucuparenkorean'] = 0x321C; + t['circle'] = 0x25CB; + t['circlecopyrt'] = 0x00A9; + t['circlemultiply'] = 0x2297; + t['circleot'] = 0x2299; + t['circleplus'] = 0x2295; + t['circlepostalmark'] = 0x3036; + t['circlewithlefthalfblack'] = 0x25D0; + t['circlewithrighthalfblack'] = 0x25D1; + t['circumflex'] = 0x02C6; + t['circumflexbelowcmb'] = 0x032D; + t['circumflexcmb'] = 0x0302; + t['clear'] = 0x2327; + t['clickalveolar'] = 0x01C2; + t['clickdental'] = 0x01C0; + t['clicklateral'] = 0x01C1; + t['clickretroflex'] = 0x01C3; + t['club'] = 0x2663; + t['clubsuitblack'] = 0x2663; + t['clubsuitwhite'] = 0x2667; + t['cmcubedsquare'] = 0x33A4; + t['cmonospace'] = 0xFF43; + t['cmsquaredsquare'] = 0x33A0; + t['coarmenian'] = 0x0581; + t['colon'] = 0x003A; + t['colonmonetary'] = 0x20A1; + t['colonmonospace'] = 0xFF1A; + t['colonsign'] = 0x20A1; + t['colonsmall'] = 0xFE55; + t['colontriangularhalfmod'] = 0x02D1; + t['colontriangularmod'] = 0x02D0; + t['comma'] = 0x002C; + t['commaabovecmb'] = 0x0313; + t['commaaboverightcmb'] = 0x0315; + t['commaaccent'] = 0xF6C3; + t['commaarabic'] = 0x060C; + t['commaarmenian'] = 0x055D; + t['commainferior'] = 0xF6E1; + t['commamonospace'] = 0xFF0C; + t['commareversedabovecmb'] = 0x0314; + t['commareversedmod'] = 0x02BD; + t['commasmall'] = 0xFE50; + t['commasuperior'] = 0xF6E2; + t['commaturnedabovecmb'] = 0x0312; + t['commaturnedmod'] = 0x02BB; + t['compass'] = 0x263C; + t['congruent'] = 0x2245; + t['contourintegral'] = 0x222E; + t['control'] = 0x2303; + t['controlACK'] = 0x0006; + t['controlBEL'] = 0x0007; + t['controlBS'] = 0x0008; + t['controlCAN'] = 0x0018; + t['controlCR'] = 0x000D; + t['controlDC1'] = 0x0011; + t['controlDC2'] = 0x0012; + t['controlDC3'] = 0x0013; + t['controlDC4'] = 0x0014; + t['controlDEL'] = 0x007F; + t['controlDLE'] = 0x0010; + t['controlEM'] = 0x0019; + t['controlENQ'] = 0x0005; + t['controlEOT'] = 0x0004; + t['controlESC'] = 0x001B; + t['controlETB'] = 0x0017; + t['controlETX'] = 0x0003; + t['controlFF'] = 0x000C; + t['controlFS'] = 0x001C; + t['controlGS'] = 0x001D; + t['controlHT'] = 0x0009; + t['controlLF'] = 0x000A; + t['controlNAK'] = 0x0015; + t['controlNULL'] = 0x0000; + t['controlRS'] = 0x001E; + t['controlSI'] = 0x000F; + t['controlSO'] = 0x000E; + t['controlSOT'] = 0x0002; + t['controlSTX'] = 0x0001; + t['controlSUB'] = 0x001A; + t['controlSYN'] = 0x0016; + t['controlUS'] = 0x001F; + t['controlVT'] = 0x000B; + t['copyright'] = 0x00A9; + t['copyrightsans'] = 0xF8E9; + t['copyrightserif'] = 0xF6D9; + t['cornerbracketleft'] = 0x300C; + t['cornerbracketlefthalfwidth'] = 0xFF62; + t['cornerbracketleftvertical'] = 0xFE41; + t['cornerbracketright'] = 0x300D; + t['cornerbracketrighthalfwidth'] = 0xFF63; + t['cornerbracketrightvertical'] = 0xFE42; + t['corporationsquare'] = 0x337F; + t['cosquare'] = 0x33C7; + t['coverkgsquare'] = 0x33C6; + t['cparen'] = 0x249E; + t['cruzeiro'] = 0x20A2; + t['cstretched'] = 0x0297; + t['curlyand'] = 0x22CF; + t['curlyor'] = 0x22CE; + t['currency'] = 0x00A4; + t['cyrBreve'] = 0xF6D1; + t['cyrFlex'] = 0xF6D2; + t['cyrbreve'] = 0xF6D4; + t['cyrflex'] = 0xF6D5; + t['d'] = 0x0064; + t['daarmenian'] = 0x0564; + t['dabengali'] = 0x09A6; + t['dadarabic'] = 0x0636; + t['dadeva'] = 0x0926; + t['dadfinalarabic'] = 0xFEBE; + t['dadinitialarabic'] = 0xFEBF; + t['dadmedialarabic'] = 0xFEC0; + t['dagesh'] = 0x05BC; + t['dageshhebrew'] = 0x05BC; + t['dagger'] = 0x2020; + t['daggerdbl'] = 0x2021; + t['dagujarati'] = 0x0AA6; + t['dagurmukhi'] = 0x0A26; + t['dahiragana'] = 0x3060; + t['dakatakana'] = 0x30C0; + t['dalarabic'] = 0x062F; + t['dalet'] = 0x05D3; + t['daletdagesh'] = 0xFB33; + t['daletdageshhebrew'] = 0xFB33; + t['dalethebrew'] = 0x05D3; + t['dalfinalarabic'] = 0xFEAA; + t['dammaarabic'] = 0x064F; + t['dammalowarabic'] = 0x064F; + t['dammatanaltonearabic'] = 0x064C; + t['dammatanarabic'] = 0x064C; + t['danda'] = 0x0964; + t['dargahebrew'] = 0x05A7; + t['dargalefthebrew'] = 0x05A7; + t['dasiapneumatacyrilliccmb'] = 0x0485; + t['dblGrave'] = 0xF6D3; + t['dblanglebracketleft'] = 0x300A; + t['dblanglebracketleftvertical'] = 0xFE3D; + t['dblanglebracketright'] = 0x300B; + t['dblanglebracketrightvertical'] = 0xFE3E; + t['dblarchinvertedbelowcmb'] = 0x032B; + t['dblarrowleft'] = 0x21D4; + t['dblarrowright'] = 0x21D2; + t['dbldanda'] = 0x0965; + t['dblgrave'] = 0xF6D6; + t['dblgravecmb'] = 0x030F; + t['dblintegral'] = 0x222C; + t['dbllowline'] = 0x2017; + t['dbllowlinecmb'] = 0x0333; + t['dbloverlinecmb'] = 0x033F; + t['dblprimemod'] = 0x02BA; + t['dblverticalbar'] = 0x2016; + t['dblverticallineabovecmb'] = 0x030E; + t['dbopomofo'] = 0x3109; + t['dbsquare'] = 0x33C8; + t['dcaron'] = 0x010F; + t['dcedilla'] = 0x1E11; + t['dcircle'] = 0x24D3; + t['dcircumflexbelow'] = 0x1E13; + t['dcroat'] = 0x0111; + t['ddabengali'] = 0x09A1; + t['ddadeva'] = 0x0921; + t['ddagujarati'] = 0x0AA1; + t['ddagurmukhi'] = 0x0A21; + t['ddalarabic'] = 0x0688; + t['ddalfinalarabic'] = 0xFB89; + t['dddhadeva'] = 0x095C; + t['ddhabengali'] = 0x09A2; + t['ddhadeva'] = 0x0922; + t['ddhagujarati'] = 0x0AA2; + t['ddhagurmukhi'] = 0x0A22; + t['ddotaccent'] = 0x1E0B; + t['ddotbelow'] = 0x1E0D; + t['decimalseparatorarabic'] = 0x066B; + t['decimalseparatorpersian'] = 0x066B; + t['decyrillic'] = 0x0434; + t['degree'] = 0x00B0; + t['dehihebrew'] = 0x05AD; + t['dehiragana'] = 0x3067; + t['deicoptic'] = 0x03EF; + t['dekatakana'] = 0x30C7; + t['deleteleft'] = 0x232B; + t['deleteright'] = 0x2326; + t['delta'] = 0x03B4; + t['deltaturned'] = 0x018D; + t['denominatorminusonenumeratorbengali'] = 0x09F8; + t['dezh'] = 0x02A4; + t['dhabengali'] = 0x09A7; + t['dhadeva'] = 0x0927; + t['dhagujarati'] = 0x0AA7; + t['dhagurmukhi'] = 0x0A27; + t['dhook'] = 0x0257; + t['dialytikatonos'] = 0x0385; + t['dialytikatonoscmb'] = 0x0344; + t['diamond'] = 0x2666; + t['diamondsuitwhite'] = 0x2662; + t['dieresis'] = 0x00A8; + t['dieresisacute'] = 0xF6D7; + t['dieresisbelowcmb'] = 0x0324; + t['dieresiscmb'] = 0x0308; + t['dieresisgrave'] = 0xF6D8; + t['dieresistonos'] = 0x0385; + t['dihiragana'] = 0x3062; + t['dikatakana'] = 0x30C2; + t['dittomark'] = 0x3003; + t['divide'] = 0x00F7; + t['divides'] = 0x2223; + t['divisionslash'] = 0x2215; + t['djecyrillic'] = 0x0452; + t['dkshade'] = 0x2593; + t['dlinebelow'] = 0x1E0F; + t['dlsquare'] = 0x3397; + t['dmacron'] = 0x0111; + t['dmonospace'] = 0xFF44; + t['dnblock'] = 0x2584; + t['dochadathai'] = 0x0E0E; + t['dodekthai'] = 0x0E14; + t['dohiragana'] = 0x3069; + t['dokatakana'] = 0x30C9; + t['dollar'] = 0x0024; + t['dollarinferior'] = 0xF6E3; + t['dollarmonospace'] = 0xFF04; + t['dollaroldstyle'] = 0xF724; + t['dollarsmall'] = 0xFE69; + t['dollarsuperior'] = 0xF6E4; + t['dong'] = 0x20AB; + t['dorusquare'] = 0x3326; + t['dotaccent'] = 0x02D9; + t['dotaccentcmb'] = 0x0307; + t['dotbelowcmb'] = 0x0323; + t['dotbelowcomb'] = 0x0323; + t['dotkatakana'] = 0x30FB; + t['dotlessi'] = 0x0131; + t['dotlessj'] = 0xF6BE; + t['dotlessjstrokehook'] = 0x0284; + t['dotmath'] = 0x22C5; + t['dottedcircle'] = 0x25CC; + t['doubleyodpatah'] = 0xFB1F; + t['doubleyodpatahhebrew'] = 0xFB1F; + t['downtackbelowcmb'] = 0x031E; + t['downtackmod'] = 0x02D5; + t['dparen'] = 0x249F; + t['dsuperior'] = 0xF6EB; + t['dtail'] = 0x0256; + t['dtopbar'] = 0x018C; + t['duhiragana'] = 0x3065; + t['dukatakana'] = 0x30C5; + t['dz'] = 0x01F3; + t['dzaltone'] = 0x02A3; + t['dzcaron'] = 0x01C6; + t['dzcurl'] = 0x02A5; + t['dzeabkhasiancyrillic'] = 0x04E1; + t['dzecyrillic'] = 0x0455; + t['dzhecyrillic'] = 0x045F; + t['e'] = 0x0065; + t['eacute'] = 0x00E9; + t['earth'] = 0x2641; + t['ebengali'] = 0x098F; + t['ebopomofo'] = 0x311C; + t['ebreve'] = 0x0115; + t['ecandradeva'] = 0x090D; + t['ecandragujarati'] = 0x0A8D; + t['ecandravowelsigndeva'] = 0x0945; + t['ecandravowelsigngujarati'] = 0x0AC5; + t['ecaron'] = 0x011B; + t['ecedillabreve'] = 0x1E1D; + t['echarmenian'] = 0x0565; + t['echyiwnarmenian'] = 0x0587; + t['ecircle'] = 0x24D4; + t['ecircumflex'] = 0x00EA; + t['ecircumflexacute'] = 0x1EBF; + t['ecircumflexbelow'] = 0x1E19; + t['ecircumflexdotbelow'] = 0x1EC7; + t['ecircumflexgrave'] = 0x1EC1; + t['ecircumflexhookabove'] = 0x1EC3; + t['ecircumflextilde'] = 0x1EC5; + t['ecyrillic'] = 0x0454; + t['edblgrave'] = 0x0205; + t['edeva'] = 0x090F; + t['edieresis'] = 0x00EB; + t['edot'] = 0x0117; + t['edotaccent'] = 0x0117; + t['edotbelow'] = 0x1EB9; + t['eegurmukhi'] = 0x0A0F; + t['eematragurmukhi'] = 0x0A47; + t['efcyrillic'] = 0x0444; + t['egrave'] = 0x00E8; + t['egujarati'] = 0x0A8F; + t['eharmenian'] = 0x0567; + t['ehbopomofo'] = 0x311D; + t['ehiragana'] = 0x3048; + t['ehookabove'] = 0x1EBB; + t['eibopomofo'] = 0x311F; + t['eight'] = 0x0038; + t['eightarabic'] = 0x0668; + t['eightbengali'] = 0x09EE; + t['eightcircle'] = 0x2467; + t['eightcircleinversesansserif'] = 0x2791; + t['eightdeva'] = 0x096E; + t['eighteencircle'] = 0x2471; + t['eighteenparen'] = 0x2485; + t['eighteenperiod'] = 0x2499; + t['eightgujarati'] = 0x0AEE; + t['eightgurmukhi'] = 0x0A6E; + t['eighthackarabic'] = 0x0668; + t['eighthangzhou'] = 0x3028; + t['eighthnotebeamed'] = 0x266B; + t['eightideographicparen'] = 0x3227; + t['eightinferior'] = 0x2088; + t['eightmonospace'] = 0xFF18; + t['eightoldstyle'] = 0xF738; + t['eightparen'] = 0x247B; + t['eightperiod'] = 0x248F; + t['eightpersian'] = 0x06F8; + t['eightroman'] = 0x2177; + t['eightsuperior'] = 0x2078; + t['eightthai'] = 0x0E58; + t['einvertedbreve'] = 0x0207; + t['eiotifiedcyrillic'] = 0x0465; + t['ekatakana'] = 0x30A8; + t['ekatakanahalfwidth'] = 0xFF74; + t['ekonkargurmukhi'] = 0x0A74; + t['ekorean'] = 0x3154; + t['elcyrillic'] = 0x043B; + t['element'] = 0x2208; + t['elevencircle'] = 0x246A; + t['elevenparen'] = 0x247E; + t['elevenperiod'] = 0x2492; + t['elevenroman'] = 0x217A; + t['ellipsis'] = 0x2026; + t['ellipsisvertical'] = 0x22EE; + t['emacron'] = 0x0113; + t['emacronacute'] = 0x1E17; + t['emacrongrave'] = 0x1E15; + t['emcyrillic'] = 0x043C; + t['emdash'] = 0x2014; + t['emdashvertical'] = 0xFE31; + t['emonospace'] = 0xFF45; + t['emphasismarkarmenian'] = 0x055B; + t['emptyset'] = 0x2205; + t['enbopomofo'] = 0x3123; + t['encyrillic'] = 0x043D; + t['endash'] = 0x2013; + t['endashvertical'] = 0xFE32; + t['endescendercyrillic'] = 0x04A3; + t['eng'] = 0x014B; + t['engbopomofo'] = 0x3125; + t['enghecyrillic'] = 0x04A5; + t['enhookcyrillic'] = 0x04C8; + t['enspace'] = 0x2002; + t['eogonek'] = 0x0119; + t['eokorean'] = 0x3153; + t['eopen'] = 0x025B; + t['eopenclosed'] = 0x029A; + t['eopenreversed'] = 0x025C; + t['eopenreversedclosed'] = 0x025E; + t['eopenreversedhook'] = 0x025D; + t['eparen'] = 0x24A0; + t['epsilon'] = 0x03B5; + t['epsilontonos'] = 0x03AD; + t['equal'] = 0x003D; + t['equalmonospace'] = 0xFF1D; + t['equalsmall'] = 0xFE66; + t['equalsuperior'] = 0x207C; + t['equivalence'] = 0x2261; + t['erbopomofo'] = 0x3126; + t['ercyrillic'] = 0x0440; + t['ereversed'] = 0x0258; + t['ereversedcyrillic'] = 0x044D; + t['escyrillic'] = 0x0441; + t['esdescendercyrillic'] = 0x04AB; + t['esh'] = 0x0283; + t['eshcurl'] = 0x0286; + t['eshortdeva'] = 0x090E; + t['eshortvowelsigndeva'] = 0x0946; + t['eshreversedloop'] = 0x01AA; + t['eshsquatreversed'] = 0x0285; + t['esmallhiragana'] = 0x3047; + t['esmallkatakana'] = 0x30A7; + t['esmallkatakanahalfwidth'] = 0xFF6A; + t['estimated'] = 0x212E; + t['esuperior'] = 0xF6EC; + t['eta'] = 0x03B7; + t['etarmenian'] = 0x0568; + t['etatonos'] = 0x03AE; + t['eth'] = 0x00F0; + t['etilde'] = 0x1EBD; + t['etildebelow'] = 0x1E1B; + t['etnahtafoukhhebrew'] = 0x0591; + t['etnahtafoukhlefthebrew'] = 0x0591; + t['etnahtahebrew'] = 0x0591; + t['etnahtalefthebrew'] = 0x0591; + t['eturned'] = 0x01DD; + t['eukorean'] = 0x3161; + t['euro'] = 0x20AC; + t['evowelsignbengali'] = 0x09C7; + t['evowelsigndeva'] = 0x0947; + t['evowelsigngujarati'] = 0x0AC7; + t['exclam'] = 0x0021; + t['exclamarmenian'] = 0x055C; + t['exclamdbl'] = 0x203C; + t['exclamdown'] = 0x00A1; + t['exclamdownsmall'] = 0xF7A1; + t['exclammonospace'] = 0xFF01; + t['exclamsmall'] = 0xF721; + t['existential'] = 0x2203; + t['ezh'] = 0x0292; + t['ezhcaron'] = 0x01EF; + t['ezhcurl'] = 0x0293; + t['ezhreversed'] = 0x01B9; + t['ezhtail'] = 0x01BA; + t['f'] = 0x0066; + t['fadeva'] = 0x095E; + t['fagurmukhi'] = 0x0A5E; + t['fahrenheit'] = 0x2109; + t['fathaarabic'] = 0x064E; + t['fathalowarabic'] = 0x064E; + t['fathatanarabic'] = 0x064B; + t['fbopomofo'] = 0x3108; + t['fcircle'] = 0x24D5; + t['fdotaccent'] = 0x1E1F; + t['feharabic'] = 0x0641; + t['feharmenian'] = 0x0586; + t['fehfinalarabic'] = 0xFED2; + t['fehinitialarabic'] = 0xFED3; + t['fehmedialarabic'] = 0xFED4; + t['feicoptic'] = 0x03E5; + t['female'] = 0x2640; + t['ff'] = 0xFB00; + t['ffi'] = 0xFB03; + t['ffl'] = 0xFB04; + t['fi'] = 0xFB01; + t['fifteencircle'] = 0x246E; + t['fifteenparen'] = 0x2482; + t['fifteenperiod'] = 0x2496; + t['figuredash'] = 0x2012; + t['filledbox'] = 0x25A0; + t['filledrect'] = 0x25AC; + t['finalkaf'] = 0x05DA; + t['finalkafdagesh'] = 0xFB3A; + t['finalkafdageshhebrew'] = 0xFB3A; + t['finalkafhebrew'] = 0x05DA; + t['finalmem'] = 0x05DD; + t['finalmemhebrew'] = 0x05DD; + t['finalnun'] = 0x05DF; + t['finalnunhebrew'] = 0x05DF; + t['finalpe'] = 0x05E3; + t['finalpehebrew'] = 0x05E3; + t['finaltsadi'] = 0x05E5; + t['finaltsadihebrew'] = 0x05E5; + t['firsttonechinese'] = 0x02C9; + t['fisheye'] = 0x25C9; + t['fitacyrillic'] = 0x0473; + t['five'] = 0x0035; + t['fivearabic'] = 0x0665; + t['fivebengali'] = 0x09EB; + t['fivecircle'] = 0x2464; + t['fivecircleinversesansserif'] = 0x278E; + t['fivedeva'] = 0x096B; + t['fiveeighths'] = 0x215D; + t['fivegujarati'] = 0x0AEB; + t['fivegurmukhi'] = 0x0A6B; + t['fivehackarabic'] = 0x0665; + t['fivehangzhou'] = 0x3025; + t['fiveideographicparen'] = 0x3224; + t['fiveinferior'] = 0x2085; + t['fivemonospace'] = 0xFF15; + t['fiveoldstyle'] = 0xF735; + t['fiveparen'] = 0x2478; + t['fiveperiod'] = 0x248C; + t['fivepersian'] = 0x06F5; + t['fiveroman'] = 0x2174; + t['fivesuperior'] = 0x2075; + t['fivethai'] = 0x0E55; + t['fl'] = 0xFB02; + t['florin'] = 0x0192; + t['fmonospace'] = 0xFF46; + t['fmsquare'] = 0x3399; + t['fofanthai'] = 0x0E1F; + t['fofathai'] = 0x0E1D; + t['fongmanthai'] = 0x0E4F; + t['forall'] = 0x2200; + t['four'] = 0x0034; + t['fourarabic'] = 0x0664; + t['fourbengali'] = 0x09EA; + t['fourcircle'] = 0x2463; + t['fourcircleinversesansserif'] = 0x278D; + t['fourdeva'] = 0x096A; + t['fourgujarati'] = 0x0AEA; + t['fourgurmukhi'] = 0x0A6A; + t['fourhackarabic'] = 0x0664; + t['fourhangzhou'] = 0x3024; + t['fourideographicparen'] = 0x3223; + t['fourinferior'] = 0x2084; + t['fourmonospace'] = 0xFF14; + t['fournumeratorbengali'] = 0x09F7; + t['fouroldstyle'] = 0xF734; + t['fourparen'] = 0x2477; + t['fourperiod'] = 0x248B; + t['fourpersian'] = 0x06F4; + t['fourroman'] = 0x2173; + t['foursuperior'] = 0x2074; + t['fourteencircle'] = 0x246D; + t['fourteenparen'] = 0x2481; + t['fourteenperiod'] = 0x2495; + t['fourthai'] = 0x0E54; + t['fourthtonechinese'] = 0x02CB; + t['fparen'] = 0x24A1; + t['fraction'] = 0x2044; + t['franc'] = 0x20A3; + t['g'] = 0x0067; + t['gabengali'] = 0x0997; + t['gacute'] = 0x01F5; + t['gadeva'] = 0x0917; + t['gafarabic'] = 0x06AF; + t['gaffinalarabic'] = 0xFB93; + t['gafinitialarabic'] = 0xFB94; + t['gafmedialarabic'] = 0xFB95; + t['gagujarati'] = 0x0A97; + t['gagurmukhi'] = 0x0A17; + t['gahiragana'] = 0x304C; + t['gakatakana'] = 0x30AC; + t['gamma'] = 0x03B3; + t['gammalatinsmall'] = 0x0263; + t['gammasuperior'] = 0x02E0; + t['gangiacoptic'] = 0x03EB; + t['gbopomofo'] = 0x310D; + t['gbreve'] = 0x011F; + t['gcaron'] = 0x01E7; + t['gcedilla'] = 0x0123; + t['gcircle'] = 0x24D6; + t['gcircumflex'] = 0x011D; + t['gcommaaccent'] = 0x0123; + t['gdot'] = 0x0121; + t['gdotaccent'] = 0x0121; + t['gecyrillic'] = 0x0433; + t['gehiragana'] = 0x3052; + t['gekatakana'] = 0x30B2; + t['geometricallyequal'] = 0x2251; + t['gereshaccenthebrew'] = 0x059C; + t['gereshhebrew'] = 0x05F3; + t['gereshmuqdamhebrew'] = 0x059D; + t['germandbls'] = 0x00DF; + t['gershayimaccenthebrew'] = 0x059E; + t['gershayimhebrew'] = 0x05F4; + t['getamark'] = 0x3013; + t['ghabengali'] = 0x0998; + t['ghadarmenian'] = 0x0572; + t['ghadeva'] = 0x0918; + t['ghagujarati'] = 0x0A98; + t['ghagurmukhi'] = 0x0A18; + t['ghainarabic'] = 0x063A; + t['ghainfinalarabic'] = 0xFECE; + t['ghaininitialarabic'] = 0xFECF; + t['ghainmedialarabic'] = 0xFED0; + t['ghemiddlehookcyrillic'] = 0x0495; + t['ghestrokecyrillic'] = 0x0493; + t['gheupturncyrillic'] = 0x0491; + t['ghhadeva'] = 0x095A; + t['ghhagurmukhi'] = 0x0A5A; + t['ghook'] = 0x0260; + t['ghzsquare'] = 0x3393; + t['gihiragana'] = 0x304E; + t['gikatakana'] = 0x30AE; + t['gimarmenian'] = 0x0563; + t['gimel'] = 0x05D2; + t['gimeldagesh'] = 0xFB32; + t['gimeldageshhebrew'] = 0xFB32; + t['gimelhebrew'] = 0x05D2; + t['gjecyrillic'] = 0x0453; + t['glottalinvertedstroke'] = 0x01BE; + t['glottalstop'] = 0x0294; + t['glottalstopinverted'] = 0x0296; + t['glottalstopmod'] = 0x02C0; + t['glottalstopreversed'] = 0x0295; + t['glottalstopreversedmod'] = 0x02C1; + t['glottalstopreversedsuperior'] = 0x02E4; + t['glottalstopstroke'] = 0x02A1; + t['glottalstopstrokereversed'] = 0x02A2; + t['gmacron'] = 0x1E21; + t['gmonospace'] = 0xFF47; + t['gohiragana'] = 0x3054; + t['gokatakana'] = 0x30B4; + t['gparen'] = 0x24A2; + t['gpasquare'] = 0x33AC; + t['gradient'] = 0x2207; + t['grave'] = 0x0060; + t['gravebelowcmb'] = 0x0316; + t['gravecmb'] = 0x0300; + t['gravecomb'] = 0x0300; + t['gravedeva'] = 0x0953; + t['gravelowmod'] = 0x02CE; + t['gravemonospace'] = 0xFF40; + t['gravetonecmb'] = 0x0340; + t['greater'] = 0x003E; + t['greaterequal'] = 0x2265; + t['greaterequalorless'] = 0x22DB; + t['greatermonospace'] = 0xFF1E; + t['greaterorequivalent'] = 0x2273; + t['greaterorless'] = 0x2277; + t['greateroverequal'] = 0x2267; + t['greatersmall'] = 0xFE65; + t['gscript'] = 0x0261; + t['gstroke'] = 0x01E5; + t['guhiragana'] = 0x3050; + t['guillemotleft'] = 0x00AB; + t['guillemotright'] = 0x00BB; + t['guilsinglleft'] = 0x2039; + t['guilsinglright'] = 0x203A; + t['gukatakana'] = 0x30B0; + t['guramusquare'] = 0x3318; + t['gysquare'] = 0x33C9; + t['h'] = 0x0068; + t['haabkhasiancyrillic'] = 0x04A9; + t['haaltonearabic'] = 0x06C1; + t['habengali'] = 0x09B9; + t['hadescendercyrillic'] = 0x04B3; + t['hadeva'] = 0x0939; + t['hagujarati'] = 0x0AB9; + t['hagurmukhi'] = 0x0A39; + t['haharabic'] = 0x062D; + t['hahfinalarabic'] = 0xFEA2; + t['hahinitialarabic'] = 0xFEA3; + t['hahiragana'] = 0x306F; + t['hahmedialarabic'] = 0xFEA4; + t['haitusquare'] = 0x332A; + t['hakatakana'] = 0x30CF; + t['hakatakanahalfwidth'] = 0xFF8A; + t['halantgurmukhi'] = 0x0A4D; + t['hamzaarabic'] = 0x0621; + t['hamzalowarabic'] = 0x0621; + t['hangulfiller'] = 0x3164; + t['hardsigncyrillic'] = 0x044A; + t['harpoonleftbarbup'] = 0x21BC; + t['harpoonrightbarbup'] = 0x21C0; + t['hasquare'] = 0x33CA; + t['hatafpatah'] = 0x05B2; + t['hatafpatah16'] = 0x05B2; + t['hatafpatah23'] = 0x05B2; + t['hatafpatah2f'] = 0x05B2; + t['hatafpatahhebrew'] = 0x05B2; + t['hatafpatahnarrowhebrew'] = 0x05B2; + t['hatafpatahquarterhebrew'] = 0x05B2; + t['hatafpatahwidehebrew'] = 0x05B2; + t['hatafqamats'] = 0x05B3; + t['hatafqamats1b'] = 0x05B3; + t['hatafqamats28'] = 0x05B3; + t['hatafqamats34'] = 0x05B3; + t['hatafqamatshebrew'] = 0x05B3; + t['hatafqamatsnarrowhebrew'] = 0x05B3; + t['hatafqamatsquarterhebrew'] = 0x05B3; + t['hatafqamatswidehebrew'] = 0x05B3; + t['hatafsegol'] = 0x05B1; + t['hatafsegol17'] = 0x05B1; + t['hatafsegol24'] = 0x05B1; + t['hatafsegol30'] = 0x05B1; + t['hatafsegolhebrew'] = 0x05B1; + t['hatafsegolnarrowhebrew'] = 0x05B1; + t['hatafsegolquarterhebrew'] = 0x05B1; + t['hatafsegolwidehebrew'] = 0x05B1; + t['hbar'] = 0x0127; + t['hbopomofo'] = 0x310F; + t['hbrevebelow'] = 0x1E2B; + t['hcedilla'] = 0x1E29; + t['hcircle'] = 0x24D7; + t['hcircumflex'] = 0x0125; + t['hdieresis'] = 0x1E27; + t['hdotaccent'] = 0x1E23; + t['hdotbelow'] = 0x1E25; + t['he'] = 0x05D4; + t['heart'] = 0x2665; + t['heartsuitblack'] = 0x2665; + t['heartsuitwhite'] = 0x2661; + t['hedagesh'] = 0xFB34; + t['hedageshhebrew'] = 0xFB34; + t['hehaltonearabic'] = 0x06C1; + t['heharabic'] = 0x0647; + t['hehebrew'] = 0x05D4; + t['hehfinalaltonearabic'] = 0xFBA7; + t['hehfinalalttwoarabic'] = 0xFEEA; + t['hehfinalarabic'] = 0xFEEA; + t['hehhamzaabovefinalarabic'] = 0xFBA5; + t['hehhamzaaboveisolatedarabic'] = 0xFBA4; + t['hehinitialaltonearabic'] = 0xFBA8; + t['hehinitialarabic'] = 0xFEEB; + t['hehiragana'] = 0x3078; + t['hehmedialaltonearabic'] = 0xFBA9; + t['hehmedialarabic'] = 0xFEEC; + t['heiseierasquare'] = 0x337B; + t['hekatakana'] = 0x30D8; + t['hekatakanahalfwidth'] = 0xFF8D; + t['hekutaarusquare'] = 0x3336; + t['henghook'] = 0x0267; + t['herutusquare'] = 0x3339; + t['het'] = 0x05D7; + t['hethebrew'] = 0x05D7; + t['hhook'] = 0x0266; + t['hhooksuperior'] = 0x02B1; + t['hieuhacirclekorean'] = 0x327B; + t['hieuhaparenkorean'] = 0x321B; + t['hieuhcirclekorean'] = 0x326D; + t['hieuhkorean'] = 0x314E; + t['hieuhparenkorean'] = 0x320D; + t['hihiragana'] = 0x3072; + t['hikatakana'] = 0x30D2; + t['hikatakanahalfwidth'] = 0xFF8B; + t['hiriq'] = 0x05B4; + t['hiriq14'] = 0x05B4; + t['hiriq21'] = 0x05B4; + t['hiriq2d'] = 0x05B4; + t['hiriqhebrew'] = 0x05B4; + t['hiriqnarrowhebrew'] = 0x05B4; + t['hiriqquarterhebrew'] = 0x05B4; + t['hiriqwidehebrew'] = 0x05B4; + t['hlinebelow'] = 0x1E96; + t['hmonospace'] = 0xFF48; + t['hoarmenian'] = 0x0570; + t['hohipthai'] = 0x0E2B; + t['hohiragana'] = 0x307B; + t['hokatakana'] = 0x30DB; + t['hokatakanahalfwidth'] = 0xFF8E; + t['holam'] = 0x05B9; + t['holam19'] = 0x05B9; + t['holam26'] = 0x05B9; + t['holam32'] = 0x05B9; + t['holamhebrew'] = 0x05B9; + t['holamnarrowhebrew'] = 0x05B9; + t['holamquarterhebrew'] = 0x05B9; + t['holamwidehebrew'] = 0x05B9; + t['honokhukthai'] = 0x0E2E; + t['hookabovecomb'] = 0x0309; + t['hookcmb'] = 0x0309; + t['hookpalatalizedbelowcmb'] = 0x0321; + t['hookretroflexbelowcmb'] = 0x0322; + t['hoonsquare'] = 0x3342; + t['horicoptic'] = 0x03E9; + t['horizontalbar'] = 0x2015; + t['horncmb'] = 0x031B; + t['hotsprings'] = 0x2668; + t['house'] = 0x2302; + t['hparen'] = 0x24A3; + t['hsuperior'] = 0x02B0; + t['hturned'] = 0x0265; + t['huhiragana'] = 0x3075; + t['huiitosquare'] = 0x3333; + t['hukatakana'] = 0x30D5; + t['hukatakanahalfwidth'] = 0xFF8C; + t['hungarumlaut'] = 0x02DD; + t['hungarumlautcmb'] = 0x030B; + t['hv'] = 0x0195; + t['hyphen'] = 0x002D; + t['hypheninferior'] = 0xF6E5; + t['hyphenmonospace'] = 0xFF0D; + t['hyphensmall'] = 0xFE63; + t['hyphensuperior'] = 0xF6E6; + t['hyphentwo'] = 0x2010; + t['i'] = 0x0069; + t['iacute'] = 0x00ED; + t['iacyrillic'] = 0x044F; + t['ibengali'] = 0x0987; + t['ibopomofo'] = 0x3127; + t['ibreve'] = 0x012D; + t['icaron'] = 0x01D0; + t['icircle'] = 0x24D8; + t['icircumflex'] = 0x00EE; + t['icyrillic'] = 0x0456; + t['idblgrave'] = 0x0209; + t['ideographearthcircle'] = 0x328F; + t['ideographfirecircle'] = 0x328B; + t['ideographicallianceparen'] = 0x323F; + t['ideographiccallparen'] = 0x323A; + t['ideographiccentrecircle'] = 0x32A5; + t['ideographicclose'] = 0x3006; + t['ideographiccomma'] = 0x3001; + t['ideographiccommaleft'] = 0xFF64; + t['ideographiccongratulationparen'] = 0x3237; + t['ideographiccorrectcircle'] = 0x32A3; + t['ideographicearthparen'] = 0x322F; + t['ideographicenterpriseparen'] = 0x323D; + t['ideographicexcellentcircle'] = 0x329D; + t['ideographicfestivalparen'] = 0x3240; + t['ideographicfinancialcircle'] = 0x3296; + t['ideographicfinancialparen'] = 0x3236; + t['ideographicfireparen'] = 0x322B; + t['ideographichaveparen'] = 0x3232; + t['ideographichighcircle'] = 0x32A4; + t['ideographiciterationmark'] = 0x3005; + t['ideographiclaborcircle'] = 0x3298; + t['ideographiclaborparen'] = 0x3238; + t['ideographicleftcircle'] = 0x32A7; + t['ideographiclowcircle'] = 0x32A6; + t['ideographicmedicinecircle'] = 0x32A9; + t['ideographicmetalparen'] = 0x322E; + t['ideographicmoonparen'] = 0x322A; + t['ideographicnameparen'] = 0x3234; + t['ideographicperiod'] = 0x3002; + t['ideographicprintcircle'] = 0x329E; + t['ideographicreachparen'] = 0x3243; + t['ideographicrepresentparen'] = 0x3239; + t['ideographicresourceparen'] = 0x323E; + t['ideographicrightcircle'] = 0x32A8; + t['ideographicsecretcircle'] = 0x3299; + t['ideographicselfparen'] = 0x3242; + t['ideographicsocietyparen'] = 0x3233; + t['ideographicspace'] = 0x3000; + t['ideographicspecialparen'] = 0x3235; + t['ideographicstockparen'] = 0x3231; + t['ideographicstudyparen'] = 0x323B; + t['ideographicsunparen'] = 0x3230; + t['ideographicsuperviseparen'] = 0x323C; + t['ideographicwaterparen'] = 0x322C; + t['ideographicwoodparen'] = 0x322D; + t['ideographiczero'] = 0x3007; + t['ideographmetalcircle'] = 0x328E; + t['ideographmooncircle'] = 0x328A; + t['ideographnamecircle'] = 0x3294; + t['ideographsuncircle'] = 0x3290; + t['ideographwatercircle'] = 0x328C; + t['ideographwoodcircle'] = 0x328D; + t['ideva'] = 0x0907; + t['idieresis'] = 0x00EF; + t['idieresisacute'] = 0x1E2F; + t['idieresiscyrillic'] = 0x04E5; + t['idotbelow'] = 0x1ECB; + t['iebrevecyrillic'] = 0x04D7; + t['iecyrillic'] = 0x0435; + t['ieungacirclekorean'] = 0x3275; + t['ieungaparenkorean'] = 0x3215; + t['ieungcirclekorean'] = 0x3267; + t['ieungkorean'] = 0x3147; + t['ieungparenkorean'] = 0x3207; + t['igrave'] = 0x00EC; + t['igujarati'] = 0x0A87; + t['igurmukhi'] = 0x0A07; + t['ihiragana'] = 0x3044; + t['ihookabove'] = 0x1EC9; + t['iibengali'] = 0x0988; + t['iicyrillic'] = 0x0438; + t['iideva'] = 0x0908; + t['iigujarati'] = 0x0A88; + t['iigurmukhi'] = 0x0A08; + t['iimatragurmukhi'] = 0x0A40; + t['iinvertedbreve'] = 0x020B; + t['iishortcyrillic'] = 0x0439; + t['iivowelsignbengali'] = 0x09C0; + t['iivowelsigndeva'] = 0x0940; + t['iivowelsigngujarati'] = 0x0AC0; + t['ij'] = 0x0133; + t['ikatakana'] = 0x30A4; + t['ikatakanahalfwidth'] = 0xFF72; + t['ikorean'] = 0x3163; + t['ilde'] = 0x02DC; + t['iluyhebrew'] = 0x05AC; + t['imacron'] = 0x012B; + t['imacroncyrillic'] = 0x04E3; + t['imageorapproximatelyequal'] = 0x2253; + t['imatragurmukhi'] = 0x0A3F; + t['imonospace'] = 0xFF49; + t['increment'] = 0x2206; + t['infinity'] = 0x221E; + t['iniarmenian'] = 0x056B; + t['integral'] = 0x222B; + t['integralbottom'] = 0x2321; + t['integralbt'] = 0x2321; + t['integralex'] = 0xF8F5; + t['integraltop'] = 0x2320; + t['integraltp'] = 0x2320; + t['intersection'] = 0x2229; + t['intisquare'] = 0x3305; + t['invbullet'] = 0x25D8; + t['invcircle'] = 0x25D9; + t['invsmileface'] = 0x263B; + t['iocyrillic'] = 0x0451; + t['iogonek'] = 0x012F; + t['iota'] = 0x03B9; + t['iotadieresis'] = 0x03CA; + t['iotadieresistonos'] = 0x0390; + t['iotalatin'] = 0x0269; + t['iotatonos'] = 0x03AF; + t['iparen'] = 0x24A4; + t['irigurmukhi'] = 0x0A72; + t['ismallhiragana'] = 0x3043; + t['ismallkatakana'] = 0x30A3; + t['ismallkatakanahalfwidth'] = 0xFF68; + t['issharbengali'] = 0x09FA; + t['istroke'] = 0x0268; + t['isuperior'] = 0xF6ED; + t['iterationhiragana'] = 0x309D; + t['iterationkatakana'] = 0x30FD; + t['itilde'] = 0x0129; + t['itildebelow'] = 0x1E2D; + t['iubopomofo'] = 0x3129; + t['iucyrillic'] = 0x044E; + t['ivowelsignbengali'] = 0x09BF; + t['ivowelsigndeva'] = 0x093F; + t['ivowelsigngujarati'] = 0x0ABF; + t['izhitsacyrillic'] = 0x0475; + t['izhitsadblgravecyrillic'] = 0x0477; + t['j'] = 0x006A; + t['jaarmenian'] = 0x0571; + t['jabengali'] = 0x099C; + t['jadeva'] = 0x091C; + t['jagujarati'] = 0x0A9C; + t['jagurmukhi'] = 0x0A1C; + t['jbopomofo'] = 0x3110; + t['jcaron'] = 0x01F0; + t['jcircle'] = 0x24D9; + t['jcircumflex'] = 0x0135; + t['jcrossedtail'] = 0x029D; + t['jdotlessstroke'] = 0x025F; + t['jecyrillic'] = 0x0458; + t['jeemarabic'] = 0x062C; + t['jeemfinalarabic'] = 0xFE9E; + t['jeeminitialarabic'] = 0xFE9F; + t['jeemmedialarabic'] = 0xFEA0; + t['jeharabic'] = 0x0698; + t['jehfinalarabic'] = 0xFB8B; + t['jhabengali'] = 0x099D; + t['jhadeva'] = 0x091D; + t['jhagujarati'] = 0x0A9D; + t['jhagurmukhi'] = 0x0A1D; + t['jheharmenian'] = 0x057B; + t['jis'] = 0x3004; + t['jmonospace'] = 0xFF4A; + t['jparen'] = 0x24A5; + t['jsuperior'] = 0x02B2; + t['k'] = 0x006B; + t['kabashkircyrillic'] = 0x04A1; + t['kabengali'] = 0x0995; + t['kacute'] = 0x1E31; + t['kacyrillic'] = 0x043A; + t['kadescendercyrillic'] = 0x049B; + t['kadeva'] = 0x0915; + t['kaf'] = 0x05DB; + t['kafarabic'] = 0x0643; + t['kafdagesh'] = 0xFB3B; + t['kafdageshhebrew'] = 0xFB3B; + t['kaffinalarabic'] = 0xFEDA; + t['kafhebrew'] = 0x05DB; + t['kafinitialarabic'] = 0xFEDB; + t['kafmedialarabic'] = 0xFEDC; + t['kafrafehebrew'] = 0xFB4D; + t['kagujarati'] = 0x0A95; + t['kagurmukhi'] = 0x0A15; + t['kahiragana'] = 0x304B; + t['kahookcyrillic'] = 0x04C4; + t['kakatakana'] = 0x30AB; + t['kakatakanahalfwidth'] = 0xFF76; + t['kappa'] = 0x03BA; + t['kappasymbolgreek'] = 0x03F0; + t['kapyeounmieumkorean'] = 0x3171; + t['kapyeounphieuphkorean'] = 0x3184; + t['kapyeounpieupkorean'] = 0x3178; + t['kapyeounssangpieupkorean'] = 0x3179; + t['karoriisquare'] = 0x330D; + t['kashidaautoarabic'] = 0x0640; + t['kashidaautonosidebearingarabic'] = 0x0640; + t['kasmallkatakana'] = 0x30F5; + t['kasquare'] = 0x3384; + t['kasraarabic'] = 0x0650; + t['kasratanarabic'] = 0x064D; + t['kastrokecyrillic'] = 0x049F; + t['katahiraprolongmarkhalfwidth'] = 0xFF70; + t['kaverticalstrokecyrillic'] = 0x049D; + t['kbopomofo'] = 0x310E; + t['kcalsquare'] = 0x3389; + t['kcaron'] = 0x01E9; + t['kcedilla'] = 0x0137; + t['kcircle'] = 0x24DA; + t['kcommaaccent'] = 0x0137; + t['kdotbelow'] = 0x1E33; + t['keharmenian'] = 0x0584; + t['kehiragana'] = 0x3051; + t['kekatakana'] = 0x30B1; + t['kekatakanahalfwidth'] = 0xFF79; + t['kenarmenian'] = 0x056F; + t['kesmallkatakana'] = 0x30F6; + t['kgreenlandic'] = 0x0138; + t['khabengali'] = 0x0996; + t['khacyrillic'] = 0x0445; + t['khadeva'] = 0x0916; + t['khagujarati'] = 0x0A96; + t['khagurmukhi'] = 0x0A16; + t['khaharabic'] = 0x062E; + t['khahfinalarabic'] = 0xFEA6; + t['khahinitialarabic'] = 0xFEA7; + t['khahmedialarabic'] = 0xFEA8; + t['kheicoptic'] = 0x03E7; + t['khhadeva'] = 0x0959; + t['khhagurmukhi'] = 0x0A59; + t['khieukhacirclekorean'] = 0x3278; + t['khieukhaparenkorean'] = 0x3218; + t['khieukhcirclekorean'] = 0x326A; + t['khieukhkorean'] = 0x314B; + t['khieukhparenkorean'] = 0x320A; + t['khokhaithai'] = 0x0E02; + t['khokhonthai'] = 0x0E05; + t['khokhuatthai'] = 0x0E03; + t['khokhwaithai'] = 0x0E04; + t['khomutthai'] = 0x0E5B; + t['khook'] = 0x0199; + t['khorakhangthai'] = 0x0E06; + t['khzsquare'] = 0x3391; + t['kihiragana'] = 0x304D; + t['kikatakana'] = 0x30AD; + t['kikatakanahalfwidth'] = 0xFF77; + t['kiroguramusquare'] = 0x3315; + t['kiromeetorusquare'] = 0x3316; + t['kirosquare'] = 0x3314; + t['kiyeokacirclekorean'] = 0x326E; + t['kiyeokaparenkorean'] = 0x320E; + t['kiyeokcirclekorean'] = 0x3260; + t['kiyeokkorean'] = 0x3131; + t['kiyeokparenkorean'] = 0x3200; + t['kiyeoksioskorean'] = 0x3133; + t['kjecyrillic'] = 0x045C; + t['klinebelow'] = 0x1E35; + t['klsquare'] = 0x3398; + t['kmcubedsquare'] = 0x33A6; + t['kmonospace'] = 0xFF4B; + t['kmsquaredsquare'] = 0x33A2; + t['kohiragana'] = 0x3053; + t['kohmsquare'] = 0x33C0; + t['kokaithai'] = 0x0E01; + t['kokatakana'] = 0x30B3; + t['kokatakanahalfwidth'] = 0xFF7A; + t['kooposquare'] = 0x331E; + t['koppacyrillic'] = 0x0481; + t['koreanstandardsymbol'] = 0x327F; + t['koroniscmb'] = 0x0343; + t['kparen'] = 0x24A6; + t['kpasquare'] = 0x33AA; + t['ksicyrillic'] = 0x046F; + t['ktsquare'] = 0x33CF; + t['kturned'] = 0x029E; + t['kuhiragana'] = 0x304F; + t['kukatakana'] = 0x30AF; + t['kukatakanahalfwidth'] = 0xFF78; + t['kvsquare'] = 0x33B8; + t['kwsquare'] = 0x33BE; + t['l'] = 0x006C; + t['labengali'] = 0x09B2; + t['lacute'] = 0x013A; + t['ladeva'] = 0x0932; + t['lagujarati'] = 0x0AB2; + t['lagurmukhi'] = 0x0A32; + t['lakkhangyaothai'] = 0x0E45; + t['lamaleffinalarabic'] = 0xFEFC; + t['lamalefhamzaabovefinalarabic'] = 0xFEF8; + t['lamalefhamzaaboveisolatedarabic'] = 0xFEF7; + t['lamalefhamzabelowfinalarabic'] = 0xFEFA; + t['lamalefhamzabelowisolatedarabic'] = 0xFEF9; + t['lamalefisolatedarabic'] = 0xFEFB; + t['lamalefmaddaabovefinalarabic'] = 0xFEF6; + t['lamalefmaddaaboveisolatedarabic'] = 0xFEF5; + t['lamarabic'] = 0x0644; + t['lambda'] = 0x03BB; + t['lambdastroke'] = 0x019B; + t['lamed'] = 0x05DC; + t['lameddagesh'] = 0xFB3C; + t['lameddageshhebrew'] = 0xFB3C; + t['lamedhebrew'] = 0x05DC; + t['lamfinalarabic'] = 0xFEDE; + t['lamhahinitialarabic'] = 0xFCCA; + t['laminitialarabic'] = 0xFEDF; + t['lamjeeminitialarabic'] = 0xFCC9; + t['lamkhahinitialarabic'] = 0xFCCB; + t['lamlamhehisolatedarabic'] = 0xFDF2; + t['lammedialarabic'] = 0xFEE0; + t['lammeemhahinitialarabic'] = 0xFD88; + t['lammeeminitialarabic'] = 0xFCCC; + t['largecircle'] = 0x25EF; + t['lbar'] = 0x019A; + t['lbelt'] = 0x026C; + t['lbopomofo'] = 0x310C; + t['lcaron'] = 0x013E; + t['lcedilla'] = 0x013C; + t['lcircle'] = 0x24DB; + t['lcircumflexbelow'] = 0x1E3D; + t['lcommaaccent'] = 0x013C; + t['ldot'] = 0x0140; + t['ldotaccent'] = 0x0140; + t['ldotbelow'] = 0x1E37; + t['ldotbelowmacron'] = 0x1E39; + t['leftangleabovecmb'] = 0x031A; + t['lefttackbelowcmb'] = 0x0318; + t['less'] = 0x003C; + t['lessequal'] = 0x2264; + t['lessequalorgreater'] = 0x22DA; + t['lessmonospace'] = 0xFF1C; + t['lessorequivalent'] = 0x2272; + t['lessorgreater'] = 0x2276; + t['lessoverequal'] = 0x2266; + t['lesssmall'] = 0xFE64; + t['lezh'] = 0x026E; + t['lfblock'] = 0x258C; + t['lhookretroflex'] = 0x026D; + t['lira'] = 0x20A4; + t['liwnarmenian'] = 0x056C; + t['lj'] = 0x01C9; + t['ljecyrillic'] = 0x0459; + t['ll'] = 0xF6C0; + t['lladeva'] = 0x0933; + t['llagujarati'] = 0x0AB3; + t['llinebelow'] = 0x1E3B; + t['llladeva'] = 0x0934; + t['llvocalicbengali'] = 0x09E1; + t['llvocalicdeva'] = 0x0961; + t['llvocalicvowelsignbengali'] = 0x09E3; + t['llvocalicvowelsigndeva'] = 0x0963; + t['lmiddletilde'] = 0x026B; + t['lmonospace'] = 0xFF4C; + t['lmsquare'] = 0x33D0; + t['lochulathai'] = 0x0E2C; + t['logicaland'] = 0x2227; + t['logicalnot'] = 0x00AC; + t['logicalnotreversed'] = 0x2310; + t['logicalor'] = 0x2228; + t['lolingthai'] = 0x0E25; + t['longs'] = 0x017F; + t['lowlinecenterline'] = 0xFE4E; + t['lowlinecmb'] = 0x0332; + t['lowlinedashed'] = 0xFE4D; + t['lozenge'] = 0x25CA; + t['lparen'] = 0x24A7; + t['lslash'] = 0x0142; + t['lsquare'] = 0x2113; + t['lsuperior'] = 0xF6EE; + t['ltshade'] = 0x2591; + t['luthai'] = 0x0E26; + t['lvocalicbengali'] = 0x098C; + t['lvocalicdeva'] = 0x090C; + t['lvocalicvowelsignbengali'] = 0x09E2; + t['lvocalicvowelsigndeva'] = 0x0962; + t['lxsquare'] = 0x33D3; + t['m'] = 0x006D; + t['mabengali'] = 0x09AE; + t['macron'] = 0x00AF; + t['macronbelowcmb'] = 0x0331; + t['macroncmb'] = 0x0304; + t['macronlowmod'] = 0x02CD; + t['macronmonospace'] = 0xFFE3; + t['macute'] = 0x1E3F; + t['madeva'] = 0x092E; + t['magujarati'] = 0x0AAE; + t['magurmukhi'] = 0x0A2E; + t['mahapakhhebrew'] = 0x05A4; + t['mahapakhlefthebrew'] = 0x05A4; + t['mahiragana'] = 0x307E; + t['maichattawalowleftthai'] = 0xF895; + t['maichattawalowrightthai'] = 0xF894; + t['maichattawathai'] = 0x0E4B; + t['maichattawaupperleftthai'] = 0xF893; + t['maieklowleftthai'] = 0xF88C; + t['maieklowrightthai'] = 0xF88B; + t['maiekthai'] = 0x0E48; + t['maiekupperleftthai'] = 0xF88A; + t['maihanakatleftthai'] = 0xF884; + t['maihanakatthai'] = 0x0E31; + t['maitaikhuleftthai'] = 0xF889; + t['maitaikhuthai'] = 0x0E47; + t['maitholowleftthai'] = 0xF88F; + t['maitholowrightthai'] = 0xF88E; + t['maithothai'] = 0x0E49; + t['maithoupperleftthai'] = 0xF88D; + t['maitrilowleftthai'] = 0xF892; + t['maitrilowrightthai'] = 0xF891; + t['maitrithai'] = 0x0E4A; + t['maitriupperleftthai'] = 0xF890; + t['maiyamokthai'] = 0x0E46; + t['makatakana'] = 0x30DE; + t['makatakanahalfwidth'] = 0xFF8F; + t['male'] = 0x2642; + t['mansyonsquare'] = 0x3347; + t['maqafhebrew'] = 0x05BE; + t['mars'] = 0x2642; + t['masoracirclehebrew'] = 0x05AF; + t['masquare'] = 0x3383; + t['mbopomofo'] = 0x3107; + t['mbsquare'] = 0x33D4; + t['mcircle'] = 0x24DC; + t['mcubedsquare'] = 0x33A5; + t['mdotaccent'] = 0x1E41; + t['mdotbelow'] = 0x1E43; + t['meemarabic'] = 0x0645; + t['meemfinalarabic'] = 0xFEE2; + t['meeminitialarabic'] = 0xFEE3; + t['meemmedialarabic'] = 0xFEE4; + t['meemmeeminitialarabic'] = 0xFCD1; + t['meemmeemisolatedarabic'] = 0xFC48; + t['meetorusquare'] = 0x334D; + t['mehiragana'] = 0x3081; + t['meizierasquare'] = 0x337E; + t['mekatakana'] = 0x30E1; + t['mekatakanahalfwidth'] = 0xFF92; + t['mem'] = 0x05DE; + t['memdagesh'] = 0xFB3E; + t['memdageshhebrew'] = 0xFB3E; + t['memhebrew'] = 0x05DE; + t['menarmenian'] = 0x0574; + t['merkhahebrew'] = 0x05A5; + t['merkhakefulahebrew'] = 0x05A6; + t['merkhakefulalefthebrew'] = 0x05A6; + t['merkhalefthebrew'] = 0x05A5; + t['mhook'] = 0x0271; + t['mhzsquare'] = 0x3392; + t['middledotkatakanahalfwidth'] = 0xFF65; + t['middot'] = 0x00B7; + t['mieumacirclekorean'] = 0x3272; + t['mieumaparenkorean'] = 0x3212; + t['mieumcirclekorean'] = 0x3264; + t['mieumkorean'] = 0x3141; + t['mieumpansioskorean'] = 0x3170; + t['mieumparenkorean'] = 0x3204; + t['mieumpieupkorean'] = 0x316E; + t['mieumsioskorean'] = 0x316F; + t['mihiragana'] = 0x307F; + t['mikatakana'] = 0x30DF; + t['mikatakanahalfwidth'] = 0xFF90; + t['minus'] = 0x2212; + t['minusbelowcmb'] = 0x0320; + t['minuscircle'] = 0x2296; + t['minusmod'] = 0x02D7; + t['minusplus'] = 0x2213; + t['minute'] = 0x2032; + t['miribaarusquare'] = 0x334A; + t['mirisquare'] = 0x3349; + t['mlonglegturned'] = 0x0270; + t['mlsquare'] = 0x3396; + t['mmcubedsquare'] = 0x33A3; + t['mmonospace'] = 0xFF4D; + t['mmsquaredsquare'] = 0x339F; + t['mohiragana'] = 0x3082; + t['mohmsquare'] = 0x33C1; + t['mokatakana'] = 0x30E2; + t['mokatakanahalfwidth'] = 0xFF93; + t['molsquare'] = 0x33D6; + t['momathai'] = 0x0E21; + t['moverssquare'] = 0x33A7; + t['moverssquaredsquare'] = 0x33A8; + t['mparen'] = 0x24A8; + t['mpasquare'] = 0x33AB; + t['mssquare'] = 0x33B3; + t['msuperior'] = 0xF6EF; + t['mturned'] = 0x026F; + t['mu'] = 0x00B5; + t['mu1'] = 0x00B5; + t['muasquare'] = 0x3382; + t['muchgreater'] = 0x226B; + t['muchless'] = 0x226A; + t['mufsquare'] = 0x338C; + t['mugreek'] = 0x03BC; + t['mugsquare'] = 0x338D; + t['muhiragana'] = 0x3080; + t['mukatakana'] = 0x30E0; + t['mukatakanahalfwidth'] = 0xFF91; + t['mulsquare'] = 0x3395; + t['multiply'] = 0x00D7; + t['mumsquare'] = 0x339B; + t['munahhebrew'] = 0x05A3; + t['munahlefthebrew'] = 0x05A3; + t['musicalnote'] = 0x266A; + t['musicalnotedbl'] = 0x266B; + t['musicflatsign'] = 0x266D; + t['musicsharpsign'] = 0x266F; + t['mussquare'] = 0x33B2; + t['muvsquare'] = 0x33B6; + t['muwsquare'] = 0x33BC; + t['mvmegasquare'] = 0x33B9; + t['mvsquare'] = 0x33B7; + t['mwmegasquare'] = 0x33BF; + t['mwsquare'] = 0x33BD; + t['n'] = 0x006E; + t['nabengali'] = 0x09A8; + t['nabla'] = 0x2207; + t['nacute'] = 0x0144; + t['nadeva'] = 0x0928; + t['nagujarati'] = 0x0AA8; + t['nagurmukhi'] = 0x0A28; + t['nahiragana'] = 0x306A; + t['nakatakana'] = 0x30CA; + t['nakatakanahalfwidth'] = 0xFF85; + t['napostrophe'] = 0x0149; + t['nasquare'] = 0x3381; + t['nbopomofo'] = 0x310B; + t['nbspace'] = 0x00A0; + t['ncaron'] = 0x0148; + t['ncedilla'] = 0x0146; + t['ncircle'] = 0x24DD; + t['ncircumflexbelow'] = 0x1E4B; + t['ncommaaccent'] = 0x0146; + t['ndotaccent'] = 0x1E45; + t['ndotbelow'] = 0x1E47; + t['nehiragana'] = 0x306D; + t['nekatakana'] = 0x30CD; + t['nekatakanahalfwidth'] = 0xFF88; + t['newsheqelsign'] = 0x20AA; + t['nfsquare'] = 0x338B; + t['ngabengali'] = 0x0999; + t['ngadeva'] = 0x0919; + t['ngagujarati'] = 0x0A99; + t['ngagurmukhi'] = 0x0A19; + t['ngonguthai'] = 0x0E07; + t['nhiragana'] = 0x3093; + t['nhookleft'] = 0x0272; + t['nhookretroflex'] = 0x0273; + t['nieunacirclekorean'] = 0x326F; + t['nieunaparenkorean'] = 0x320F; + t['nieuncieuckorean'] = 0x3135; + t['nieuncirclekorean'] = 0x3261; + t['nieunhieuhkorean'] = 0x3136; + t['nieunkorean'] = 0x3134; + t['nieunpansioskorean'] = 0x3168; + t['nieunparenkorean'] = 0x3201; + t['nieunsioskorean'] = 0x3167; + t['nieuntikeutkorean'] = 0x3166; + t['nihiragana'] = 0x306B; + t['nikatakana'] = 0x30CB; + t['nikatakanahalfwidth'] = 0xFF86; + t['nikhahitleftthai'] = 0xF899; + t['nikhahitthai'] = 0x0E4D; + t['nine'] = 0x0039; + t['ninearabic'] = 0x0669; + t['ninebengali'] = 0x09EF; + t['ninecircle'] = 0x2468; + t['ninecircleinversesansserif'] = 0x2792; + t['ninedeva'] = 0x096F; + t['ninegujarati'] = 0x0AEF; + t['ninegurmukhi'] = 0x0A6F; + t['ninehackarabic'] = 0x0669; + t['ninehangzhou'] = 0x3029; + t['nineideographicparen'] = 0x3228; + t['nineinferior'] = 0x2089; + t['ninemonospace'] = 0xFF19; + t['nineoldstyle'] = 0xF739; + t['nineparen'] = 0x247C; + t['nineperiod'] = 0x2490; + t['ninepersian'] = 0x06F9; + t['nineroman'] = 0x2178; + t['ninesuperior'] = 0x2079; + t['nineteencircle'] = 0x2472; + t['nineteenparen'] = 0x2486; + t['nineteenperiod'] = 0x249A; + t['ninethai'] = 0x0E59; + t['nj'] = 0x01CC; + t['njecyrillic'] = 0x045A; + t['nkatakana'] = 0x30F3; + t['nkatakanahalfwidth'] = 0xFF9D; + t['nlegrightlong'] = 0x019E; + t['nlinebelow'] = 0x1E49; + t['nmonospace'] = 0xFF4E; + t['nmsquare'] = 0x339A; + t['nnabengali'] = 0x09A3; + t['nnadeva'] = 0x0923; + t['nnagujarati'] = 0x0AA3; + t['nnagurmukhi'] = 0x0A23; + t['nnnadeva'] = 0x0929; + t['nohiragana'] = 0x306E; + t['nokatakana'] = 0x30CE; + t['nokatakanahalfwidth'] = 0xFF89; + t['nonbreakingspace'] = 0x00A0; + t['nonenthai'] = 0x0E13; + t['nonuthai'] = 0x0E19; + t['noonarabic'] = 0x0646; + t['noonfinalarabic'] = 0xFEE6; + t['noonghunnaarabic'] = 0x06BA; + t['noonghunnafinalarabic'] = 0xFB9F; + t['nooninitialarabic'] = 0xFEE7; + t['noonjeeminitialarabic'] = 0xFCD2; + t['noonjeemisolatedarabic'] = 0xFC4B; + t['noonmedialarabic'] = 0xFEE8; + t['noonmeeminitialarabic'] = 0xFCD5; + t['noonmeemisolatedarabic'] = 0xFC4E; + t['noonnoonfinalarabic'] = 0xFC8D; + t['notcontains'] = 0x220C; + t['notelement'] = 0x2209; + t['notelementof'] = 0x2209; + t['notequal'] = 0x2260; + t['notgreater'] = 0x226F; + t['notgreaternorequal'] = 0x2271; + t['notgreaternorless'] = 0x2279; + t['notidentical'] = 0x2262; + t['notless'] = 0x226E; + t['notlessnorequal'] = 0x2270; + t['notparallel'] = 0x2226; + t['notprecedes'] = 0x2280; + t['notsubset'] = 0x2284; + t['notsucceeds'] = 0x2281; + t['notsuperset'] = 0x2285; + t['nowarmenian'] = 0x0576; + t['nparen'] = 0x24A9; + t['nssquare'] = 0x33B1; + t['nsuperior'] = 0x207F; + t['ntilde'] = 0x00F1; + t['nu'] = 0x03BD; + t['nuhiragana'] = 0x306C; + t['nukatakana'] = 0x30CC; + t['nukatakanahalfwidth'] = 0xFF87; + t['nuktabengali'] = 0x09BC; + t['nuktadeva'] = 0x093C; + t['nuktagujarati'] = 0x0ABC; + t['nuktagurmukhi'] = 0x0A3C; + t['numbersign'] = 0x0023; + t['numbersignmonospace'] = 0xFF03; + t['numbersignsmall'] = 0xFE5F; + t['numeralsigngreek'] = 0x0374; + t['numeralsignlowergreek'] = 0x0375; + t['numero'] = 0x2116; + t['nun'] = 0x05E0; + t['nundagesh'] = 0xFB40; + t['nundageshhebrew'] = 0xFB40; + t['nunhebrew'] = 0x05E0; + t['nvsquare'] = 0x33B5; + t['nwsquare'] = 0x33BB; + t['nyabengali'] = 0x099E; + t['nyadeva'] = 0x091E; + t['nyagujarati'] = 0x0A9E; + t['nyagurmukhi'] = 0x0A1E; + t['o'] = 0x006F; + t['oacute'] = 0x00F3; + t['oangthai'] = 0x0E2D; + t['obarred'] = 0x0275; + t['obarredcyrillic'] = 0x04E9; + t['obarreddieresiscyrillic'] = 0x04EB; + t['obengali'] = 0x0993; + t['obopomofo'] = 0x311B; + t['obreve'] = 0x014F; + t['ocandradeva'] = 0x0911; + t['ocandragujarati'] = 0x0A91; + t['ocandravowelsigndeva'] = 0x0949; + t['ocandravowelsigngujarati'] = 0x0AC9; + t['ocaron'] = 0x01D2; + t['ocircle'] = 0x24DE; + t['ocircumflex'] = 0x00F4; + t['ocircumflexacute'] = 0x1ED1; + t['ocircumflexdotbelow'] = 0x1ED9; + t['ocircumflexgrave'] = 0x1ED3; + t['ocircumflexhookabove'] = 0x1ED5; + t['ocircumflextilde'] = 0x1ED7; + t['ocyrillic'] = 0x043E; + t['odblacute'] = 0x0151; + t['odblgrave'] = 0x020D; + t['odeva'] = 0x0913; + t['odieresis'] = 0x00F6; + t['odieresiscyrillic'] = 0x04E7; + t['odotbelow'] = 0x1ECD; + t['oe'] = 0x0153; + t['oekorean'] = 0x315A; + t['ogonek'] = 0x02DB; + t['ogonekcmb'] = 0x0328; + t['ograve'] = 0x00F2; + t['ogujarati'] = 0x0A93; + t['oharmenian'] = 0x0585; + t['ohiragana'] = 0x304A; + t['ohookabove'] = 0x1ECF; + t['ohorn'] = 0x01A1; + t['ohornacute'] = 0x1EDB; + t['ohorndotbelow'] = 0x1EE3; + t['ohorngrave'] = 0x1EDD; + t['ohornhookabove'] = 0x1EDF; + t['ohorntilde'] = 0x1EE1; + t['ohungarumlaut'] = 0x0151; + t['oi'] = 0x01A3; + t['oinvertedbreve'] = 0x020F; + t['okatakana'] = 0x30AA; + t['okatakanahalfwidth'] = 0xFF75; + t['okorean'] = 0x3157; + t['olehebrew'] = 0x05AB; + t['omacron'] = 0x014D; + t['omacronacute'] = 0x1E53; + t['omacrongrave'] = 0x1E51; + t['omdeva'] = 0x0950; + t['omega'] = 0x03C9; + t['omega1'] = 0x03D6; + t['omegacyrillic'] = 0x0461; + t['omegalatinclosed'] = 0x0277; + t['omegaroundcyrillic'] = 0x047B; + t['omegatitlocyrillic'] = 0x047D; + t['omegatonos'] = 0x03CE; + t['omgujarati'] = 0x0AD0; + t['omicron'] = 0x03BF; + t['omicrontonos'] = 0x03CC; + t['omonospace'] = 0xFF4F; + t['one'] = 0x0031; + t['onearabic'] = 0x0661; + t['onebengali'] = 0x09E7; + t['onecircle'] = 0x2460; + t['onecircleinversesansserif'] = 0x278A; + t['onedeva'] = 0x0967; + t['onedotenleader'] = 0x2024; + t['oneeighth'] = 0x215B; + t['onefitted'] = 0xF6DC; + t['onegujarati'] = 0x0AE7; + t['onegurmukhi'] = 0x0A67; + t['onehackarabic'] = 0x0661; + t['onehalf'] = 0x00BD; + t['onehangzhou'] = 0x3021; + t['oneideographicparen'] = 0x3220; + t['oneinferior'] = 0x2081; + t['onemonospace'] = 0xFF11; + t['onenumeratorbengali'] = 0x09F4; + t['oneoldstyle'] = 0xF731; + t['oneparen'] = 0x2474; + t['oneperiod'] = 0x2488; + t['onepersian'] = 0x06F1; + t['onequarter'] = 0x00BC; + t['oneroman'] = 0x2170; + t['onesuperior'] = 0x00B9; + t['onethai'] = 0x0E51; + t['onethird'] = 0x2153; + t['oogonek'] = 0x01EB; + t['oogonekmacron'] = 0x01ED; + t['oogurmukhi'] = 0x0A13; + t['oomatragurmukhi'] = 0x0A4B; + t['oopen'] = 0x0254; + t['oparen'] = 0x24AA; + t['openbullet'] = 0x25E6; + t['option'] = 0x2325; + t['ordfeminine'] = 0x00AA; + t['ordmasculine'] = 0x00BA; + t['orthogonal'] = 0x221F; + t['oshortdeva'] = 0x0912; + t['oshortvowelsigndeva'] = 0x094A; + t['oslash'] = 0x00F8; + t['oslashacute'] = 0x01FF; + t['osmallhiragana'] = 0x3049; + t['osmallkatakana'] = 0x30A9; + t['osmallkatakanahalfwidth'] = 0xFF6B; + t['ostrokeacute'] = 0x01FF; + t['osuperior'] = 0xF6F0; + t['otcyrillic'] = 0x047F; + t['otilde'] = 0x00F5; + t['otildeacute'] = 0x1E4D; + t['otildedieresis'] = 0x1E4F; + t['oubopomofo'] = 0x3121; + t['overline'] = 0x203E; + t['overlinecenterline'] = 0xFE4A; + t['overlinecmb'] = 0x0305; + t['overlinedashed'] = 0xFE49; + t['overlinedblwavy'] = 0xFE4C; + t['overlinewavy'] = 0xFE4B; + t['overscore'] = 0x00AF; + t['ovowelsignbengali'] = 0x09CB; + t['ovowelsigndeva'] = 0x094B; + t['ovowelsigngujarati'] = 0x0ACB; + t['p'] = 0x0070; + t['paampssquare'] = 0x3380; + t['paasentosquare'] = 0x332B; + t['pabengali'] = 0x09AA; + t['pacute'] = 0x1E55; + t['padeva'] = 0x092A; + t['pagedown'] = 0x21DF; + t['pageup'] = 0x21DE; + t['pagujarati'] = 0x0AAA; + t['pagurmukhi'] = 0x0A2A; + t['pahiragana'] = 0x3071; + t['paiyannoithai'] = 0x0E2F; + t['pakatakana'] = 0x30D1; + t['palatalizationcyrilliccmb'] = 0x0484; + t['palochkacyrillic'] = 0x04C0; + t['pansioskorean'] = 0x317F; + t['paragraph'] = 0x00B6; + t['parallel'] = 0x2225; + t['parenleft'] = 0x0028; + t['parenleftaltonearabic'] = 0xFD3E; + t['parenleftbt'] = 0xF8ED; + t['parenleftex'] = 0xF8EC; + t['parenleftinferior'] = 0x208D; + t['parenleftmonospace'] = 0xFF08; + t['parenleftsmall'] = 0xFE59; + t['parenleftsuperior'] = 0x207D; + t['parenlefttp'] = 0xF8EB; + t['parenleftvertical'] = 0xFE35; + t['parenright'] = 0x0029; + t['parenrightaltonearabic'] = 0xFD3F; + t['parenrightbt'] = 0xF8F8; + t['parenrightex'] = 0xF8F7; + t['parenrightinferior'] = 0x208E; + t['parenrightmonospace'] = 0xFF09; + t['parenrightsmall'] = 0xFE5A; + t['parenrightsuperior'] = 0x207E; + t['parenrighttp'] = 0xF8F6; + t['parenrightvertical'] = 0xFE36; + t['partialdiff'] = 0x2202; + t['paseqhebrew'] = 0x05C0; + t['pashtahebrew'] = 0x0599; + t['pasquare'] = 0x33A9; + t['patah'] = 0x05B7; + t['patah11'] = 0x05B7; + t['patah1d'] = 0x05B7; + t['patah2a'] = 0x05B7; + t['patahhebrew'] = 0x05B7; + t['patahnarrowhebrew'] = 0x05B7; + t['patahquarterhebrew'] = 0x05B7; + t['patahwidehebrew'] = 0x05B7; + t['pazerhebrew'] = 0x05A1; + t['pbopomofo'] = 0x3106; + t['pcircle'] = 0x24DF; + t['pdotaccent'] = 0x1E57; + t['pe'] = 0x05E4; + t['pecyrillic'] = 0x043F; + t['pedagesh'] = 0xFB44; + t['pedageshhebrew'] = 0xFB44; + t['peezisquare'] = 0x333B; + t['pefinaldageshhebrew'] = 0xFB43; + t['peharabic'] = 0x067E; + t['peharmenian'] = 0x057A; + t['pehebrew'] = 0x05E4; + t['pehfinalarabic'] = 0xFB57; + t['pehinitialarabic'] = 0xFB58; + t['pehiragana'] = 0x307A; + t['pehmedialarabic'] = 0xFB59; + t['pekatakana'] = 0x30DA; + t['pemiddlehookcyrillic'] = 0x04A7; + t['perafehebrew'] = 0xFB4E; + t['percent'] = 0x0025; + t['percentarabic'] = 0x066A; + t['percentmonospace'] = 0xFF05; + t['percentsmall'] = 0xFE6A; + t['period'] = 0x002E; + t['periodarmenian'] = 0x0589; + t['periodcentered'] = 0x00B7; + t['periodhalfwidth'] = 0xFF61; + t['periodinferior'] = 0xF6E7; + t['periodmonospace'] = 0xFF0E; + t['periodsmall'] = 0xFE52; + t['periodsuperior'] = 0xF6E8; + t['perispomenigreekcmb'] = 0x0342; + t['perpendicular'] = 0x22A5; + t['perthousand'] = 0x2030; + t['peseta'] = 0x20A7; + t['pfsquare'] = 0x338A; + t['phabengali'] = 0x09AB; + t['phadeva'] = 0x092B; + t['phagujarati'] = 0x0AAB; + t['phagurmukhi'] = 0x0A2B; + t['phi'] = 0x03C6; + t['phi1'] = 0x03D5; + t['phieuphacirclekorean'] = 0x327A; + t['phieuphaparenkorean'] = 0x321A; + t['phieuphcirclekorean'] = 0x326C; + t['phieuphkorean'] = 0x314D; + t['phieuphparenkorean'] = 0x320C; + t['philatin'] = 0x0278; + t['phinthuthai'] = 0x0E3A; + t['phisymbolgreek'] = 0x03D5; + t['phook'] = 0x01A5; + t['phophanthai'] = 0x0E1E; + t['phophungthai'] = 0x0E1C; + t['phosamphaothai'] = 0x0E20; + t['pi'] = 0x03C0; + t['pieupacirclekorean'] = 0x3273; + t['pieupaparenkorean'] = 0x3213; + t['pieupcieuckorean'] = 0x3176; + t['pieupcirclekorean'] = 0x3265; + t['pieupkiyeokkorean'] = 0x3172; + t['pieupkorean'] = 0x3142; + t['pieupparenkorean'] = 0x3205; + t['pieupsioskiyeokkorean'] = 0x3174; + t['pieupsioskorean'] = 0x3144; + t['pieupsiostikeutkorean'] = 0x3175; + t['pieupthieuthkorean'] = 0x3177; + t['pieuptikeutkorean'] = 0x3173; + t['pihiragana'] = 0x3074; + t['pikatakana'] = 0x30D4; + t['pisymbolgreek'] = 0x03D6; + t['piwrarmenian'] = 0x0583; + t['plus'] = 0x002B; + t['plusbelowcmb'] = 0x031F; + t['pluscircle'] = 0x2295; + t['plusminus'] = 0x00B1; + t['plusmod'] = 0x02D6; + t['plusmonospace'] = 0xFF0B; + t['plussmall'] = 0xFE62; + t['plussuperior'] = 0x207A; + t['pmonospace'] = 0xFF50; + t['pmsquare'] = 0x33D8; + t['pohiragana'] = 0x307D; + t['pointingindexdownwhite'] = 0x261F; + t['pointingindexleftwhite'] = 0x261C; + t['pointingindexrightwhite'] = 0x261E; + t['pointingindexupwhite'] = 0x261D; + t['pokatakana'] = 0x30DD; + t['poplathai'] = 0x0E1B; + t['postalmark'] = 0x3012; + t['postalmarkface'] = 0x3020; + t['pparen'] = 0x24AB; + t['precedes'] = 0x227A; + t['prescription'] = 0x211E; + t['primemod'] = 0x02B9; + t['primereversed'] = 0x2035; + t['product'] = 0x220F; + t['projective'] = 0x2305; + t['prolongedkana'] = 0x30FC; + t['propellor'] = 0x2318; + t['propersubset'] = 0x2282; + t['propersuperset'] = 0x2283; + t['proportion'] = 0x2237; + t['proportional'] = 0x221D; + t['psi'] = 0x03C8; + t['psicyrillic'] = 0x0471; + t['psilipneumatacyrilliccmb'] = 0x0486; + t['pssquare'] = 0x33B0; + t['puhiragana'] = 0x3077; + t['pukatakana'] = 0x30D7; + t['pvsquare'] = 0x33B4; + t['pwsquare'] = 0x33BA; + t['q'] = 0x0071; + t['qadeva'] = 0x0958; + t['qadmahebrew'] = 0x05A8; + t['qafarabic'] = 0x0642; + t['qaffinalarabic'] = 0xFED6; + t['qafinitialarabic'] = 0xFED7; + t['qafmedialarabic'] = 0xFED8; + t['qamats'] = 0x05B8; + t['qamats10'] = 0x05B8; + t['qamats1a'] = 0x05B8; + t['qamats1c'] = 0x05B8; + t['qamats27'] = 0x05B8; + t['qamats29'] = 0x05B8; + t['qamats33'] = 0x05B8; + t['qamatsde'] = 0x05B8; + t['qamatshebrew'] = 0x05B8; + t['qamatsnarrowhebrew'] = 0x05B8; + t['qamatsqatanhebrew'] = 0x05B8; + t['qamatsqatannarrowhebrew'] = 0x05B8; + t['qamatsqatanquarterhebrew'] = 0x05B8; + t['qamatsqatanwidehebrew'] = 0x05B8; + t['qamatsquarterhebrew'] = 0x05B8; + t['qamatswidehebrew'] = 0x05B8; + t['qarneyparahebrew'] = 0x059F; + t['qbopomofo'] = 0x3111; + t['qcircle'] = 0x24E0; + t['qhook'] = 0x02A0; + t['qmonospace'] = 0xFF51; + t['qof'] = 0x05E7; + t['qofdagesh'] = 0xFB47; + t['qofdageshhebrew'] = 0xFB47; + t['qofhebrew'] = 0x05E7; + t['qparen'] = 0x24AC; + t['quarternote'] = 0x2669; + t['qubuts'] = 0x05BB; + t['qubuts18'] = 0x05BB; + t['qubuts25'] = 0x05BB; + t['qubuts31'] = 0x05BB; + t['qubutshebrew'] = 0x05BB; + t['qubutsnarrowhebrew'] = 0x05BB; + t['qubutsquarterhebrew'] = 0x05BB; + t['qubutswidehebrew'] = 0x05BB; + t['question'] = 0x003F; + t['questionarabic'] = 0x061F; + t['questionarmenian'] = 0x055E; + t['questiondown'] = 0x00BF; + t['questiondownsmall'] = 0xF7BF; + t['questiongreek'] = 0x037E; + t['questionmonospace'] = 0xFF1F; + t['questionsmall'] = 0xF73F; + t['quotedbl'] = 0x0022; + t['quotedblbase'] = 0x201E; + t['quotedblleft'] = 0x201C; + t['quotedblmonospace'] = 0xFF02; + t['quotedblprime'] = 0x301E; + t['quotedblprimereversed'] = 0x301D; + t['quotedblright'] = 0x201D; + t['quoteleft'] = 0x2018; + t['quoteleftreversed'] = 0x201B; + t['quotereversed'] = 0x201B; + t['quoteright'] = 0x2019; + t['quoterightn'] = 0x0149; + t['quotesinglbase'] = 0x201A; + t['quotesingle'] = 0x0027; + t['quotesinglemonospace'] = 0xFF07; + t['r'] = 0x0072; + t['raarmenian'] = 0x057C; + t['rabengali'] = 0x09B0; + t['racute'] = 0x0155; + t['radeva'] = 0x0930; + t['radical'] = 0x221A; + t['radicalex'] = 0xF8E5; + t['radoverssquare'] = 0x33AE; + t['radoverssquaredsquare'] = 0x33AF; + t['radsquare'] = 0x33AD; + t['rafe'] = 0x05BF; + t['rafehebrew'] = 0x05BF; + t['ragujarati'] = 0x0AB0; + t['ragurmukhi'] = 0x0A30; + t['rahiragana'] = 0x3089; + t['rakatakana'] = 0x30E9; + t['rakatakanahalfwidth'] = 0xFF97; + t['ralowerdiagonalbengali'] = 0x09F1; + t['ramiddlediagonalbengali'] = 0x09F0; + t['ramshorn'] = 0x0264; + t['ratio'] = 0x2236; + t['rbopomofo'] = 0x3116; + t['rcaron'] = 0x0159; + t['rcedilla'] = 0x0157; + t['rcircle'] = 0x24E1; + t['rcommaaccent'] = 0x0157; + t['rdblgrave'] = 0x0211; + t['rdotaccent'] = 0x1E59; + t['rdotbelow'] = 0x1E5B; + t['rdotbelowmacron'] = 0x1E5D; + t['referencemark'] = 0x203B; + t['reflexsubset'] = 0x2286; + t['reflexsuperset'] = 0x2287; + t['registered'] = 0x00AE; + t['registersans'] = 0xF8E8; + t['registerserif'] = 0xF6DA; + t['reharabic'] = 0x0631; + t['reharmenian'] = 0x0580; + t['rehfinalarabic'] = 0xFEAE; + t['rehiragana'] = 0x308C; + t['rekatakana'] = 0x30EC; + t['rekatakanahalfwidth'] = 0xFF9A; + t['resh'] = 0x05E8; + t['reshdageshhebrew'] = 0xFB48; + t['reshhebrew'] = 0x05E8; + t['reversedtilde'] = 0x223D; + t['reviahebrew'] = 0x0597; + t['reviamugrashhebrew'] = 0x0597; + t['revlogicalnot'] = 0x2310; + t['rfishhook'] = 0x027E; + t['rfishhookreversed'] = 0x027F; + t['rhabengali'] = 0x09DD; + t['rhadeva'] = 0x095D; + t['rho'] = 0x03C1; + t['rhook'] = 0x027D; + t['rhookturned'] = 0x027B; + t['rhookturnedsuperior'] = 0x02B5; + t['rhosymbolgreek'] = 0x03F1; + t['rhotichookmod'] = 0x02DE; + t['rieulacirclekorean'] = 0x3271; + t['rieulaparenkorean'] = 0x3211; + t['rieulcirclekorean'] = 0x3263; + t['rieulhieuhkorean'] = 0x3140; + t['rieulkiyeokkorean'] = 0x313A; + t['rieulkiyeoksioskorean'] = 0x3169; + t['rieulkorean'] = 0x3139; + t['rieulmieumkorean'] = 0x313B; + t['rieulpansioskorean'] = 0x316C; + t['rieulparenkorean'] = 0x3203; + t['rieulphieuphkorean'] = 0x313F; + t['rieulpieupkorean'] = 0x313C; + t['rieulpieupsioskorean'] = 0x316B; + t['rieulsioskorean'] = 0x313D; + t['rieulthieuthkorean'] = 0x313E; + t['rieultikeutkorean'] = 0x316A; + t['rieulyeorinhieuhkorean'] = 0x316D; + t['rightangle'] = 0x221F; + t['righttackbelowcmb'] = 0x0319; + t['righttriangle'] = 0x22BF; + t['rihiragana'] = 0x308A; + t['rikatakana'] = 0x30EA; + t['rikatakanahalfwidth'] = 0xFF98; + t['ring'] = 0x02DA; + t['ringbelowcmb'] = 0x0325; + t['ringcmb'] = 0x030A; + t['ringhalfleft'] = 0x02BF; + t['ringhalfleftarmenian'] = 0x0559; + t['ringhalfleftbelowcmb'] = 0x031C; + t['ringhalfleftcentered'] = 0x02D3; + t['ringhalfright'] = 0x02BE; + t['ringhalfrightbelowcmb'] = 0x0339; + t['ringhalfrightcentered'] = 0x02D2; + t['rinvertedbreve'] = 0x0213; + t['rittorusquare'] = 0x3351; + t['rlinebelow'] = 0x1E5F; + t['rlongleg'] = 0x027C; + t['rlonglegturned'] = 0x027A; + t['rmonospace'] = 0xFF52; + t['rohiragana'] = 0x308D; + t['rokatakana'] = 0x30ED; + t['rokatakanahalfwidth'] = 0xFF9B; + t['roruathai'] = 0x0E23; + t['rparen'] = 0x24AD; + t['rrabengali'] = 0x09DC; + t['rradeva'] = 0x0931; + t['rragurmukhi'] = 0x0A5C; + t['rreharabic'] = 0x0691; + t['rrehfinalarabic'] = 0xFB8D; + t['rrvocalicbengali'] = 0x09E0; + t['rrvocalicdeva'] = 0x0960; + t['rrvocalicgujarati'] = 0x0AE0; + t['rrvocalicvowelsignbengali'] = 0x09C4; + t['rrvocalicvowelsigndeva'] = 0x0944; + t['rrvocalicvowelsigngujarati'] = 0x0AC4; + t['rsuperior'] = 0xF6F1; + t['rtblock'] = 0x2590; + t['rturned'] = 0x0279; + t['rturnedsuperior'] = 0x02B4; + t['ruhiragana'] = 0x308B; + t['rukatakana'] = 0x30EB; + t['rukatakanahalfwidth'] = 0xFF99; + t['rupeemarkbengali'] = 0x09F2; + t['rupeesignbengali'] = 0x09F3; + t['rupiah'] = 0xF6DD; + t['ruthai'] = 0x0E24; + t['rvocalicbengali'] = 0x098B; + t['rvocalicdeva'] = 0x090B; + t['rvocalicgujarati'] = 0x0A8B; + t['rvocalicvowelsignbengali'] = 0x09C3; + t['rvocalicvowelsigndeva'] = 0x0943; + t['rvocalicvowelsigngujarati'] = 0x0AC3; + t['s'] = 0x0073; + t['sabengali'] = 0x09B8; + t['sacute'] = 0x015B; + t['sacutedotaccent'] = 0x1E65; + t['sadarabic'] = 0x0635; + t['sadeva'] = 0x0938; + t['sadfinalarabic'] = 0xFEBA; + t['sadinitialarabic'] = 0xFEBB; + t['sadmedialarabic'] = 0xFEBC; + t['sagujarati'] = 0x0AB8; + t['sagurmukhi'] = 0x0A38; + t['sahiragana'] = 0x3055; + t['sakatakana'] = 0x30B5; + t['sakatakanahalfwidth'] = 0xFF7B; + t['sallallahoualayhewasallamarabic'] = 0xFDFA; + t['samekh'] = 0x05E1; + t['samekhdagesh'] = 0xFB41; + t['samekhdageshhebrew'] = 0xFB41; + t['samekhhebrew'] = 0x05E1; + t['saraaathai'] = 0x0E32; + t['saraaethai'] = 0x0E41; + t['saraaimaimalaithai'] = 0x0E44; + t['saraaimaimuanthai'] = 0x0E43; + t['saraamthai'] = 0x0E33; + t['saraathai'] = 0x0E30; + t['saraethai'] = 0x0E40; + t['saraiileftthai'] = 0xF886; + t['saraiithai'] = 0x0E35; + t['saraileftthai'] = 0xF885; + t['saraithai'] = 0x0E34; + t['saraothai'] = 0x0E42; + t['saraueeleftthai'] = 0xF888; + t['saraueethai'] = 0x0E37; + t['saraueleftthai'] = 0xF887; + t['sarauethai'] = 0x0E36; + t['sarauthai'] = 0x0E38; + t['sarauuthai'] = 0x0E39; + t['sbopomofo'] = 0x3119; + t['scaron'] = 0x0161; + t['scarondotaccent'] = 0x1E67; + t['scedilla'] = 0x015F; + t['schwa'] = 0x0259; + t['schwacyrillic'] = 0x04D9; + t['schwadieresiscyrillic'] = 0x04DB; + t['schwahook'] = 0x025A; + t['scircle'] = 0x24E2; + t['scircumflex'] = 0x015D; + t['scommaaccent'] = 0x0219; + t['sdotaccent'] = 0x1E61; + t['sdotbelow'] = 0x1E63; + t['sdotbelowdotaccent'] = 0x1E69; + t['seagullbelowcmb'] = 0x033C; + t['second'] = 0x2033; + t['secondtonechinese'] = 0x02CA; + t['section'] = 0x00A7; + t['seenarabic'] = 0x0633; + t['seenfinalarabic'] = 0xFEB2; + t['seeninitialarabic'] = 0xFEB3; + t['seenmedialarabic'] = 0xFEB4; + t['segol'] = 0x05B6; + t['segol13'] = 0x05B6; + t['segol1f'] = 0x05B6; + t['segol2c'] = 0x05B6; + t['segolhebrew'] = 0x05B6; + t['segolnarrowhebrew'] = 0x05B6; + t['segolquarterhebrew'] = 0x05B6; + t['segoltahebrew'] = 0x0592; + t['segolwidehebrew'] = 0x05B6; + t['seharmenian'] = 0x057D; + t['sehiragana'] = 0x305B; + t['sekatakana'] = 0x30BB; + t['sekatakanahalfwidth'] = 0xFF7E; + t['semicolon'] = 0x003B; + t['semicolonarabic'] = 0x061B; + t['semicolonmonospace'] = 0xFF1B; + t['semicolonsmall'] = 0xFE54; + t['semivoicedmarkkana'] = 0x309C; + t['semivoicedmarkkanahalfwidth'] = 0xFF9F; + t['sentisquare'] = 0x3322; + t['sentosquare'] = 0x3323; + t['seven'] = 0x0037; + t['sevenarabic'] = 0x0667; + t['sevenbengali'] = 0x09ED; + t['sevencircle'] = 0x2466; + t['sevencircleinversesansserif'] = 0x2790; + t['sevendeva'] = 0x096D; + t['seveneighths'] = 0x215E; + t['sevengujarati'] = 0x0AED; + t['sevengurmukhi'] = 0x0A6D; + t['sevenhackarabic'] = 0x0667; + t['sevenhangzhou'] = 0x3027; + t['sevenideographicparen'] = 0x3226; + t['seveninferior'] = 0x2087; + t['sevenmonospace'] = 0xFF17; + t['sevenoldstyle'] = 0xF737; + t['sevenparen'] = 0x247A; + t['sevenperiod'] = 0x248E; + t['sevenpersian'] = 0x06F7; + t['sevenroman'] = 0x2176; + t['sevensuperior'] = 0x2077; + t['seventeencircle'] = 0x2470; + t['seventeenparen'] = 0x2484; + t['seventeenperiod'] = 0x2498; + t['seventhai'] = 0x0E57; + t['sfthyphen'] = 0x00AD; + t['shaarmenian'] = 0x0577; + t['shabengali'] = 0x09B6; + t['shacyrillic'] = 0x0448; + t['shaddaarabic'] = 0x0651; + t['shaddadammaarabic'] = 0xFC61; + t['shaddadammatanarabic'] = 0xFC5E; + t['shaddafathaarabic'] = 0xFC60; + t['shaddakasraarabic'] = 0xFC62; + t['shaddakasratanarabic'] = 0xFC5F; + t['shade'] = 0x2592; + t['shadedark'] = 0x2593; + t['shadelight'] = 0x2591; + t['shademedium'] = 0x2592; + t['shadeva'] = 0x0936; + t['shagujarati'] = 0x0AB6; + t['shagurmukhi'] = 0x0A36; + t['shalshelethebrew'] = 0x0593; + t['shbopomofo'] = 0x3115; + t['shchacyrillic'] = 0x0449; + t['sheenarabic'] = 0x0634; + t['sheenfinalarabic'] = 0xFEB6; + t['sheeninitialarabic'] = 0xFEB7; + t['sheenmedialarabic'] = 0xFEB8; + t['sheicoptic'] = 0x03E3; + t['sheqel'] = 0x20AA; + t['sheqelhebrew'] = 0x20AA; + t['sheva'] = 0x05B0; + t['sheva115'] = 0x05B0; + t['sheva15'] = 0x05B0; + t['sheva22'] = 0x05B0; + t['sheva2e'] = 0x05B0; + t['shevahebrew'] = 0x05B0; + t['shevanarrowhebrew'] = 0x05B0; + t['shevaquarterhebrew'] = 0x05B0; + t['shevawidehebrew'] = 0x05B0; + t['shhacyrillic'] = 0x04BB; + t['shimacoptic'] = 0x03ED; + t['shin'] = 0x05E9; + t['shindagesh'] = 0xFB49; + t['shindageshhebrew'] = 0xFB49; + t['shindageshshindot'] = 0xFB2C; + t['shindageshshindothebrew'] = 0xFB2C; + t['shindageshsindot'] = 0xFB2D; + t['shindageshsindothebrew'] = 0xFB2D; + t['shindothebrew'] = 0x05C1; + t['shinhebrew'] = 0x05E9; + t['shinshindot'] = 0xFB2A; + t['shinshindothebrew'] = 0xFB2A; + t['shinsindot'] = 0xFB2B; + t['shinsindothebrew'] = 0xFB2B; + t['shook'] = 0x0282; + t['sigma'] = 0x03C3; + t['sigma1'] = 0x03C2; + t['sigmafinal'] = 0x03C2; + t['sigmalunatesymbolgreek'] = 0x03F2; + t['sihiragana'] = 0x3057; + t['sikatakana'] = 0x30B7; + t['sikatakanahalfwidth'] = 0xFF7C; + t['siluqhebrew'] = 0x05BD; + t['siluqlefthebrew'] = 0x05BD; + t['similar'] = 0x223C; + t['sindothebrew'] = 0x05C2; + t['siosacirclekorean'] = 0x3274; + t['siosaparenkorean'] = 0x3214; + t['sioscieuckorean'] = 0x317E; + t['sioscirclekorean'] = 0x3266; + t['sioskiyeokkorean'] = 0x317A; + t['sioskorean'] = 0x3145; + t['siosnieunkorean'] = 0x317B; + t['siosparenkorean'] = 0x3206; + t['siospieupkorean'] = 0x317D; + t['siostikeutkorean'] = 0x317C; + t['six'] = 0x0036; + t['sixarabic'] = 0x0666; + t['sixbengali'] = 0x09EC; + t['sixcircle'] = 0x2465; + t['sixcircleinversesansserif'] = 0x278F; + t['sixdeva'] = 0x096C; + t['sixgujarati'] = 0x0AEC; + t['sixgurmukhi'] = 0x0A6C; + t['sixhackarabic'] = 0x0666; + t['sixhangzhou'] = 0x3026; + t['sixideographicparen'] = 0x3225; + t['sixinferior'] = 0x2086; + t['sixmonospace'] = 0xFF16; + t['sixoldstyle'] = 0xF736; + t['sixparen'] = 0x2479; + t['sixperiod'] = 0x248D; + t['sixpersian'] = 0x06F6; + t['sixroman'] = 0x2175; + t['sixsuperior'] = 0x2076; + t['sixteencircle'] = 0x246F; + t['sixteencurrencydenominatorbengali'] = 0x09F9; + t['sixteenparen'] = 0x2483; + t['sixteenperiod'] = 0x2497; + t['sixthai'] = 0x0E56; + t['slash'] = 0x002F; + t['slashmonospace'] = 0xFF0F; + t['slong'] = 0x017F; + t['slongdotaccent'] = 0x1E9B; + t['smileface'] = 0x263A; + t['smonospace'] = 0xFF53; + t['sofpasuqhebrew'] = 0x05C3; + t['softhyphen'] = 0x00AD; + t['softsigncyrillic'] = 0x044C; + t['sohiragana'] = 0x305D; + t['sokatakana'] = 0x30BD; + t['sokatakanahalfwidth'] = 0xFF7F; + t['soliduslongoverlaycmb'] = 0x0338; + t['solidusshortoverlaycmb'] = 0x0337; + t['sorusithai'] = 0x0E29; + t['sosalathai'] = 0x0E28; + t['sosothai'] = 0x0E0B; + t['sosuathai'] = 0x0E2A; + t['space'] = 0x0020; + t['spacehackarabic'] = 0x0020; + t['spade'] = 0x2660; + t['spadesuitblack'] = 0x2660; + t['spadesuitwhite'] = 0x2664; + t['sparen'] = 0x24AE; + t['squarebelowcmb'] = 0x033B; + t['squarecc'] = 0x33C4; + t['squarecm'] = 0x339D; + t['squarediagonalcrosshatchfill'] = 0x25A9; + t['squarehorizontalfill'] = 0x25A4; + t['squarekg'] = 0x338F; + t['squarekm'] = 0x339E; + t['squarekmcapital'] = 0x33CE; + t['squareln'] = 0x33D1; + t['squarelog'] = 0x33D2; + t['squaremg'] = 0x338E; + t['squaremil'] = 0x33D5; + t['squaremm'] = 0x339C; + t['squaremsquared'] = 0x33A1; + t['squareorthogonalcrosshatchfill'] = 0x25A6; + t['squareupperlefttolowerrightfill'] = 0x25A7; + t['squareupperrighttolowerleftfill'] = 0x25A8; + t['squareverticalfill'] = 0x25A5; + t['squarewhitewithsmallblack'] = 0x25A3; + t['srsquare'] = 0x33DB; + t['ssabengali'] = 0x09B7; + t['ssadeva'] = 0x0937; + t['ssagujarati'] = 0x0AB7; + t['ssangcieuckorean'] = 0x3149; + t['ssanghieuhkorean'] = 0x3185; + t['ssangieungkorean'] = 0x3180; + t['ssangkiyeokkorean'] = 0x3132; + t['ssangnieunkorean'] = 0x3165; + t['ssangpieupkorean'] = 0x3143; + t['ssangsioskorean'] = 0x3146; + t['ssangtikeutkorean'] = 0x3138; + t['ssuperior'] = 0xF6F2; + t['sterling'] = 0x00A3; + t['sterlingmonospace'] = 0xFFE1; + t['strokelongoverlaycmb'] = 0x0336; + t['strokeshortoverlaycmb'] = 0x0335; + t['subset'] = 0x2282; + t['subsetnotequal'] = 0x228A; + t['subsetorequal'] = 0x2286; + t['succeeds'] = 0x227B; + t['suchthat'] = 0x220B; + t['suhiragana'] = 0x3059; + t['sukatakana'] = 0x30B9; + t['sukatakanahalfwidth'] = 0xFF7D; + t['sukunarabic'] = 0x0652; + t['summation'] = 0x2211; + t['sun'] = 0x263C; + t['superset'] = 0x2283; + t['supersetnotequal'] = 0x228B; + t['supersetorequal'] = 0x2287; + t['svsquare'] = 0x33DC; + t['syouwaerasquare'] = 0x337C; + t['t'] = 0x0074; + t['tabengali'] = 0x09A4; + t['tackdown'] = 0x22A4; + t['tackleft'] = 0x22A3; + t['tadeva'] = 0x0924; + t['tagujarati'] = 0x0AA4; + t['tagurmukhi'] = 0x0A24; + t['taharabic'] = 0x0637; + t['tahfinalarabic'] = 0xFEC2; + t['tahinitialarabic'] = 0xFEC3; + t['tahiragana'] = 0x305F; + t['tahmedialarabic'] = 0xFEC4; + t['taisyouerasquare'] = 0x337D; + t['takatakana'] = 0x30BF; + t['takatakanahalfwidth'] = 0xFF80; + t['tatweelarabic'] = 0x0640; + t['tau'] = 0x03C4; + t['tav'] = 0x05EA; + t['tavdages'] = 0xFB4A; + t['tavdagesh'] = 0xFB4A; + t['tavdageshhebrew'] = 0xFB4A; + t['tavhebrew'] = 0x05EA; + t['tbar'] = 0x0167; + t['tbopomofo'] = 0x310A; + t['tcaron'] = 0x0165; + t['tccurl'] = 0x02A8; + t['tcedilla'] = 0x0163; + t['tcheharabic'] = 0x0686; + t['tchehfinalarabic'] = 0xFB7B; + t['tchehinitialarabic'] = 0xFB7C; + t['tchehmedialarabic'] = 0xFB7D; + t['tcircle'] = 0x24E3; + t['tcircumflexbelow'] = 0x1E71; + t['tcommaaccent'] = 0x0163; + t['tdieresis'] = 0x1E97; + t['tdotaccent'] = 0x1E6B; + t['tdotbelow'] = 0x1E6D; + t['tecyrillic'] = 0x0442; + t['tedescendercyrillic'] = 0x04AD; + t['teharabic'] = 0x062A; + t['tehfinalarabic'] = 0xFE96; + t['tehhahinitialarabic'] = 0xFCA2; + t['tehhahisolatedarabic'] = 0xFC0C; + t['tehinitialarabic'] = 0xFE97; + t['tehiragana'] = 0x3066; + t['tehjeeminitialarabic'] = 0xFCA1; + t['tehjeemisolatedarabic'] = 0xFC0B; + t['tehmarbutaarabic'] = 0x0629; + t['tehmarbutafinalarabic'] = 0xFE94; + t['tehmedialarabic'] = 0xFE98; + t['tehmeeminitialarabic'] = 0xFCA4; + t['tehmeemisolatedarabic'] = 0xFC0E; + t['tehnoonfinalarabic'] = 0xFC73; + t['tekatakana'] = 0x30C6; + t['tekatakanahalfwidth'] = 0xFF83; + t['telephone'] = 0x2121; + t['telephoneblack'] = 0x260E; + t['telishagedolahebrew'] = 0x05A0; + t['telishaqetanahebrew'] = 0x05A9; + t['tencircle'] = 0x2469; + t['tenideographicparen'] = 0x3229; + t['tenparen'] = 0x247D; + t['tenperiod'] = 0x2491; + t['tenroman'] = 0x2179; + t['tesh'] = 0x02A7; + t['tet'] = 0x05D8; + t['tetdagesh'] = 0xFB38; + t['tetdageshhebrew'] = 0xFB38; + t['tethebrew'] = 0x05D8; + t['tetsecyrillic'] = 0x04B5; + t['tevirhebrew'] = 0x059B; + t['tevirlefthebrew'] = 0x059B; + t['thabengali'] = 0x09A5; + t['thadeva'] = 0x0925; + t['thagujarati'] = 0x0AA5; + t['thagurmukhi'] = 0x0A25; + t['thalarabic'] = 0x0630; + t['thalfinalarabic'] = 0xFEAC; + t['thanthakhatlowleftthai'] = 0xF898; + t['thanthakhatlowrightthai'] = 0xF897; + t['thanthakhatthai'] = 0x0E4C; + t['thanthakhatupperleftthai'] = 0xF896; + t['theharabic'] = 0x062B; + t['thehfinalarabic'] = 0xFE9A; + t['thehinitialarabic'] = 0xFE9B; + t['thehmedialarabic'] = 0xFE9C; + t['thereexists'] = 0x2203; + t['therefore'] = 0x2234; + t['theta'] = 0x03B8; + t['theta1'] = 0x03D1; + t['thetasymbolgreek'] = 0x03D1; + t['thieuthacirclekorean'] = 0x3279; + t['thieuthaparenkorean'] = 0x3219; + t['thieuthcirclekorean'] = 0x326B; + t['thieuthkorean'] = 0x314C; + t['thieuthparenkorean'] = 0x320B; + t['thirteencircle'] = 0x246C; + t['thirteenparen'] = 0x2480; + t['thirteenperiod'] = 0x2494; + t['thonangmonthothai'] = 0x0E11; + t['thook'] = 0x01AD; + t['thophuthaothai'] = 0x0E12; + t['thorn'] = 0x00FE; + t['thothahanthai'] = 0x0E17; + t['thothanthai'] = 0x0E10; + t['thothongthai'] = 0x0E18; + t['thothungthai'] = 0x0E16; + t['thousandcyrillic'] = 0x0482; + t['thousandsseparatorarabic'] = 0x066C; + t['thousandsseparatorpersian'] = 0x066C; + t['three'] = 0x0033; + t['threearabic'] = 0x0663; + t['threebengali'] = 0x09E9; + t['threecircle'] = 0x2462; + t['threecircleinversesansserif'] = 0x278C; + t['threedeva'] = 0x0969; + t['threeeighths'] = 0x215C; + t['threegujarati'] = 0x0AE9; + t['threegurmukhi'] = 0x0A69; + t['threehackarabic'] = 0x0663; + t['threehangzhou'] = 0x3023; + t['threeideographicparen'] = 0x3222; + t['threeinferior'] = 0x2083; + t['threemonospace'] = 0xFF13; + t['threenumeratorbengali'] = 0x09F6; + t['threeoldstyle'] = 0xF733; + t['threeparen'] = 0x2476; + t['threeperiod'] = 0x248A; + t['threepersian'] = 0x06F3; + t['threequarters'] = 0x00BE; + t['threequartersemdash'] = 0xF6DE; + t['threeroman'] = 0x2172; + t['threesuperior'] = 0x00B3; + t['threethai'] = 0x0E53; + t['thzsquare'] = 0x3394; + t['tihiragana'] = 0x3061; + t['tikatakana'] = 0x30C1; + t['tikatakanahalfwidth'] = 0xFF81; + t['tikeutacirclekorean'] = 0x3270; + t['tikeutaparenkorean'] = 0x3210; + t['tikeutcirclekorean'] = 0x3262; + t['tikeutkorean'] = 0x3137; + t['tikeutparenkorean'] = 0x3202; + t['tilde'] = 0x02DC; + t['tildebelowcmb'] = 0x0330; + t['tildecmb'] = 0x0303; + t['tildecomb'] = 0x0303; + t['tildedoublecmb'] = 0x0360; + t['tildeoperator'] = 0x223C; + t['tildeoverlaycmb'] = 0x0334; + t['tildeverticalcmb'] = 0x033E; + t['timescircle'] = 0x2297; + t['tipehahebrew'] = 0x0596; + t['tipehalefthebrew'] = 0x0596; + t['tippigurmukhi'] = 0x0A70; + t['titlocyrilliccmb'] = 0x0483; + t['tiwnarmenian'] = 0x057F; + t['tlinebelow'] = 0x1E6F; + t['tmonospace'] = 0xFF54; + t['toarmenian'] = 0x0569; + t['tohiragana'] = 0x3068; + t['tokatakana'] = 0x30C8; + t['tokatakanahalfwidth'] = 0xFF84; + t['tonebarextrahighmod'] = 0x02E5; + t['tonebarextralowmod'] = 0x02E9; + t['tonebarhighmod'] = 0x02E6; + t['tonebarlowmod'] = 0x02E8; + t['tonebarmidmod'] = 0x02E7; + t['tonefive'] = 0x01BD; + t['tonesix'] = 0x0185; + t['tonetwo'] = 0x01A8; + t['tonos'] = 0x0384; + t['tonsquare'] = 0x3327; + t['topatakthai'] = 0x0E0F; + t['tortoiseshellbracketleft'] = 0x3014; + t['tortoiseshellbracketleftsmall'] = 0xFE5D; + t['tortoiseshellbracketleftvertical'] = 0xFE39; + t['tortoiseshellbracketright'] = 0x3015; + t['tortoiseshellbracketrightsmall'] = 0xFE5E; + t['tortoiseshellbracketrightvertical'] = 0xFE3A; + t['totaothai'] = 0x0E15; + t['tpalatalhook'] = 0x01AB; + t['tparen'] = 0x24AF; + t['trademark'] = 0x2122; + t['trademarksans'] = 0xF8EA; + t['trademarkserif'] = 0xF6DB; + t['tretroflexhook'] = 0x0288; + t['triagdn'] = 0x25BC; + t['triaglf'] = 0x25C4; + t['triagrt'] = 0x25BA; + t['triagup'] = 0x25B2; + t['ts'] = 0x02A6; + t['tsadi'] = 0x05E6; + t['tsadidagesh'] = 0xFB46; + t['tsadidageshhebrew'] = 0xFB46; + t['tsadihebrew'] = 0x05E6; + t['tsecyrillic'] = 0x0446; + t['tsere'] = 0x05B5; + t['tsere12'] = 0x05B5; + t['tsere1e'] = 0x05B5; + t['tsere2b'] = 0x05B5; + t['tserehebrew'] = 0x05B5; + t['tserenarrowhebrew'] = 0x05B5; + t['tserequarterhebrew'] = 0x05B5; + t['tserewidehebrew'] = 0x05B5; + t['tshecyrillic'] = 0x045B; + t['tsuperior'] = 0xF6F3; + t['ttabengali'] = 0x099F; + t['ttadeva'] = 0x091F; + t['ttagujarati'] = 0x0A9F; + t['ttagurmukhi'] = 0x0A1F; + t['tteharabic'] = 0x0679; + t['ttehfinalarabic'] = 0xFB67; + t['ttehinitialarabic'] = 0xFB68; + t['ttehmedialarabic'] = 0xFB69; + t['tthabengali'] = 0x09A0; + t['tthadeva'] = 0x0920; + t['tthagujarati'] = 0x0AA0; + t['tthagurmukhi'] = 0x0A20; + t['tturned'] = 0x0287; + t['tuhiragana'] = 0x3064; + t['tukatakana'] = 0x30C4; + t['tukatakanahalfwidth'] = 0xFF82; + t['tusmallhiragana'] = 0x3063; + t['tusmallkatakana'] = 0x30C3; + t['tusmallkatakanahalfwidth'] = 0xFF6F; + t['twelvecircle'] = 0x246B; + t['twelveparen'] = 0x247F; + t['twelveperiod'] = 0x2493; + t['twelveroman'] = 0x217B; + t['twentycircle'] = 0x2473; + t['twentyhangzhou'] = 0x5344; + t['twentyparen'] = 0x2487; + t['twentyperiod'] = 0x249B; + t['two'] = 0x0032; + t['twoarabic'] = 0x0662; + t['twobengali'] = 0x09E8; + t['twocircle'] = 0x2461; + t['twocircleinversesansserif'] = 0x278B; + t['twodeva'] = 0x0968; + t['twodotenleader'] = 0x2025; + t['twodotleader'] = 0x2025; + t['twodotleadervertical'] = 0xFE30; + t['twogujarati'] = 0x0AE8; + t['twogurmukhi'] = 0x0A68; + t['twohackarabic'] = 0x0662; + t['twohangzhou'] = 0x3022; + t['twoideographicparen'] = 0x3221; + t['twoinferior'] = 0x2082; + t['twomonospace'] = 0xFF12; + t['twonumeratorbengali'] = 0x09F5; + t['twooldstyle'] = 0xF732; + t['twoparen'] = 0x2475; + t['twoperiod'] = 0x2489; + t['twopersian'] = 0x06F2; + t['tworoman'] = 0x2171; + t['twostroke'] = 0x01BB; + t['twosuperior'] = 0x00B2; + t['twothai'] = 0x0E52; + t['twothirds'] = 0x2154; + t['u'] = 0x0075; + t['uacute'] = 0x00FA; + t['ubar'] = 0x0289; + t['ubengali'] = 0x0989; + t['ubopomofo'] = 0x3128; + t['ubreve'] = 0x016D; + t['ucaron'] = 0x01D4; + t['ucircle'] = 0x24E4; + t['ucircumflex'] = 0x00FB; + t['ucircumflexbelow'] = 0x1E77; + t['ucyrillic'] = 0x0443; + t['udattadeva'] = 0x0951; + t['udblacute'] = 0x0171; + t['udblgrave'] = 0x0215; + t['udeva'] = 0x0909; + t['udieresis'] = 0x00FC; + t['udieresisacute'] = 0x01D8; + t['udieresisbelow'] = 0x1E73; + t['udieresiscaron'] = 0x01DA; + t['udieresiscyrillic'] = 0x04F1; + t['udieresisgrave'] = 0x01DC; + t['udieresismacron'] = 0x01D6; + t['udotbelow'] = 0x1EE5; + t['ugrave'] = 0x00F9; + t['ugujarati'] = 0x0A89; + t['ugurmukhi'] = 0x0A09; + t['uhiragana'] = 0x3046; + t['uhookabove'] = 0x1EE7; + t['uhorn'] = 0x01B0; + t['uhornacute'] = 0x1EE9; + t['uhorndotbelow'] = 0x1EF1; + t['uhorngrave'] = 0x1EEB; + t['uhornhookabove'] = 0x1EED; + t['uhorntilde'] = 0x1EEF; + t['uhungarumlaut'] = 0x0171; + t['uhungarumlautcyrillic'] = 0x04F3; + t['uinvertedbreve'] = 0x0217; + t['ukatakana'] = 0x30A6; + t['ukatakanahalfwidth'] = 0xFF73; + t['ukcyrillic'] = 0x0479; + t['ukorean'] = 0x315C; + t['umacron'] = 0x016B; + t['umacroncyrillic'] = 0x04EF; + t['umacrondieresis'] = 0x1E7B; + t['umatragurmukhi'] = 0x0A41; + t['umonospace'] = 0xFF55; + t['underscore'] = 0x005F; + t['underscoredbl'] = 0x2017; + t['underscoremonospace'] = 0xFF3F; + t['underscorevertical'] = 0xFE33; + t['underscorewavy'] = 0xFE4F; + t['union'] = 0x222A; + t['universal'] = 0x2200; + t['uogonek'] = 0x0173; + t['uparen'] = 0x24B0; + t['upblock'] = 0x2580; + t['upperdothebrew'] = 0x05C4; + t['upsilon'] = 0x03C5; + t['upsilondieresis'] = 0x03CB; + t['upsilondieresistonos'] = 0x03B0; + t['upsilonlatin'] = 0x028A; + t['upsilontonos'] = 0x03CD; + t['uptackbelowcmb'] = 0x031D; + t['uptackmod'] = 0x02D4; + t['uragurmukhi'] = 0x0A73; + t['uring'] = 0x016F; + t['ushortcyrillic'] = 0x045E; + t['usmallhiragana'] = 0x3045; + t['usmallkatakana'] = 0x30A5; + t['usmallkatakanahalfwidth'] = 0xFF69; + t['ustraightcyrillic'] = 0x04AF; + t['ustraightstrokecyrillic'] = 0x04B1; + t['utilde'] = 0x0169; + t['utildeacute'] = 0x1E79; + t['utildebelow'] = 0x1E75; + t['uubengali'] = 0x098A; + t['uudeva'] = 0x090A; + t['uugujarati'] = 0x0A8A; + t['uugurmukhi'] = 0x0A0A; + t['uumatragurmukhi'] = 0x0A42; + t['uuvowelsignbengali'] = 0x09C2; + t['uuvowelsigndeva'] = 0x0942; + t['uuvowelsigngujarati'] = 0x0AC2; + t['uvowelsignbengali'] = 0x09C1; + t['uvowelsigndeva'] = 0x0941; + t['uvowelsigngujarati'] = 0x0AC1; + t['v'] = 0x0076; + t['vadeva'] = 0x0935; + t['vagujarati'] = 0x0AB5; + t['vagurmukhi'] = 0x0A35; + t['vakatakana'] = 0x30F7; + t['vav'] = 0x05D5; + t['vavdagesh'] = 0xFB35; + t['vavdagesh65'] = 0xFB35; + t['vavdageshhebrew'] = 0xFB35; + t['vavhebrew'] = 0x05D5; + t['vavholam'] = 0xFB4B; + t['vavholamhebrew'] = 0xFB4B; + t['vavvavhebrew'] = 0x05F0; + t['vavyodhebrew'] = 0x05F1; + t['vcircle'] = 0x24E5; + t['vdotbelow'] = 0x1E7F; + t['vecyrillic'] = 0x0432; + t['veharabic'] = 0x06A4; + t['vehfinalarabic'] = 0xFB6B; + t['vehinitialarabic'] = 0xFB6C; + t['vehmedialarabic'] = 0xFB6D; + t['vekatakana'] = 0x30F9; + t['venus'] = 0x2640; + t['verticalbar'] = 0x007C; + t['verticallineabovecmb'] = 0x030D; + t['verticallinebelowcmb'] = 0x0329; + t['verticallinelowmod'] = 0x02CC; + t['verticallinemod'] = 0x02C8; + t['vewarmenian'] = 0x057E; + t['vhook'] = 0x028B; + t['vikatakana'] = 0x30F8; + t['viramabengali'] = 0x09CD; + t['viramadeva'] = 0x094D; + t['viramagujarati'] = 0x0ACD; + t['visargabengali'] = 0x0983; + t['visargadeva'] = 0x0903; + t['visargagujarati'] = 0x0A83; + t['vmonospace'] = 0xFF56; + t['voarmenian'] = 0x0578; + t['voicediterationhiragana'] = 0x309E; + t['voicediterationkatakana'] = 0x30FE; + t['voicedmarkkana'] = 0x309B; + t['voicedmarkkanahalfwidth'] = 0xFF9E; + t['vokatakana'] = 0x30FA; + t['vparen'] = 0x24B1; + t['vtilde'] = 0x1E7D; + t['vturned'] = 0x028C; + t['vuhiragana'] = 0x3094; + t['vukatakana'] = 0x30F4; + t['w'] = 0x0077; + t['wacute'] = 0x1E83; + t['waekorean'] = 0x3159; + t['wahiragana'] = 0x308F; + t['wakatakana'] = 0x30EF; + t['wakatakanahalfwidth'] = 0xFF9C; + t['wakorean'] = 0x3158; + t['wasmallhiragana'] = 0x308E; + t['wasmallkatakana'] = 0x30EE; + t['wattosquare'] = 0x3357; + t['wavedash'] = 0x301C; + t['wavyunderscorevertical'] = 0xFE34; + t['wawarabic'] = 0x0648; + t['wawfinalarabic'] = 0xFEEE; + t['wawhamzaabovearabic'] = 0x0624; + t['wawhamzaabovefinalarabic'] = 0xFE86; + t['wbsquare'] = 0x33DD; + t['wcircle'] = 0x24E6; + t['wcircumflex'] = 0x0175; + t['wdieresis'] = 0x1E85; + t['wdotaccent'] = 0x1E87; + t['wdotbelow'] = 0x1E89; + t['wehiragana'] = 0x3091; + t['weierstrass'] = 0x2118; + t['wekatakana'] = 0x30F1; + t['wekorean'] = 0x315E; + t['weokorean'] = 0x315D; + t['wgrave'] = 0x1E81; + t['whitebullet'] = 0x25E6; + t['whitecircle'] = 0x25CB; + t['whitecircleinverse'] = 0x25D9; + t['whitecornerbracketleft'] = 0x300E; + t['whitecornerbracketleftvertical'] = 0xFE43; + t['whitecornerbracketright'] = 0x300F; + t['whitecornerbracketrightvertical'] = 0xFE44; + t['whitediamond'] = 0x25C7; + t['whitediamondcontainingblacksmalldiamond'] = 0x25C8; + t['whitedownpointingsmalltriangle'] = 0x25BF; + t['whitedownpointingtriangle'] = 0x25BD; + t['whiteleftpointingsmalltriangle'] = 0x25C3; + t['whiteleftpointingtriangle'] = 0x25C1; + t['whitelenticularbracketleft'] = 0x3016; + t['whitelenticularbracketright'] = 0x3017; + t['whiterightpointingsmalltriangle'] = 0x25B9; + t['whiterightpointingtriangle'] = 0x25B7; + t['whitesmallsquare'] = 0x25AB; + t['whitesmilingface'] = 0x263A; + t['whitesquare'] = 0x25A1; + t['whitestar'] = 0x2606; + t['whitetelephone'] = 0x260F; + t['whitetortoiseshellbracketleft'] = 0x3018; + t['whitetortoiseshellbracketright'] = 0x3019; + t['whiteuppointingsmalltriangle'] = 0x25B5; + t['whiteuppointingtriangle'] = 0x25B3; + t['wihiragana'] = 0x3090; + t['wikatakana'] = 0x30F0; + t['wikorean'] = 0x315F; + t['wmonospace'] = 0xFF57; + t['wohiragana'] = 0x3092; + t['wokatakana'] = 0x30F2; + t['wokatakanahalfwidth'] = 0xFF66; + t['won'] = 0x20A9; + t['wonmonospace'] = 0xFFE6; + t['wowaenthai'] = 0x0E27; + t['wparen'] = 0x24B2; + t['wring'] = 0x1E98; + t['wsuperior'] = 0x02B7; + t['wturned'] = 0x028D; + t['wynn'] = 0x01BF; + t['x'] = 0x0078; + t['xabovecmb'] = 0x033D; + t['xbopomofo'] = 0x3112; + t['xcircle'] = 0x24E7; + t['xdieresis'] = 0x1E8D; + t['xdotaccent'] = 0x1E8B; + t['xeharmenian'] = 0x056D; + t['xi'] = 0x03BE; + t['xmonospace'] = 0xFF58; + t['xparen'] = 0x24B3; + t['xsuperior'] = 0x02E3; + t['y'] = 0x0079; + t['yaadosquare'] = 0x334E; + t['yabengali'] = 0x09AF; + t['yacute'] = 0x00FD; + t['yadeva'] = 0x092F; + t['yaekorean'] = 0x3152; + t['yagujarati'] = 0x0AAF; + t['yagurmukhi'] = 0x0A2F; + t['yahiragana'] = 0x3084; + t['yakatakana'] = 0x30E4; + t['yakatakanahalfwidth'] = 0xFF94; + t['yakorean'] = 0x3151; + t['yamakkanthai'] = 0x0E4E; + t['yasmallhiragana'] = 0x3083; + t['yasmallkatakana'] = 0x30E3; + t['yasmallkatakanahalfwidth'] = 0xFF6C; + t['yatcyrillic'] = 0x0463; + t['ycircle'] = 0x24E8; + t['ycircumflex'] = 0x0177; + t['ydieresis'] = 0x00FF; + t['ydotaccent'] = 0x1E8F; + t['ydotbelow'] = 0x1EF5; + t['yeharabic'] = 0x064A; + t['yehbarreearabic'] = 0x06D2; + t['yehbarreefinalarabic'] = 0xFBAF; + t['yehfinalarabic'] = 0xFEF2; + t['yehhamzaabovearabic'] = 0x0626; + t['yehhamzaabovefinalarabic'] = 0xFE8A; + t['yehhamzaaboveinitialarabic'] = 0xFE8B; + t['yehhamzaabovemedialarabic'] = 0xFE8C; + t['yehinitialarabic'] = 0xFEF3; + t['yehmedialarabic'] = 0xFEF4; + t['yehmeeminitialarabic'] = 0xFCDD; + t['yehmeemisolatedarabic'] = 0xFC58; + t['yehnoonfinalarabic'] = 0xFC94; + t['yehthreedotsbelowarabic'] = 0x06D1; + t['yekorean'] = 0x3156; + t['yen'] = 0x00A5; + t['yenmonospace'] = 0xFFE5; + t['yeokorean'] = 0x3155; + t['yeorinhieuhkorean'] = 0x3186; + t['yerahbenyomohebrew'] = 0x05AA; + t['yerahbenyomolefthebrew'] = 0x05AA; + t['yericyrillic'] = 0x044B; + t['yerudieresiscyrillic'] = 0x04F9; + t['yesieungkorean'] = 0x3181; + t['yesieungpansioskorean'] = 0x3183; + t['yesieungsioskorean'] = 0x3182; + t['yetivhebrew'] = 0x059A; + t['ygrave'] = 0x1EF3; + t['yhook'] = 0x01B4; + t['yhookabove'] = 0x1EF7; + t['yiarmenian'] = 0x0575; + t['yicyrillic'] = 0x0457; + t['yikorean'] = 0x3162; + t['yinyang'] = 0x262F; + t['yiwnarmenian'] = 0x0582; + t['ymonospace'] = 0xFF59; + t['yod'] = 0x05D9; + t['yoddagesh'] = 0xFB39; + t['yoddageshhebrew'] = 0xFB39; + t['yodhebrew'] = 0x05D9; + t['yodyodhebrew'] = 0x05F2; + t['yodyodpatahhebrew'] = 0xFB1F; + t['yohiragana'] = 0x3088; + t['yoikorean'] = 0x3189; + t['yokatakana'] = 0x30E8; + t['yokatakanahalfwidth'] = 0xFF96; + t['yokorean'] = 0x315B; + t['yosmallhiragana'] = 0x3087; + t['yosmallkatakana'] = 0x30E7; + t['yosmallkatakanahalfwidth'] = 0xFF6E; + t['yotgreek'] = 0x03F3; + t['yoyaekorean'] = 0x3188; + t['yoyakorean'] = 0x3187; + t['yoyakthai'] = 0x0E22; + t['yoyingthai'] = 0x0E0D; + t['yparen'] = 0x24B4; + t['ypogegrammeni'] = 0x037A; + t['ypogegrammenigreekcmb'] = 0x0345; + t['yr'] = 0x01A6; + t['yring'] = 0x1E99; + t['ysuperior'] = 0x02B8; + t['ytilde'] = 0x1EF9; + t['yturned'] = 0x028E; + t['yuhiragana'] = 0x3086; + t['yuikorean'] = 0x318C; + t['yukatakana'] = 0x30E6; + t['yukatakanahalfwidth'] = 0xFF95; + t['yukorean'] = 0x3160; + t['yusbigcyrillic'] = 0x046B; + t['yusbigiotifiedcyrillic'] = 0x046D; + t['yuslittlecyrillic'] = 0x0467; + t['yuslittleiotifiedcyrillic'] = 0x0469; + t['yusmallhiragana'] = 0x3085; + t['yusmallkatakana'] = 0x30E5; + t['yusmallkatakanahalfwidth'] = 0xFF6D; + t['yuyekorean'] = 0x318B; + t['yuyeokorean'] = 0x318A; + t['yyabengali'] = 0x09DF; + t['yyadeva'] = 0x095F; + t['z'] = 0x007A; + t['zaarmenian'] = 0x0566; + t['zacute'] = 0x017A; + t['zadeva'] = 0x095B; + t['zagurmukhi'] = 0x0A5B; + t['zaharabic'] = 0x0638; + t['zahfinalarabic'] = 0xFEC6; + t['zahinitialarabic'] = 0xFEC7; + t['zahiragana'] = 0x3056; + t['zahmedialarabic'] = 0xFEC8; + t['zainarabic'] = 0x0632; + t['zainfinalarabic'] = 0xFEB0; + t['zakatakana'] = 0x30B6; + t['zaqefgadolhebrew'] = 0x0595; + t['zaqefqatanhebrew'] = 0x0594; + t['zarqahebrew'] = 0x0598; + t['zayin'] = 0x05D6; + t['zayindagesh'] = 0xFB36; + t['zayindageshhebrew'] = 0xFB36; + t['zayinhebrew'] = 0x05D6; + t['zbopomofo'] = 0x3117; + t['zcaron'] = 0x017E; + t['zcircle'] = 0x24E9; + t['zcircumflex'] = 0x1E91; + t['zcurl'] = 0x0291; + t['zdot'] = 0x017C; + t['zdotaccent'] = 0x017C; + t['zdotbelow'] = 0x1E93; + t['zecyrillic'] = 0x0437; + t['zedescendercyrillic'] = 0x0499; + t['zedieresiscyrillic'] = 0x04DF; + t['zehiragana'] = 0x305C; + t['zekatakana'] = 0x30BC; + t['zero'] = 0x0030; + t['zeroarabic'] = 0x0660; + t['zerobengali'] = 0x09E6; + t['zerodeva'] = 0x0966; + t['zerogujarati'] = 0x0AE6; + t['zerogurmukhi'] = 0x0A66; + t['zerohackarabic'] = 0x0660; + t['zeroinferior'] = 0x2080; + t['zeromonospace'] = 0xFF10; + t['zerooldstyle'] = 0xF730; + t['zeropersian'] = 0x06F0; + t['zerosuperior'] = 0x2070; + t['zerothai'] = 0x0E50; + t['zerowidthjoiner'] = 0xFEFF; + t['zerowidthnonjoiner'] = 0x200C; + t['zerowidthspace'] = 0x200B; + t['zeta'] = 0x03B6; + t['zhbopomofo'] = 0x3113; + t['zhearmenian'] = 0x056A; + t['zhebrevecyrillic'] = 0x04C2; + t['zhecyrillic'] = 0x0436; + t['zhedescendercyrillic'] = 0x0497; + t['zhedieresiscyrillic'] = 0x04DD; + t['zihiragana'] = 0x3058; + t['zikatakana'] = 0x30B8; + t['zinorhebrew'] = 0x05AE; + t['zlinebelow'] = 0x1E95; + t['zmonospace'] = 0xFF5A; + t['zohiragana'] = 0x305E; + t['zokatakana'] = 0x30BE; + t['zparen'] = 0x24B5; + t['zretroflexhook'] = 0x0290; + t['zstroke'] = 0x01B6; + t['zuhiragana'] = 0x305A; + t['zukatakana'] = 0x30BA; + t['.notdef'] = 0x0000; + t['angbracketleftbig'] = 0x2329; + t['angbracketleftBig'] = 0x2329; + t['angbracketleftbigg'] = 0x2329; + t['angbracketleftBigg'] = 0x2329; + t['angbracketrightBig'] = 0x232A; + t['angbracketrightbig'] = 0x232A; + t['angbracketrightBigg'] = 0x232A; + t['angbracketrightbigg'] = 0x232A; + t['arrowhookleft'] = 0x21AA; + t['arrowhookright'] = 0x21A9; + t['arrowlefttophalf'] = 0x21BC; + t['arrowleftbothalf'] = 0x21BD; + t['arrownortheast'] = 0x2197; + t['arrownorthwest'] = 0x2196; + t['arrowrighttophalf'] = 0x21C0; + t['arrowrightbothalf'] = 0x21C1; + t['arrowsoutheast'] = 0x2198; + t['arrowsouthwest'] = 0x2199; + t['backslashbig'] = 0x2216; + t['backslashBig'] = 0x2216; + t['backslashBigg'] = 0x2216; + t['backslashbigg'] = 0x2216; + t['bardbl'] = 0x2016; + t['bracehtipdownleft'] = 0xFE37; + t['bracehtipdownright'] = 0xFE37; + t['bracehtipupleft'] = 0xFE38; + t['bracehtipupright'] = 0xFE38; + t['braceleftBig'] = 0x007B; + t['braceleftbig'] = 0x007B; + t['braceleftbigg'] = 0x007B; + t['braceleftBigg'] = 0x007B; + t['bracerightBig'] = 0x007D; + t['bracerightbig'] = 0x007D; + t['bracerightbigg'] = 0x007D; + t['bracerightBigg'] = 0x007D; + t['bracketleftbig'] = 0x005B; + t['bracketleftBig'] = 0x005B; + t['bracketleftbigg'] = 0x005B; + t['bracketleftBigg'] = 0x005B; + t['bracketrightBig'] = 0x005D; + t['bracketrightbig'] = 0x005D; + t['bracketrightbigg'] = 0x005D; + t['bracketrightBigg'] = 0x005D; + t['ceilingleftbig'] = 0x2308; + t['ceilingleftBig'] = 0x2308; + t['ceilingleftBigg'] = 0x2308; + t['ceilingleftbigg'] = 0x2308; + t['ceilingrightbig'] = 0x2309; + t['ceilingrightBig'] = 0x2309; + t['ceilingrightbigg'] = 0x2309; + t['ceilingrightBigg'] = 0x2309; + t['circledotdisplay'] = 0x2299; + t['circledottext'] = 0x2299; + t['circlemultiplydisplay'] = 0x2297; + t['circlemultiplytext'] = 0x2297; + t['circleplusdisplay'] = 0x2295; + t['circleplustext'] = 0x2295; + t['contintegraldisplay'] = 0x222E; + t['contintegraltext'] = 0x222E; + t['coproductdisplay'] = 0x2210; + t['coproducttext'] = 0x2210; + t['floorleftBig'] = 0x230A; + t['floorleftbig'] = 0x230A; + t['floorleftbigg'] = 0x230A; + t['floorleftBigg'] = 0x230A; + t['floorrightbig'] = 0x230B; + t['floorrightBig'] = 0x230B; + t['floorrightBigg'] = 0x230B; + t['floorrightbigg'] = 0x230B; + t['hatwide'] = 0x0302; + t['hatwider'] = 0x0302; + t['hatwidest'] = 0x0302; + t['intercal'] = 0x1D40; + t['integraldisplay'] = 0x222B; + t['integraltext'] = 0x222B; + t['intersectiondisplay'] = 0x22C2; + t['intersectiontext'] = 0x22C2; + t['logicalanddisplay'] = 0x2227; + t['logicalandtext'] = 0x2227; + t['logicalordisplay'] = 0x2228; + t['logicalortext'] = 0x2228; + t['parenleftBig'] = 0x0028; + t['parenleftbig'] = 0x0028; + t['parenleftBigg'] = 0x0028; + t['parenleftbigg'] = 0x0028; + t['parenrightBig'] = 0x0029; + t['parenrightbig'] = 0x0029; + t['parenrightBigg'] = 0x0029; + t['parenrightbigg'] = 0x0029; + t['prime'] = 0x2032; + t['productdisplay'] = 0x220F; + t['producttext'] = 0x220F; + t['radicalbig'] = 0x221A; + t['radicalBig'] = 0x221A; + t['radicalBigg'] = 0x221A; + t['radicalbigg'] = 0x221A; + t['radicalbt'] = 0x221A; + t['radicaltp'] = 0x221A; + t['radicalvertex'] = 0x221A; + t['slashbig'] = 0x002F; + t['slashBig'] = 0x002F; + t['slashBigg'] = 0x002F; + t['slashbigg'] = 0x002F; + t['summationdisplay'] = 0x2211; + t['summationtext'] = 0x2211; + t['tildewide'] = 0x02DC; + t['tildewider'] = 0x02DC; + t['tildewidest'] = 0x02DC; + t['uniondisplay'] = 0x22C3; + t['unionmultidisplay'] = 0x228E; + t['unionmultitext'] = 0x228E; + t['unionsqdisplay'] = 0x2294; + t['unionsqtext'] = 0x2294; + t['uniontext'] = 0x22C3; + t['vextenddouble'] = 0x2225; + t['vextendsingle'] = 0x2223; +}); +var getDingbatsGlyphsUnicode = getLookupTableFactory(function (t) { + t['space'] = 0x0020; + t['a1'] = 0x2701; + t['a2'] = 0x2702; + t['a202'] = 0x2703; + t['a3'] = 0x2704; + t['a4'] = 0x260E; + t['a5'] = 0x2706; + t['a119'] = 0x2707; + t['a118'] = 0x2708; + t['a117'] = 0x2709; + t['a11'] = 0x261B; + t['a12'] = 0x261E; + t['a13'] = 0x270C; + t['a14'] = 0x270D; + t['a15'] = 0x270E; + t['a16'] = 0x270F; + t['a105'] = 0x2710; + t['a17'] = 0x2711; + t['a18'] = 0x2712; + t['a19'] = 0x2713; + t['a20'] = 0x2714; + t['a21'] = 0x2715; + t['a22'] = 0x2716; + t['a23'] = 0x2717; + t['a24'] = 0x2718; + t['a25'] = 0x2719; + t['a26'] = 0x271A; + t['a27'] = 0x271B; + t['a28'] = 0x271C; + t['a6'] = 0x271D; + t['a7'] = 0x271E; + t['a8'] = 0x271F; + t['a9'] = 0x2720; + t['a10'] = 0x2721; + t['a29'] = 0x2722; + t['a30'] = 0x2723; + t['a31'] = 0x2724; + t['a32'] = 0x2725; + t['a33'] = 0x2726; + t['a34'] = 0x2727; + t['a35'] = 0x2605; + t['a36'] = 0x2729; + t['a37'] = 0x272A; + t['a38'] = 0x272B; + t['a39'] = 0x272C; + t['a40'] = 0x272D; + t['a41'] = 0x272E; + t['a42'] = 0x272F; + t['a43'] = 0x2730; + t['a44'] = 0x2731; + t['a45'] = 0x2732; + t['a46'] = 0x2733; + t['a47'] = 0x2734; + t['a48'] = 0x2735; + t['a49'] = 0x2736; + t['a50'] = 0x2737; + t['a51'] = 0x2738; + t['a52'] = 0x2739; + t['a53'] = 0x273A; + t['a54'] = 0x273B; + t['a55'] = 0x273C; + t['a56'] = 0x273D; + t['a57'] = 0x273E; + t['a58'] = 0x273F; + t['a59'] = 0x2740; + t['a60'] = 0x2741; + t['a61'] = 0x2742; + t['a62'] = 0x2743; + t['a63'] = 0x2744; + t['a64'] = 0x2745; + t['a65'] = 0x2746; + t['a66'] = 0x2747; + t['a67'] = 0x2748; + t['a68'] = 0x2749; + t['a69'] = 0x274A; + t['a70'] = 0x274B; + t['a71'] = 0x25CF; + t['a72'] = 0x274D; + t['a73'] = 0x25A0; + t['a74'] = 0x274F; + t['a203'] = 0x2750; + t['a75'] = 0x2751; + t['a204'] = 0x2752; + t['a76'] = 0x25B2; + t['a77'] = 0x25BC; + t['a78'] = 0x25C6; + t['a79'] = 0x2756; + t['a81'] = 0x25D7; + t['a82'] = 0x2758; + t['a83'] = 0x2759; + t['a84'] = 0x275A; + t['a97'] = 0x275B; + t['a98'] = 0x275C; + t['a99'] = 0x275D; + t['a100'] = 0x275E; + t['a101'] = 0x2761; + t['a102'] = 0x2762; + t['a103'] = 0x2763; + t['a104'] = 0x2764; + t['a106'] = 0x2765; + t['a107'] = 0x2766; + t['a108'] = 0x2767; + t['a112'] = 0x2663; + t['a111'] = 0x2666; + t['a110'] = 0x2665; + t['a109'] = 0x2660; + t['a120'] = 0x2460; + t['a121'] = 0x2461; + t['a122'] = 0x2462; + t['a123'] = 0x2463; + t['a124'] = 0x2464; + t['a125'] = 0x2465; + t['a126'] = 0x2466; + t['a127'] = 0x2467; + t['a128'] = 0x2468; + t['a129'] = 0x2469; + t['a130'] = 0x2776; + t['a131'] = 0x2777; + t['a132'] = 0x2778; + t['a133'] = 0x2779; + t['a134'] = 0x277A; + t['a135'] = 0x277B; + t['a136'] = 0x277C; + t['a137'] = 0x277D; + t['a138'] = 0x277E; + t['a139'] = 0x277F; + t['a140'] = 0x2780; + t['a141'] = 0x2781; + t['a142'] = 0x2782; + t['a143'] = 0x2783; + t['a144'] = 0x2784; + t['a145'] = 0x2785; + t['a146'] = 0x2786; + t['a147'] = 0x2787; + t['a148'] = 0x2788; + t['a149'] = 0x2789; + t['a150'] = 0x278A; + t['a151'] = 0x278B; + t['a152'] = 0x278C; + t['a153'] = 0x278D; + t['a154'] = 0x278E; + t['a155'] = 0x278F; + t['a156'] = 0x2790; + t['a157'] = 0x2791; + t['a158'] = 0x2792; + t['a159'] = 0x2793; + t['a160'] = 0x2794; + t['a161'] = 0x2192; + t['a163'] = 0x2194; + t['a164'] = 0x2195; + t['a196'] = 0x2798; + t['a165'] = 0x2799; + t['a192'] = 0x279A; + t['a166'] = 0x279B; + t['a167'] = 0x279C; + t['a168'] = 0x279D; + t['a169'] = 0x279E; + t['a170'] = 0x279F; + t['a171'] = 0x27A0; + t['a172'] = 0x27A1; + t['a173'] = 0x27A2; + t['a162'] = 0x27A3; + t['a174'] = 0x27A4; + t['a175'] = 0x27A5; + t['a176'] = 0x27A6; + t['a177'] = 0x27A7; + t['a178'] = 0x27A8; + t['a179'] = 0x27A9; + t['a193'] = 0x27AA; + t['a180'] = 0x27AB; + t['a199'] = 0x27AC; + t['a181'] = 0x27AD; + t['a200'] = 0x27AE; + t['a182'] = 0x27AF; + t['a201'] = 0x27B1; + t['a183'] = 0x27B2; + t['a184'] = 0x27B3; + t['a197'] = 0x27B4; + t['a185'] = 0x27B5; + t['a194'] = 0x27B6; + t['a198'] = 0x27B7; + t['a186'] = 0x27B8; + t['a195'] = 0x27B9; + t['a187'] = 0x27BA; + t['a188'] = 0x27BB; + t['a189'] = 0x27BC; + t['a190'] = 0x27BD; + t['a191'] = 0x27BE; + t['a89'] = 0x2768; + t['a90'] = 0x2769; + t['a93'] = 0x276A; + t['a94'] = 0x276B; + t['a91'] = 0x276C; + t['a92'] = 0x276D; + t['a205'] = 0x276E; + t['a85'] = 0x276F; + t['a206'] = 0x2770; + t['a86'] = 0x2771; + t['a87'] = 0x2772; + t['a88'] = 0x2773; + t['a95'] = 0x2774; + t['a96'] = 0x2775; + t['.notdef'] = 0x0000; +}); +exports.getGlyphsUnicode = getGlyphsUnicode; +exports.getDingbatsGlyphsUnicode = getDingbatsGlyphsUnicode; + +/***/ }), +/* 178 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getSupplementalGlyphMapForCalibri = exports.getSupplementalGlyphMapForArialBlack = exports.getGlyphMapForStandardFonts = exports.getSymbolsFonts = exports.getSerifFonts = exports.getNonStdFontMap = exports.getStdFontMap = void 0; + +var _util = __w_pdfjs_require__(6); + +var getStdFontMap = (0, _util.getLookupTableFactory)(function (t) { + t['ArialNarrow'] = 'Helvetica'; + t['ArialNarrow-Bold'] = 'Helvetica-Bold'; + t['ArialNarrow-BoldItalic'] = 'Helvetica-BoldOblique'; + t['ArialNarrow-Italic'] = 'Helvetica-Oblique'; + t['ArialBlack'] = 'Helvetica'; + t['ArialBlack-Bold'] = 'Helvetica-Bold'; + t['ArialBlack-BoldItalic'] = 'Helvetica-BoldOblique'; + t['ArialBlack-Italic'] = 'Helvetica-Oblique'; + t['Arial-Black'] = 'Helvetica'; + t['Arial-Black-Bold'] = 'Helvetica-Bold'; + t['Arial-Black-BoldItalic'] = 'Helvetica-BoldOblique'; + t['Arial-Black-Italic'] = 'Helvetica-Oblique'; + t['Arial'] = 'Helvetica'; + t['Arial-Bold'] = 'Helvetica-Bold'; + t['Arial-BoldItalic'] = 'Helvetica-BoldOblique'; + t['Arial-Italic'] = 'Helvetica-Oblique'; + t['Arial-BoldItalicMT'] = 'Helvetica-BoldOblique'; + t['Arial-BoldMT'] = 'Helvetica-Bold'; + t['Arial-ItalicMT'] = 'Helvetica-Oblique'; + t['ArialMT'] = 'Helvetica'; + t['Courier-Bold'] = 'Courier-Bold'; + t['Courier-BoldItalic'] = 'Courier-BoldOblique'; + t['Courier-Italic'] = 'Courier-Oblique'; + t['CourierNew'] = 'Courier'; + t['CourierNew-Bold'] = 'Courier-Bold'; + t['CourierNew-BoldItalic'] = 'Courier-BoldOblique'; + t['CourierNew-Italic'] = 'Courier-Oblique'; + t['CourierNewPS-BoldItalicMT'] = 'Courier-BoldOblique'; + t['CourierNewPS-BoldMT'] = 'Courier-Bold'; + t['CourierNewPS-ItalicMT'] = 'Courier-Oblique'; + t['CourierNewPSMT'] = 'Courier'; + t['Helvetica'] = 'Helvetica'; + t['Helvetica-Bold'] = 'Helvetica-Bold'; + t['Helvetica-BoldItalic'] = 'Helvetica-BoldOblique'; + t['Helvetica-BoldOblique'] = 'Helvetica-BoldOblique'; + t['Helvetica-Italic'] = 'Helvetica-Oblique'; + t['Helvetica-Oblique'] = 'Helvetica-Oblique'; + t['SegoeUISymbol'] = 'Helvetica'; + t['Symbol-Bold'] = 'Symbol'; + t['Symbol-BoldItalic'] = 'Symbol'; + t['Symbol-Italic'] = 'Symbol'; + t['TimesNewRoman'] = 'Times-Roman'; + t['TimesNewRoman-Bold'] = 'Times-Bold'; + t['TimesNewRoman-BoldItalic'] = 'Times-BoldItalic'; + t['TimesNewRoman-Italic'] = 'Times-Italic'; + t['TimesNewRomanPS'] = 'Times-Roman'; + t['TimesNewRomanPS-Bold'] = 'Times-Bold'; + t['TimesNewRomanPS-BoldItalic'] = 'Times-BoldItalic'; + t['TimesNewRomanPS-BoldItalicMT'] = 'Times-BoldItalic'; + t['TimesNewRomanPS-BoldMT'] = 'Times-Bold'; + t['TimesNewRomanPS-Italic'] = 'Times-Italic'; + t['TimesNewRomanPS-ItalicMT'] = 'Times-Italic'; + t['TimesNewRomanPSMT'] = 'Times-Roman'; + t['TimesNewRomanPSMT-Bold'] = 'Times-Bold'; + t['TimesNewRomanPSMT-BoldItalic'] = 'Times-BoldItalic'; + t['TimesNewRomanPSMT-Italic'] = 'Times-Italic'; +}); +exports.getStdFontMap = getStdFontMap; +var getNonStdFontMap = (0, _util.getLookupTableFactory)(function (t) { + t['Calibri'] = 'Helvetica'; + t['Calibri-Bold'] = 'Helvetica-Bold'; + t['Calibri-BoldItalic'] = 'Helvetica-BoldOblique'; + t['Calibri-Italic'] = 'Helvetica-Oblique'; + t['CenturyGothic'] = 'Helvetica'; + t['CenturyGothic-Bold'] = 'Helvetica-Bold'; + t['CenturyGothic-BoldItalic'] = 'Helvetica-BoldOblique'; + t['CenturyGothic-Italic'] = 'Helvetica-Oblique'; + t['ComicSansMS'] = 'Comic Sans MS'; + t['ComicSansMS-Bold'] = 'Comic Sans MS-Bold'; + t['ComicSansMS-BoldItalic'] = 'Comic Sans MS-BoldItalic'; + t['ComicSansMS-Italic'] = 'Comic Sans MS-Italic'; + t['LucidaConsole'] = 'Courier'; + t['LucidaConsole-Bold'] = 'Courier-Bold'; + t['LucidaConsole-BoldItalic'] = 'Courier-BoldOblique'; + t['LucidaConsole-Italic'] = 'Courier-Oblique'; + t['LucidaSans-Demi'] = 'Helvetica-Bold'; + t['MS-Gothic'] = 'MS Gothic'; + t['MS-Gothic-Bold'] = 'MS Gothic-Bold'; + t['MS-Gothic-BoldItalic'] = 'MS Gothic-BoldItalic'; + t['MS-Gothic-Italic'] = 'MS Gothic-Italic'; + t['MS-Mincho'] = 'MS Mincho'; + t['MS-Mincho-Bold'] = 'MS Mincho-Bold'; + t['MS-Mincho-BoldItalic'] = 'MS Mincho-BoldItalic'; + t['MS-Mincho-Italic'] = 'MS Mincho-Italic'; + t['MS-PGothic'] = 'MS PGothic'; + t['MS-PGothic-Bold'] = 'MS PGothic-Bold'; + t['MS-PGothic-BoldItalic'] = 'MS PGothic-BoldItalic'; + t['MS-PGothic-Italic'] = 'MS PGothic-Italic'; + t['MS-PMincho'] = 'MS PMincho'; + t['MS-PMincho-Bold'] = 'MS PMincho-Bold'; + t['MS-PMincho-BoldItalic'] = 'MS PMincho-BoldItalic'; + t['MS-PMincho-Italic'] = 'MS PMincho-Italic'; + t['NuptialScript'] = 'Times-Italic'; + t['Wingdings'] = 'ZapfDingbats'; +}); +exports.getNonStdFontMap = getNonStdFontMap; +var getSerifFonts = (0, _util.getLookupTableFactory)(function (t) { + t['Adobe Jenson'] = true; + t['Adobe Text'] = true; + t['Albertus'] = true; + t['Aldus'] = true; + t['Alexandria'] = true; + t['Algerian'] = true; + t['American Typewriter'] = true; + t['Antiqua'] = true; + t['Apex'] = true; + t['Arno'] = true; + t['Aster'] = true; + t['Aurora'] = true; + t['Baskerville'] = true; + t['Bell'] = true; + t['Bembo'] = true; + t['Bembo Schoolbook'] = true; + t['Benguiat'] = true; + t['Berkeley Old Style'] = true; + t['Bernhard Modern'] = true; + t['Berthold City'] = true; + t['Bodoni'] = true; + t['Bauer Bodoni'] = true; + t['Book Antiqua'] = true; + t['Bookman'] = true; + t['Bordeaux Roman'] = true; + t['Californian FB'] = true; + t['Calisto'] = true; + t['Calvert'] = true; + t['Capitals'] = true; + t['Cambria'] = true; + t['Cartier'] = true; + t['Caslon'] = true; + t['Catull'] = true; + t['Centaur'] = true; + t['Century Old Style'] = true; + t['Century Schoolbook'] = true; + t['Chaparral'] = true; + t['Charis SIL'] = true; + t['Cheltenham'] = true; + t['Cholla Slab'] = true; + t['Clarendon'] = true; + t['Clearface'] = true; + t['Cochin'] = true; + t['Colonna'] = true; + t['Computer Modern'] = true; + t['Concrete Roman'] = true; + t['Constantia'] = true; + t['Cooper Black'] = true; + t['Corona'] = true; + t['Ecotype'] = true; + t['Egyptienne'] = true; + t['Elephant'] = true; + t['Excelsior'] = true; + t['Fairfield'] = true; + t['FF Scala'] = true; + t['Folkard'] = true; + t['Footlight'] = true; + t['FreeSerif'] = true; + t['Friz Quadrata'] = true; + t['Garamond'] = true; + t['Gentium'] = true; + t['Georgia'] = true; + t['Gloucester'] = true; + t['Goudy Old Style'] = true; + t['Goudy Schoolbook'] = true; + t['Goudy Pro Font'] = true; + t['Granjon'] = true; + t['Guardian Egyptian'] = true; + t['Heather'] = true; + t['Hercules'] = true; + t['High Tower Text'] = true; + t['Hiroshige'] = true; + t['Hoefler Text'] = true; + t['Humana Serif'] = true; + t['Imprint'] = true; + t['Ionic No. 5'] = true; + t['Janson'] = true; + t['Joanna'] = true; + t['Korinna'] = true; + t['Lexicon'] = true; + t['Liberation Serif'] = true; + t['Linux Libertine'] = true; + t['Literaturnaya'] = true; + t['Lucida'] = true; + t['Lucida Bright'] = true; + t['Melior'] = true; + t['Memphis'] = true; + t['Miller'] = true; + t['Minion'] = true; + t['Modern'] = true; + t['Mona Lisa'] = true; + t['Mrs Eaves'] = true; + t['MS Serif'] = true; + t['Museo Slab'] = true; + t['New York'] = true; + t['Nimbus Roman'] = true; + t['NPS Rawlinson Roadway'] = true; + t['NuptialScript'] = true; + t['Palatino'] = true; + t['Perpetua'] = true; + t['Plantin'] = true; + t['Plantin Schoolbook'] = true; + t['Playbill'] = true; + t['Poor Richard'] = true; + t['Rawlinson Roadway'] = true; + t['Renault'] = true; + t['Requiem'] = true; + t['Rockwell'] = true; + t['Roman'] = true; + t['Rotis Serif'] = true; + t['Sabon'] = true; + t['Scala'] = true; + t['Seagull'] = true; + t['Sistina'] = true; + t['Souvenir'] = true; + t['STIX'] = true; + t['Stone Informal'] = true; + t['Stone Serif'] = true; + t['Sylfaen'] = true; + t['Times'] = true; + t['Trajan'] = true; + t['Trinité'] = true; + t['Trump Mediaeval'] = true; + t['Utopia'] = true; + t['Vale Type'] = true; + t['Bitstream Vera'] = true; + t['Vera Serif'] = true; + t['Versailles'] = true; + t['Wanted'] = true; + t['Weiss'] = true; + t['Wide Latin'] = true; + t['Windsor'] = true; + t['XITS'] = true; +}); +exports.getSerifFonts = getSerifFonts; +var getSymbolsFonts = (0, _util.getLookupTableFactory)(function (t) { + t['Dingbats'] = true; + t['Symbol'] = true; + t['ZapfDingbats'] = true; +}); +exports.getSymbolsFonts = getSymbolsFonts; +var getGlyphMapForStandardFonts = (0, _util.getLookupTableFactory)(function (t) { + t[2] = 10; + t[3] = 32; + t[4] = 33; + t[5] = 34; + t[6] = 35; + t[7] = 36; + t[8] = 37; + t[9] = 38; + t[10] = 39; + t[11] = 40; + t[12] = 41; + t[13] = 42; + t[14] = 43; + t[15] = 44; + t[16] = 45; + t[17] = 46; + t[18] = 47; + t[19] = 48; + t[20] = 49; + t[21] = 50; + t[22] = 51; + t[23] = 52; + t[24] = 53; + t[25] = 54; + t[26] = 55; + t[27] = 56; + t[28] = 57; + t[29] = 58; + t[30] = 894; + t[31] = 60; + t[32] = 61; + t[33] = 62; + t[34] = 63; + t[35] = 64; + t[36] = 65; + t[37] = 66; + t[38] = 67; + t[39] = 68; + t[40] = 69; + t[41] = 70; + t[42] = 71; + t[43] = 72; + t[44] = 73; + t[45] = 74; + t[46] = 75; + t[47] = 76; + t[48] = 77; + t[49] = 78; + t[50] = 79; + t[51] = 80; + t[52] = 81; + t[53] = 82; + t[54] = 83; + t[55] = 84; + t[56] = 85; + t[57] = 86; + t[58] = 87; + t[59] = 88; + t[60] = 89; + t[61] = 90; + t[62] = 91; + t[63] = 92; + t[64] = 93; + t[65] = 94; + t[66] = 95; + t[67] = 96; + t[68] = 97; + t[69] = 98; + t[70] = 99; + t[71] = 100; + t[72] = 101; + t[73] = 102; + t[74] = 103; + t[75] = 104; + t[76] = 105; + t[77] = 106; + t[78] = 107; + t[79] = 108; + t[80] = 109; + t[81] = 110; + t[82] = 111; + t[83] = 112; + t[84] = 113; + t[85] = 114; + t[86] = 115; + t[87] = 116; + t[88] = 117; + t[89] = 118; + t[90] = 119; + t[91] = 120; + t[92] = 121; + t[93] = 122; + t[94] = 123; + t[95] = 124; + t[96] = 125; + t[97] = 126; + t[98] = 196; + t[99] = 197; + t[100] = 199; + t[101] = 201; + t[102] = 209; + t[103] = 214; + t[104] = 220; + t[105] = 225; + t[106] = 224; + t[107] = 226; + t[108] = 228; + t[109] = 227; + t[110] = 229; + t[111] = 231; + t[112] = 233; + t[113] = 232; + t[114] = 234; + t[115] = 235; + t[116] = 237; + t[117] = 236; + t[118] = 238; + t[119] = 239; + t[120] = 241; + t[121] = 243; + t[122] = 242; + t[123] = 244; + t[124] = 246; + t[125] = 245; + t[126] = 250; + t[127] = 249; + t[128] = 251; + t[129] = 252; + t[130] = 8224; + t[131] = 176; + t[132] = 162; + t[133] = 163; + t[134] = 167; + t[135] = 8226; + t[136] = 182; + t[137] = 223; + t[138] = 174; + t[139] = 169; + t[140] = 8482; + t[141] = 180; + t[142] = 168; + t[143] = 8800; + t[144] = 198; + t[145] = 216; + t[146] = 8734; + t[147] = 177; + t[148] = 8804; + t[149] = 8805; + t[150] = 165; + t[151] = 181; + t[152] = 8706; + t[153] = 8721; + t[154] = 8719; + t[156] = 8747; + t[157] = 170; + t[158] = 186; + t[159] = 8486; + t[160] = 230; + t[161] = 248; + t[162] = 191; + t[163] = 161; + t[164] = 172; + t[165] = 8730; + t[166] = 402; + t[167] = 8776; + t[168] = 8710; + t[169] = 171; + t[170] = 187; + t[171] = 8230; + t[210] = 218; + t[223] = 711; + t[224] = 321; + t[225] = 322; + t[227] = 353; + t[229] = 382; + t[234] = 253; + t[252] = 263; + t[253] = 268; + t[254] = 269; + t[258] = 258; + t[260] = 260; + t[261] = 261; + t[265] = 280; + t[266] = 281; + t[268] = 283; + t[269] = 313; + t[275] = 323; + t[276] = 324; + t[278] = 328; + t[284] = 345; + t[285] = 346; + t[286] = 347; + t[292] = 367; + t[295] = 377; + t[296] = 378; + t[298] = 380; + t[305] = 963; + t[306] = 964; + t[307] = 966; + t[308] = 8215; + t[309] = 8252; + t[310] = 8319; + t[311] = 8359; + t[312] = 8592; + t[313] = 8593; + t[337] = 9552; + t[493] = 1039; + t[494] = 1040; + t[705] = 1524; + t[706] = 8362; + t[710] = 64288; + t[711] = 64298; + t[759] = 1617; + t[761] = 1776; + t[763] = 1778; + t[775] = 1652; + t[777] = 1764; + t[778] = 1780; + t[779] = 1781; + t[780] = 1782; + t[782] = 771; + t[783] = 64726; + t[786] = 8363; + t[788] = 8532; + t[790] = 768; + t[791] = 769; + t[792] = 768; + t[795] = 803; + t[797] = 64336; + t[798] = 64337; + t[799] = 64342; + t[800] = 64343; + t[801] = 64344; + t[802] = 64345; + t[803] = 64362; + t[804] = 64363; + t[805] = 64364; + t[2424] = 7821; + t[2425] = 7822; + t[2426] = 7823; + t[2427] = 7824; + t[2428] = 7825; + t[2429] = 7826; + t[2430] = 7827; + t[2433] = 7682; + t[2678] = 8045; + t[2679] = 8046; + t[2830] = 1552; + t[2838] = 686; + t[2840] = 751; + t[2842] = 753; + t[2843] = 754; + t[2844] = 755; + t[2846] = 757; + t[2856] = 767; + t[2857] = 848; + t[2858] = 849; + t[2862] = 853; + t[2863] = 854; + t[2864] = 855; + t[2865] = 861; + t[2866] = 862; + t[2906] = 7460; + t[2908] = 7462; + t[2909] = 7463; + t[2910] = 7464; + t[2912] = 7466; + t[2913] = 7467; + t[2914] = 7468; + t[2916] = 7470; + t[2917] = 7471; + t[2918] = 7472; + t[2920] = 7474; + t[2921] = 7475; + t[2922] = 7476; + t[2924] = 7478; + t[2925] = 7479; + t[2926] = 7480; + t[2928] = 7482; + t[2929] = 7483; + t[2930] = 7484; + t[2932] = 7486; + t[2933] = 7487; + t[2934] = 7488; + t[2936] = 7490; + t[2937] = 7491; + t[2938] = 7492; + t[2940] = 7494; + t[2941] = 7495; + t[2942] = 7496; + t[2944] = 7498; + t[2946] = 7500; + t[2948] = 7502; + t[2950] = 7504; + t[2951] = 7505; + t[2952] = 7506; + t[2954] = 7508; + t[2955] = 7509; + t[2956] = 7510; + t[2958] = 7512; + t[2959] = 7513; + t[2960] = 7514; + t[2962] = 7516; + t[2963] = 7517; + t[2964] = 7518; + t[2966] = 7520; + t[2967] = 7521; + t[2968] = 7522; + t[2970] = 7524; + t[2971] = 7525; + t[2972] = 7526; + t[2974] = 7528; + t[2975] = 7529; + t[2976] = 7530; + t[2978] = 1537; + t[2979] = 1538; + t[2980] = 1539; + t[2982] = 1549; + t[2983] = 1551; + t[2984] = 1552; + t[2986] = 1554; + t[2987] = 1555; + t[2988] = 1556; + t[2990] = 1623; + t[2991] = 1624; + t[2995] = 1775; + t[2999] = 1791; + t[3002] = 64290; + t[3003] = 64291; + t[3004] = 64292; + t[3006] = 64294; + t[3007] = 64295; + t[3008] = 64296; + t[3011] = 1900; + t[3014] = 8223; + t[3015] = 8244; + t[3017] = 7532; + t[3018] = 7533; + t[3019] = 7534; + t[3075] = 7590; + t[3076] = 7591; + t[3079] = 7594; + t[3080] = 7595; + t[3083] = 7598; + t[3084] = 7599; + t[3087] = 7602; + t[3088] = 7603; + t[3091] = 7606; + t[3092] = 7607; + t[3095] = 7610; + t[3096] = 7611; + t[3099] = 7614; + t[3100] = 7615; + t[3103] = 7618; + t[3104] = 7619; + t[3107] = 8337; + t[3108] = 8338; + t[3116] = 1884; + t[3119] = 1885; + t[3120] = 1885; + t[3123] = 1886; + t[3124] = 1886; + t[3127] = 1887; + t[3128] = 1887; + t[3131] = 1888; + t[3132] = 1888; + t[3135] = 1889; + t[3136] = 1889; + t[3139] = 1890; + t[3140] = 1890; + t[3143] = 1891; + t[3144] = 1891; + t[3147] = 1892; + t[3148] = 1892; + t[3153] = 580; + t[3154] = 581; + t[3157] = 584; + t[3158] = 585; + t[3161] = 588; + t[3162] = 589; + t[3165] = 891; + t[3166] = 892; + t[3169] = 1274; + t[3170] = 1275; + t[3173] = 1278; + t[3174] = 1279; + t[3181] = 7622; + t[3182] = 7623; + t[3282] = 11799; + t[3316] = 578; + t[3379] = 42785; + t[3393] = 1159; + t[3416] = 8377; +}); +exports.getGlyphMapForStandardFonts = getGlyphMapForStandardFonts; +var getSupplementalGlyphMapForArialBlack = (0, _util.getLookupTableFactory)(function (t) { + t[227] = 322; + t[264] = 261; + t[291] = 346; +}); +exports.getSupplementalGlyphMapForArialBlack = getSupplementalGlyphMapForArialBlack; +var getSupplementalGlyphMapForCalibri = (0, _util.getLookupTableFactory)(function (t) { + t[1] = 32; + t[4] = 65; + t[17] = 66; + t[18] = 67; + t[24] = 68; + t[28] = 69; + t[38] = 70; + t[39] = 71; + t[44] = 72; + t[47] = 73; + t[58] = 74; + t[60] = 75; + t[62] = 76; + t[68] = 77; + t[69] = 78; + t[75] = 79; + t[87] = 80; + t[89] = 81; + t[90] = 82; + t[94] = 83; + t[100] = 84; + t[104] = 85; + t[115] = 86; + t[116] = 87; + t[121] = 88; + t[122] = 89; + t[127] = 90; + t[258] = 97; + t[268] = 261; + t[271] = 98; + t[272] = 99; + t[273] = 263; + t[282] = 100; + t[286] = 101; + t[295] = 281; + t[296] = 102; + t[336] = 103; + t[346] = 104; + t[349] = 105; + t[361] = 106; + t[364] = 107; + t[367] = 108; + t[371] = 322; + t[373] = 109; + t[374] = 110; + t[381] = 111; + t[383] = 243; + t[393] = 112; + t[395] = 113; + t[396] = 114; + t[400] = 115; + t[401] = 347; + t[410] = 116; + t[437] = 117; + t[448] = 118; + t[449] = 119; + t[454] = 120; + t[455] = 121; + t[460] = 122; + t[463] = 380; + t[853] = 44; + t[855] = 58; + t[856] = 46; + t[876] = 47; + t[878] = 45; + t[882] = 45; + t[894] = 40; + t[895] = 41; + t[896] = 91; + t[897] = 93; + t[923] = 64; + t[1004] = 48; + t[1005] = 49; + t[1006] = 50; + t[1007] = 51; + t[1008] = 52; + t[1009] = 53; + t[1010] = 54; + t[1011] = 55; + t[1012] = 56; + t[1013] = 57; + t[1081] = 37; + t[1085] = 43; + t[1086] = 45; +}); +exports.getSupplementalGlyphMapForCalibri = getSupplementalGlyphMapForCalibri; + +/***/ }), +/* 179 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +var getLookupTableFactory = __w_pdfjs_require__(6).getLookupTableFactory; +var getSpecialPUASymbols = getLookupTableFactory(function (t) { + t[63721] = 0x00A9; + t[63193] = 0x00A9; + t[63720] = 0x00AE; + t[63194] = 0x00AE; + t[63722] = 0x2122; + t[63195] = 0x2122; + t[63729] = 0x23A7; + t[63730] = 0x23A8; + t[63731] = 0x23A9; + t[63740] = 0x23AB; + t[63741] = 0x23AC; + t[63742] = 0x23AD; + t[63726] = 0x23A1; + t[63727] = 0x23A2; + t[63728] = 0x23A3; + t[63737] = 0x23A4; + t[63738] = 0x23A5; + t[63739] = 0x23A6; + t[63723] = 0x239B; + t[63724] = 0x239C; + t[63725] = 0x239D; + t[63734] = 0x239E; + t[63735] = 0x239F; + t[63736] = 0x23A0; +}); +function mapSpecialUnicodeValues(code) { + if (code >= 0xFFF0 && code <= 0xFFFF) { + return 0; + } else if (code >= 0xF600 && code <= 0xF8FF) { + return getSpecialPUASymbols()[code] || code; + } else if (code === 0x00AD) { + return 0x002D; + } + return code; +} +function getUnicodeForGlyph(name, glyphsUnicodeMap) { + var unicode = glyphsUnicodeMap[name]; + if (unicode !== undefined) { + return unicode; + } + if (!name) { + return -1; + } + if (name[0] === 'u') { + var nameLen = name.length, hexStr; + if (nameLen === 7 && name[1] === 'n' && name[2] === 'i') { + hexStr = name.substring(3); + } else if (nameLen >= 5 && nameLen <= 7) { + hexStr = name.substring(1); + } else { + return -1; + } + if (hexStr === hexStr.toUpperCase()) { + unicode = parseInt(hexStr, 16); + if (unicode >= 0) { + return unicode; + } + } + } + return -1; +} +var UnicodeRanges = [ + { + 'begin': 0x0000, + 'end': 0x007F + }, + { + 'begin': 0x0080, + 'end': 0x00FF + }, + { + 'begin': 0x0100, + 'end': 0x017F + }, + { + 'begin': 0x0180, + 'end': 0x024F + }, + { + 'begin': 0x0250, + 'end': 0x02AF + }, + { + 'begin': 0x02B0, + 'end': 0x02FF + }, + { + 'begin': 0x0300, + 'end': 0x036F + }, + { + 'begin': 0x0370, + 'end': 0x03FF + }, + { + 'begin': 0x2C80, + 'end': 0x2CFF + }, + { + 'begin': 0x0400, + 'end': 0x04FF + }, + { + 'begin': 0x0530, + 'end': 0x058F + }, + { + 'begin': 0x0590, + 'end': 0x05FF + }, + { + 'begin': 0xA500, + 'end': 0xA63F + }, + { + 'begin': 0x0600, + 'end': 0x06FF + }, + { + 'begin': 0x07C0, + 'end': 0x07FF + }, + { + 'begin': 0x0900, + 'end': 0x097F + }, + { + 'begin': 0x0980, + 'end': 0x09FF + }, + { + 'begin': 0x0A00, + 'end': 0x0A7F + }, + { + 'begin': 0x0A80, + 'end': 0x0AFF + }, + { + 'begin': 0x0B00, + 'end': 0x0B7F + }, + { + 'begin': 0x0B80, + 'end': 0x0BFF + }, + { + 'begin': 0x0C00, + 'end': 0x0C7F + }, + { + 'begin': 0x0C80, + 'end': 0x0CFF + }, + { + 'begin': 0x0D00, + 'end': 0x0D7F + }, + { + 'begin': 0x0E00, + 'end': 0x0E7F + }, + { + 'begin': 0x0E80, + 'end': 0x0EFF + }, + { + 'begin': 0x10A0, + 'end': 0x10FF + }, + { + 'begin': 0x1B00, + 'end': 0x1B7F + }, + { + 'begin': 0x1100, + 'end': 0x11FF + }, + { + 'begin': 0x1E00, + 'end': 0x1EFF + }, + { + 'begin': 0x1F00, + 'end': 0x1FFF + }, + { + 'begin': 0x2000, + 'end': 0x206F + }, + { + 'begin': 0x2070, + 'end': 0x209F + }, + { + 'begin': 0x20A0, + 'end': 0x20CF + }, + { + 'begin': 0x20D0, + 'end': 0x20FF + }, + { + 'begin': 0x2100, + 'end': 0x214F + }, + { + 'begin': 0x2150, + 'end': 0x218F + }, + { + 'begin': 0x2190, + 'end': 0x21FF + }, + { + 'begin': 0x2200, + 'end': 0x22FF + }, + { + 'begin': 0x2300, + 'end': 0x23FF + }, + { + 'begin': 0x2400, + 'end': 0x243F + }, + { + 'begin': 0x2440, + 'end': 0x245F + }, + { + 'begin': 0x2460, + 'end': 0x24FF + }, + { + 'begin': 0x2500, + 'end': 0x257F + }, + { + 'begin': 0x2580, + 'end': 0x259F + }, + { + 'begin': 0x25A0, + 'end': 0x25FF + }, + { + 'begin': 0x2600, + 'end': 0x26FF + }, + { + 'begin': 0x2700, + 'end': 0x27BF + }, + { + 'begin': 0x3000, + 'end': 0x303F + }, + { + 'begin': 0x3040, + 'end': 0x309F + }, + { + 'begin': 0x30A0, + 'end': 0x30FF + }, + { + 'begin': 0x3100, + 'end': 0x312F + }, + { + 'begin': 0x3130, + 'end': 0x318F + }, + { + 'begin': 0xA840, + 'end': 0xA87F + }, + { + 'begin': 0x3200, + 'end': 0x32FF + }, + { + 'begin': 0x3300, + 'end': 0x33FF + }, + { + 'begin': 0xAC00, + 'end': 0xD7AF + }, + { + 'begin': 0xD800, + 'end': 0xDFFF + }, + { + 'begin': 0x10900, + 'end': 0x1091F + }, + { + 'begin': 0x4E00, + 'end': 0x9FFF + }, + { + 'begin': 0xE000, + 'end': 0xF8FF + }, + { + 'begin': 0x31C0, + 'end': 0x31EF + }, + { + 'begin': 0xFB00, + 'end': 0xFB4F + }, + { + 'begin': 0xFB50, + 'end': 0xFDFF + }, + { + 'begin': 0xFE20, + 'end': 0xFE2F + }, + { + 'begin': 0xFE10, + 'end': 0xFE1F + }, + { + 'begin': 0xFE50, + 'end': 0xFE6F + }, + { + 'begin': 0xFE70, + 'end': 0xFEFF + }, + { + 'begin': 0xFF00, + 'end': 0xFFEF + }, + { + 'begin': 0xFFF0, + 'end': 0xFFFF + }, + { + 'begin': 0x0F00, + 'end': 0x0FFF + }, + { + 'begin': 0x0700, + 'end': 0x074F + }, + { + 'begin': 0x0780, + 'end': 0x07BF + }, + { + 'begin': 0x0D80, + 'end': 0x0DFF + }, + { + 'begin': 0x1000, + 'end': 0x109F + }, + { + 'begin': 0x1200, + 'end': 0x137F + }, + { + 'begin': 0x13A0, + 'end': 0x13FF + }, + { + 'begin': 0x1400, + 'end': 0x167F + }, + { + 'begin': 0x1680, + 'end': 0x169F + }, + { + 'begin': 0x16A0, + 'end': 0x16FF + }, + { + 'begin': 0x1780, + 'end': 0x17FF + }, + { + 'begin': 0x1800, + 'end': 0x18AF + }, + { + 'begin': 0x2800, + 'end': 0x28FF + }, + { + 'begin': 0xA000, + 'end': 0xA48F + }, + { + 'begin': 0x1700, + 'end': 0x171F + }, + { + 'begin': 0x10300, + 'end': 0x1032F + }, + { + 'begin': 0x10330, + 'end': 0x1034F + }, + { + 'begin': 0x10400, + 'end': 0x1044F + }, + { + 'begin': 0x1D000, + 'end': 0x1D0FF + }, + { + 'begin': 0x1D400, + 'end': 0x1D7FF + }, + { + 'begin': 0xFF000, + 'end': 0xFFFFD + }, + { + 'begin': 0xFE00, + 'end': 0xFE0F + }, + { + 'begin': 0xE0000, + 'end': 0xE007F + }, + { + 'begin': 0x1900, + 'end': 0x194F + }, + { + 'begin': 0x1950, + 'end': 0x197F + }, + { + 'begin': 0x1980, + 'end': 0x19DF + }, + { + 'begin': 0x1A00, + 'end': 0x1A1F + }, + { + 'begin': 0x2C00, + 'end': 0x2C5F + }, + { + 'begin': 0x2D30, + 'end': 0x2D7F + }, + { + 'begin': 0x4DC0, + 'end': 0x4DFF + }, + { + 'begin': 0xA800, + 'end': 0xA82F + }, + { + 'begin': 0x10000, + 'end': 0x1007F + }, + { + 'begin': 0x10140, + 'end': 0x1018F + }, + { + 'begin': 0x10380, + 'end': 0x1039F + }, + { + 'begin': 0x103A0, + 'end': 0x103DF + }, + { + 'begin': 0x10450, + 'end': 0x1047F + }, + { + 'begin': 0x10480, + 'end': 0x104AF + }, + { + 'begin': 0x10800, + 'end': 0x1083F + }, + { + 'begin': 0x10A00, + 'end': 0x10A5F + }, + { + 'begin': 0x1D300, + 'end': 0x1D35F + }, + { + 'begin': 0x12000, + 'end': 0x123FF + }, + { + 'begin': 0x1D360, + 'end': 0x1D37F + }, + { + 'begin': 0x1B80, + 'end': 0x1BBF + }, + { + 'begin': 0x1C00, + 'end': 0x1C4F + }, + { + 'begin': 0x1C50, + 'end': 0x1C7F + }, + { + 'begin': 0xA880, + 'end': 0xA8DF + }, + { + 'begin': 0xA900, + 'end': 0xA92F + }, + { + 'begin': 0xA930, + 'end': 0xA95F + }, + { + 'begin': 0xAA00, + 'end': 0xAA5F + }, + { + 'begin': 0x10190, + 'end': 0x101CF + }, + { + 'begin': 0x101D0, + 'end': 0x101FF + }, + { + 'begin': 0x102A0, + 'end': 0x102DF + }, + { + 'begin': 0x1F030, + 'end': 0x1F09F + } +]; +function getUnicodeRangeFor(value) { + for (var i = 0, ii = UnicodeRanges.length; i < ii; i++) { + var range = UnicodeRanges[i]; + if (value >= range.begin && value < range.end) { + return i; + } + } + return -1; +} +function isRTLRangeFor(value) { + var range = UnicodeRanges[13]; + if (value >= range.begin && value < range.end) { + return true; + } + range = UnicodeRanges[11]; + if (value >= range.begin && value < range.end) { + return true; + } + return false; +} +var getNormalizedUnicodes = getLookupTableFactory(function (t) { + t['\u00A8'] = '\u0020\u0308'; + t['\u00AF'] = '\u0020\u0304'; + t['\u00B4'] = '\u0020\u0301'; + t['\u00B5'] = '\u03BC'; + t['\u00B8'] = '\u0020\u0327'; + t['\u0132'] = '\u0049\u004A'; + t['\u0133'] = '\u0069\u006A'; + t['\u013F'] = '\u004C\u00B7'; + t['\u0140'] = '\u006C\u00B7'; + t['\u0149'] = '\u02BC\u006E'; + t['\u017F'] = '\u0073'; + t['\u01C4'] = '\u0044\u017D'; + t['\u01C5'] = '\u0044\u017E'; + t['\u01C6'] = '\u0064\u017E'; + t['\u01C7'] = '\u004C\u004A'; + t['\u01C8'] = '\u004C\u006A'; + t['\u01C9'] = '\u006C\u006A'; + t['\u01CA'] = '\u004E\u004A'; + t['\u01CB'] = '\u004E\u006A'; + t['\u01CC'] = '\u006E\u006A'; + t['\u01F1'] = '\u0044\u005A'; + t['\u01F2'] = '\u0044\u007A'; + t['\u01F3'] = '\u0064\u007A'; + t['\u02D8'] = '\u0020\u0306'; + t['\u02D9'] = '\u0020\u0307'; + t['\u02DA'] = '\u0020\u030A'; + t['\u02DB'] = '\u0020\u0328'; + t['\u02DC'] = '\u0020\u0303'; + t['\u02DD'] = '\u0020\u030B'; + t['\u037A'] = '\u0020\u0345'; + t['\u0384'] = '\u0020\u0301'; + t['\u03D0'] = '\u03B2'; + t['\u03D1'] = '\u03B8'; + t['\u03D2'] = '\u03A5'; + t['\u03D5'] = '\u03C6'; + t['\u03D6'] = '\u03C0'; + t['\u03F0'] = '\u03BA'; + t['\u03F1'] = '\u03C1'; + t['\u03F2'] = '\u03C2'; + t['\u03F4'] = '\u0398'; + t['\u03F5'] = '\u03B5'; + t['\u03F9'] = '\u03A3'; + t['\u0587'] = '\u0565\u0582'; + t['\u0675'] = '\u0627\u0674'; + t['\u0676'] = '\u0648\u0674'; + t['\u0677'] = '\u06C7\u0674'; + t['\u0678'] = '\u064A\u0674'; + t['\u0E33'] = '\u0E4D\u0E32'; + t['\u0EB3'] = '\u0ECD\u0EB2'; + t['\u0EDC'] = '\u0EAB\u0E99'; + t['\u0EDD'] = '\u0EAB\u0EA1'; + t['\u0F77'] = '\u0FB2\u0F81'; + t['\u0F79'] = '\u0FB3\u0F81'; + t['\u1E9A'] = '\u0061\u02BE'; + t['\u1FBD'] = '\u0020\u0313'; + t['\u1FBF'] = '\u0020\u0313'; + t['\u1FC0'] = '\u0020\u0342'; + t['\u1FFE'] = '\u0020\u0314'; + t['\u2002'] = '\u0020'; + t['\u2003'] = '\u0020'; + t['\u2004'] = '\u0020'; + t['\u2005'] = '\u0020'; + t['\u2006'] = '\u0020'; + t['\u2008'] = '\u0020'; + t['\u2009'] = '\u0020'; + t['\u200A'] = '\u0020'; + t['\u2017'] = '\u0020\u0333'; + t['\u2024'] = '\u002E'; + t['\u2025'] = '\u002E\u002E'; + t['\u2026'] = '\u002E\u002E\u002E'; + t['\u2033'] = '\u2032\u2032'; + t['\u2034'] = '\u2032\u2032\u2032'; + t['\u2036'] = '\u2035\u2035'; + t['\u2037'] = '\u2035\u2035\u2035'; + t['\u203C'] = '\u0021\u0021'; + t['\u203E'] = '\u0020\u0305'; + t['\u2047'] = '\u003F\u003F'; + t['\u2048'] = '\u003F\u0021'; + t['\u2049'] = '\u0021\u003F'; + t['\u2057'] = '\u2032\u2032\u2032\u2032'; + t['\u205F'] = '\u0020'; + t['\u20A8'] = '\u0052\u0073'; + t['\u2100'] = '\u0061\u002F\u0063'; + t['\u2101'] = '\u0061\u002F\u0073'; + t['\u2103'] = '\u00B0\u0043'; + t['\u2105'] = '\u0063\u002F\u006F'; + t['\u2106'] = '\u0063\u002F\u0075'; + t['\u2107'] = '\u0190'; + t['\u2109'] = '\u00B0\u0046'; + t['\u2116'] = '\u004E\u006F'; + t['\u2121'] = '\u0054\u0045\u004C'; + t['\u2135'] = '\u05D0'; + t['\u2136'] = '\u05D1'; + t['\u2137'] = '\u05D2'; + t['\u2138'] = '\u05D3'; + t['\u213B'] = '\u0046\u0041\u0058'; + t['\u2160'] = '\u0049'; + t['\u2161'] = '\u0049\u0049'; + t['\u2162'] = '\u0049\u0049\u0049'; + t['\u2163'] = '\u0049\u0056'; + t['\u2164'] = '\u0056'; + t['\u2165'] = '\u0056\u0049'; + t['\u2166'] = '\u0056\u0049\u0049'; + t['\u2167'] = '\u0056\u0049\u0049\u0049'; + t['\u2168'] = '\u0049\u0058'; + t['\u2169'] = '\u0058'; + t['\u216A'] = '\u0058\u0049'; + t['\u216B'] = '\u0058\u0049\u0049'; + t['\u216C'] = '\u004C'; + t['\u216D'] = '\u0043'; + t['\u216E'] = '\u0044'; + t['\u216F'] = '\u004D'; + t['\u2170'] = '\u0069'; + t['\u2171'] = '\u0069\u0069'; + t['\u2172'] = '\u0069\u0069\u0069'; + t['\u2173'] = '\u0069\u0076'; + t['\u2174'] = '\u0076'; + t['\u2175'] = '\u0076\u0069'; + t['\u2176'] = '\u0076\u0069\u0069'; + t['\u2177'] = '\u0076\u0069\u0069\u0069'; + t['\u2178'] = '\u0069\u0078'; + t['\u2179'] = '\u0078'; + t['\u217A'] = '\u0078\u0069'; + t['\u217B'] = '\u0078\u0069\u0069'; + t['\u217C'] = '\u006C'; + t['\u217D'] = '\u0063'; + t['\u217E'] = '\u0064'; + t['\u217F'] = '\u006D'; + t['\u222C'] = '\u222B\u222B'; + t['\u222D'] = '\u222B\u222B\u222B'; + t['\u222F'] = '\u222E\u222E'; + t['\u2230'] = '\u222E\u222E\u222E'; + t['\u2474'] = '\u0028\u0031\u0029'; + t['\u2475'] = '\u0028\u0032\u0029'; + t['\u2476'] = '\u0028\u0033\u0029'; + t['\u2477'] = '\u0028\u0034\u0029'; + t['\u2478'] = '\u0028\u0035\u0029'; + t['\u2479'] = '\u0028\u0036\u0029'; + t['\u247A'] = '\u0028\u0037\u0029'; + t['\u247B'] = '\u0028\u0038\u0029'; + t['\u247C'] = '\u0028\u0039\u0029'; + t['\u247D'] = '\u0028\u0031\u0030\u0029'; + t['\u247E'] = '\u0028\u0031\u0031\u0029'; + t['\u247F'] = '\u0028\u0031\u0032\u0029'; + t['\u2480'] = '\u0028\u0031\u0033\u0029'; + t['\u2481'] = '\u0028\u0031\u0034\u0029'; + t['\u2482'] = '\u0028\u0031\u0035\u0029'; + t['\u2483'] = '\u0028\u0031\u0036\u0029'; + t['\u2484'] = '\u0028\u0031\u0037\u0029'; + t['\u2485'] = '\u0028\u0031\u0038\u0029'; + t['\u2486'] = '\u0028\u0031\u0039\u0029'; + t['\u2487'] = '\u0028\u0032\u0030\u0029'; + t['\u2488'] = '\u0031\u002E'; + t['\u2489'] = '\u0032\u002E'; + t['\u248A'] = '\u0033\u002E'; + t['\u248B'] = '\u0034\u002E'; + t['\u248C'] = '\u0035\u002E'; + t['\u248D'] = '\u0036\u002E'; + t['\u248E'] = '\u0037\u002E'; + t['\u248F'] = '\u0038\u002E'; + t['\u2490'] = '\u0039\u002E'; + t['\u2491'] = '\u0031\u0030\u002E'; + t['\u2492'] = '\u0031\u0031\u002E'; + t['\u2493'] = '\u0031\u0032\u002E'; + t['\u2494'] = '\u0031\u0033\u002E'; + t['\u2495'] = '\u0031\u0034\u002E'; + t['\u2496'] = '\u0031\u0035\u002E'; + t['\u2497'] = '\u0031\u0036\u002E'; + t['\u2498'] = '\u0031\u0037\u002E'; + t['\u2499'] = '\u0031\u0038\u002E'; + t['\u249A'] = '\u0031\u0039\u002E'; + t['\u249B'] = '\u0032\u0030\u002E'; + t['\u249C'] = '\u0028\u0061\u0029'; + t['\u249D'] = '\u0028\u0062\u0029'; + t['\u249E'] = '\u0028\u0063\u0029'; + t['\u249F'] = '\u0028\u0064\u0029'; + t['\u24A0'] = '\u0028\u0065\u0029'; + t['\u24A1'] = '\u0028\u0066\u0029'; + t['\u24A2'] = '\u0028\u0067\u0029'; + t['\u24A3'] = '\u0028\u0068\u0029'; + t['\u24A4'] = '\u0028\u0069\u0029'; + t['\u24A5'] = '\u0028\u006A\u0029'; + t['\u24A6'] = '\u0028\u006B\u0029'; + t['\u24A7'] = '\u0028\u006C\u0029'; + t['\u24A8'] = '\u0028\u006D\u0029'; + t['\u24A9'] = '\u0028\u006E\u0029'; + t['\u24AA'] = '\u0028\u006F\u0029'; + t['\u24AB'] = '\u0028\u0070\u0029'; + t['\u24AC'] = '\u0028\u0071\u0029'; + t['\u24AD'] = '\u0028\u0072\u0029'; + t['\u24AE'] = '\u0028\u0073\u0029'; + t['\u24AF'] = '\u0028\u0074\u0029'; + t['\u24B0'] = '\u0028\u0075\u0029'; + t['\u24B1'] = '\u0028\u0076\u0029'; + t['\u24B2'] = '\u0028\u0077\u0029'; + t['\u24B3'] = '\u0028\u0078\u0029'; + t['\u24B4'] = '\u0028\u0079\u0029'; + t['\u24B5'] = '\u0028\u007A\u0029'; + t['\u2A0C'] = '\u222B\u222B\u222B\u222B'; + t['\u2A74'] = '\u003A\u003A\u003D'; + t['\u2A75'] = '\u003D\u003D'; + t['\u2A76'] = '\u003D\u003D\u003D'; + t['\u2E9F'] = '\u6BCD'; + t['\u2EF3'] = '\u9F9F'; + t['\u2F00'] = '\u4E00'; + t['\u2F01'] = '\u4E28'; + t['\u2F02'] = '\u4E36'; + t['\u2F03'] = '\u4E3F'; + t['\u2F04'] = '\u4E59'; + t['\u2F05'] = '\u4E85'; + t['\u2F06'] = '\u4E8C'; + t['\u2F07'] = '\u4EA0'; + t['\u2F08'] = '\u4EBA'; + t['\u2F09'] = '\u513F'; + t['\u2F0A'] = '\u5165'; + t['\u2F0B'] = '\u516B'; + t['\u2F0C'] = '\u5182'; + t['\u2F0D'] = '\u5196'; + t['\u2F0E'] = '\u51AB'; + t['\u2F0F'] = '\u51E0'; + t['\u2F10'] = '\u51F5'; + t['\u2F11'] = '\u5200'; + t['\u2F12'] = '\u529B'; + t['\u2F13'] = '\u52F9'; + t['\u2F14'] = '\u5315'; + t['\u2F15'] = '\u531A'; + t['\u2F16'] = '\u5338'; + t['\u2F17'] = '\u5341'; + t['\u2F18'] = '\u535C'; + t['\u2F19'] = '\u5369'; + t['\u2F1A'] = '\u5382'; + t['\u2F1B'] = '\u53B6'; + t['\u2F1C'] = '\u53C8'; + t['\u2F1D'] = '\u53E3'; + t['\u2F1E'] = '\u56D7'; + t['\u2F1F'] = '\u571F'; + t['\u2F20'] = '\u58EB'; + t['\u2F21'] = '\u5902'; + t['\u2F22'] = '\u590A'; + t['\u2F23'] = '\u5915'; + t['\u2F24'] = '\u5927'; + t['\u2F25'] = '\u5973'; + t['\u2F26'] = '\u5B50'; + t['\u2F27'] = '\u5B80'; + t['\u2F28'] = '\u5BF8'; + t['\u2F29'] = '\u5C0F'; + t['\u2F2A'] = '\u5C22'; + t['\u2F2B'] = '\u5C38'; + t['\u2F2C'] = '\u5C6E'; + t['\u2F2D'] = '\u5C71'; + t['\u2F2E'] = '\u5DDB'; + t['\u2F2F'] = '\u5DE5'; + t['\u2F30'] = '\u5DF1'; + t['\u2F31'] = '\u5DFE'; + t['\u2F32'] = '\u5E72'; + t['\u2F33'] = '\u5E7A'; + t['\u2F34'] = '\u5E7F'; + t['\u2F35'] = '\u5EF4'; + t['\u2F36'] = '\u5EFE'; + t['\u2F37'] = '\u5F0B'; + t['\u2F38'] = '\u5F13'; + t['\u2F39'] = '\u5F50'; + t['\u2F3A'] = '\u5F61'; + t['\u2F3B'] = '\u5F73'; + t['\u2F3C'] = '\u5FC3'; + t['\u2F3D'] = '\u6208'; + t['\u2F3E'] = '\u6236'; + t['\u2F3F'] = '\u624B'; + t['\u2F40'] = '\u652F'; + t['\u2F41'] = '\u6534'; + t['\u2F42'] = '\u6587'; + t['\u2F43'] = '\u6597'; + t['\u2F44'] = '\u65A4'; + t['\u2F45'] = '\u65B9'; + t['\u2F46'] = '\u65E0'; + t['\u2F47'] = '\u65E5'; + t['\u2F48'] = '\u66F0'; + t['\u2F49'] = '\u6708'; + t['\u2F4A'] = '\u6728'; + t['\u2F4B'] = '\u6B20'; + t['\u2F4C'] = '\u6B62'; + t['\u2F4D'] = '\u6B79'; + t['\u2F4E'] = '\u6BB3'; + t['\u2F4F'] = '\u6BCB'; + t['\u2F50'] = '\u6BD4'; + t['\u2F51'] = '\u6BDB'; + t['\u2F52'] = '\u6C0F'; + t['\u2F53'] = '\u6C14'; + t['\u2F54'] = '\u6C34'; + t['\u2F55'] = '\u706B'; + t['\u2F56'] = '\u722A'; + t['\u2F57'] = '\u7236'; + t['\u2F58'] = '\u723B'; + t['\u2F59'] = '\u723F'; + t['\u2F5A'] = '\u7247'; + t['\u2F5B'] = '\u7259'; + t['\u2F5C'] = '\u725B'; + t['\u2F5D'] = '\u72AC'; + t['\u2F5E'] = '\u7384'; + t['\u2F5F'] = '\u7389'; + t['\u2F60'] = '\u74DC'; + t['\u2F61'] = '\u74E6'; + t['\u2F62'] = '\u7518'; + t['\u2F63'] = '\u751F'; + t['\u2F64'] = '\u7528'; + t['\u2F65'] = '\u7530'; + t['\u2F66'] = '\u758B'; + t['\u2F67'] = '\u7592'; + t['\u2F68'] = '\u7676'; + t['\u2F69'] = '\u767D'; + t['\u2F6A'] = '\u76AE'; + t['\u2F6B'] = '\u76BF'; + t['\u2F6C'] = '\u76EE'; + t['\u2F6D'] = '\u77DB'; + t['\u2F6E'] = '\u77E2'; + t['\u2F6F'] = '\u77F3'; + t['\u2F70'] = '\u793A'; + t['\u2F71'] = '\u79B8'; + t['\u2F72'] = '\u79BE'; + t['\u2F73'] = '\u7A74'; + t['\u2F74'] = '\u7ACB'; + t['\u2F75'] = '\u7AF9'; + t['\u2F76'] = '\u7C73'; + t['\u2F77'] = '\u7CF8'; + t['\u2F78'] = '\u7F36'; + t['\u2F79'] = '\u7F51'; + t['\u2F7A'] = '\u7F8A'; + t['\u2F7B'] = '\u7FBD'; + t['\u2F7C'] = '\u8001'; + t['\u2F7D'] = '\u800C'; + t['\u2F7E'] = '\u8012'; + t['\u2F7F'] = '\u8033'; + t['\u2F80'] = '\u807F'; + t['\u2F81'] = '\u8089'; + t['\u2F82'] = '\u81E3'; + t['\u2F83'] = '\u81EA'; + t['\u2F84'] = '\u81F3'; + t['\u2F85'] = '\u81FC'; + t['\u2F86'] = '\u820C'; + t['\u2F87'] = '\u821B'; + t['\u2F88'] = '\u821F'; + t['\u2F89'] = '\u826E'; + t['\u2F8A'] = '\u8272'; + t['\u2F8B'] = '\u8278'; + t['\u2F8C'] = '\u864D'; + t['\u2F8D'] = '\u866B'; + t['\u2F8E'] = '\u8840'; + t['\u2F8F'] = '\u884C'; + t['\u2F90'] = '\u8863'; + t['\u2F91'] = '\u897E'; + t['\u2F92'] = '\u898B'; + t['\u2F93'] = '\u89D2'; + t['\u2F94'] = '\u8A00'; + t['\u2F95'] = '\u8C37'; + t['\u2F96'] = '\u8C46'; + t['\u2F97'] = '\u8C55'; + t['\u2F98'] = '\u8C78'; + t['\u2F99'] = '\u8C9D'; + t['\u2F9A'] = '\u8D64'; + t['\u2F9B'] = '\u8D70'; + t['\u2F9C'] = '\u8DB3'; + t['\u2F9D'] = '\u8EAB'; + t['\u2F9E'] = '\u8ECA'; + t['\u2F9F'] = '\u8F9B'; + t['\u2FA0'] = '\u8FB0'; + t['\u2FA1'] = '\u8FB5'; + t['\u2FA2'] = '\u9091'; + t['\u2FA3'] = '\u9149'; + t['\u2FA4'] = '\u91C6'; + t['\u2FA5'] = '\u91CC'; + t['\u2FA6'] = '\u91D1'; + t['\u2FA7'] = '\u9577'; + t['\u2FA8'] = '\u9580'; + t['\u2FA9'] = '\u961C'; + t['\u2FAA'] = '\u96B6'; + t['\u2FAB'] = '\u96B9'; + t['\u2FAC'] = '\u96E8'; + t['\u2FAD'] = '\u9751'; + t['\u2FAE'] = '\u975E'; + t['\u2FAF'] = '\u9762'; + t['\u2FB0'] = '\u9769'; + t['\u2FB1'] = '\u97CB'; + t['\u2FB2'] = '\u97ED'; + t['\u2FB3'] = '\u97F3'; + t['\u2FB4'] = '\u9801'; + t['\u2FB5'] = '\u98A8'; + t['\u2FB6'] = '\u98DB'; + t['\u2FB7'] = '\u98DF'; + t['\u2FB8'] = '\u9996'; + t['\u2FB9'] = '\u9999'; + t['\u2FBA'] = '\u99AC'; + t['\u2FBB'] = '\u9AA8'; + t['\u2FBC'] = '\u9AD8'; + t['\u2FBD'] = '\u9ADF'; + t['\u2FBE'] = '\u9B25'; + t['\u2FBF'] = '\u9B2F'; + t['\u2FC0'] = '\u9B32'; + t['\u2FC1'] = '\u9B3C'; + t['\u2FC2'] = '\u9B5A'; + t['\u2FC3'] = '\u9CE5'; + t['\u2FC4'] = '\u9E75'; + t['\u2FC5'] = '\u9E7F'; + t['\u2FC6'] = '\u9EA5'; + t['\u2FC7'] = '\u9EBB'; + t['\u2FC8'] = '\u9EC3'; + t['\u2FC9'] = '\u9ECD'; + t['\u2FCA'] = '\u9ED1'; + t['\u2FCB'] = '\u9EF9'; + t['\u2FCC'] = '\u9EFD'; + t['\u2FCD'] = '\u9F0E'; + t['\u2FCE'] = '\u9F13'; + t['\u2FCF'] = '\u9F20'; + t['\u2FD0'] = '\u9F3B'; + t['\u2FD1'] = '\u9F4A'; + t['\u2FD2'] = '\u9F52'; + t['\u2FD3'] = '\u9F8D'; + t['\u2FD4'] = '\u9F9C'; + t['\u2FD5'] = '\u9FA0'; + t['\u3036'] = '\u3012'; + t['\u3038'] = '\u5341'; + t['\u3039'] = '\u5344'; + t['\u303A'] = '\u5345'; + t['\u309B'] = '\u0020\u3099'; + t['\u309C'] = '\u0020\u309A'; + t['\u3131'] = '\u1100'; + t['\u3132'] = '\u1101'; + t['\u3133'] = '\u11AA'; + t['\u3134'] = '\u1102'; + t['\u3135'] = '\u11AC'; + t['\u3136'] = '\u11AD'; + t['\u3137'] = '\u1103'; + t['\u3138'] = '\u1104'; + t['\u3139'] = '\u1105'; + t['\u313A'] = '\u11B0'; + t['\u313B'] = '\u11B1'; + t['\u313C'] = '\u11B2'; + t['\u313D'] = '\u11B3'; + t['\u313E'] = '\u11B4'; + t['\u313F'] = '\u11B5'; + t['\u3140'] = '\u111A'; + t['\u3141'] = '\u1106'; + t['\u3142'] = '\u1107'; + t['\u3143'] = '\u1108'; + t['\u3144'] = '\u1121'; + t['\u3145'] = '\u1109'; + t['\u3146'] = '\u110A'; + t['\u3147'] = '\u110B'; + t['\u3148'] = '\u110C'; + t['\u3149'] = '\u110D'; + t['\u314A'] = '\u110E'; + t['\u314B'] = '\u110F'; + t['\u314C'] = '\u1110'; + t['\u314D'] = '\u1111'; + t['\u314E'] = '\u1112'; + t['\u314F'] = '\u1161'; + t['\u3150'] = '\u1162'; + t['\u3151'] = '\u1163'; + t['\u3152'] = '\u1164'; + t['\u3153'] = '\u1165'; + t['\u3154'] = '\u1166'; + t['\u3155'] = '\u1167'; + t['\u3156'] = '\u1168'; + t['\u3157'] = '\u1169'; + t['\u3158'] = '\u116A'; + t['\u3159'] = '\u116B'; + t['\u315A'] = '\u116C'; + t['\u315B'] = '\u116D'; + t['\u315C'] = '\u116E'; + t['\u315D'] = '\u116F'; + t['\u315E'] = '\u1170'; + t['\u315F'] = '\u1171'; + t['\u3160'] = '\u1172'; + t['\u3161'] = '\u1173'; + t['\u3162'] = '\u1174'; + t['\u3163'] = '\u1175'; + t['\u3164'] = '\u1160'; + t['\u3165'] = '\u1114'; + t['\u3166'] = '\u1115'; + t['\u3167'] = '\u11C7'; + t['\u3168'] = '\u11C8'; + t['\u3169'] = '\u11CC'; + t['\u316A'] = '\u11CE'; + t['\u316B'] = '\u11D3'; + t['\u316C'] = '\u11D7'; + t['\u316D'] = '\u11D9'; + t['\u316E'] = '\u111C'; + t['\u316F'] = '\u11DD'; + t['\u3170'] = '\u11DF'; + t['\u3171'] = '\u111D'; + t['\u3172'] = '\u111E'; + t['\u3173'] = '\u1120'; + t['\u3174'] = '\u1122'; + t['\u3175'] = '\u1123'; + t['\u3176'] = '\u1127'; + t['\u3177'] = '\u1129'; + t['\u3178'] = '\u112B'; + t['\u3179'] = '\u112C'; + t['\u317A'] = '\u112D'; + t['\u317B'] = '\u112E'; + t['\u317C'] = '\u112F'; + t['\u317D'] = '\u1132'; + t['\u317E'] = '\u1136'; + t['\u317F'] = '\u1140'; + t['\u3180'] = '\u1147'; + t['\u3181'] = '\u114C'; + t['\u3182'] = '\u11F1'; + t['\u3183'] = '\u11F2'; + t['\u3184'] = '\u1157'; + t['\u3185'] = '\u1158'; + t['\u3186'] = '\u1159'; + t['\u3187'] = '\u1184'; + t['\u3188'] = '\u1185'; + t['\u3189'] = '\u1188'; + t['\u318A'] = '\u1191'; + t['\u318B'] = '\u1192'; + t['\u318C'] = '\u1194'; + t['\u318D'] = '\u119E'; + t['\u318E'] = '\u11A1'; + t['\u3200'] = '\u0028\u1100\u0029'; + t['\u3201'] = '\u0028\u1102\u0029'; + t['\u3202'] = '\u0028\u1103\u0029'; + t['\u3203'] = '\u0028\u1105\u0029'; + t['\u3204'] = '\u0028\u1106\u0029'; + t['\u3205'] = '\u0028\u1107\u0029'; + t['\u3206'] = '\u0028\u1109\u0029'; + t['\u3207'] = '\u0028\u110B\u0029'; + t['\u3208'] = '\u0028\u110C\u0029'; + t['\u3209'] = '\u0028\u110E\u0029'; + t['\u320A'] = '\u0028\u110F\u0029'; + t['\u320B'] = '\u0028\u1110\u0029'; + t['\u320C'] = '\u0028\u1111\u0029'; + t['\u320D'] = '\u0028\u1112\u0029'; + t['\u320E'] = '\u0028\u1100\u1161\u0029'; + t['\u320F'] = '\u0028\u1102\u1161\u0029'; + t['\u3210'] = '\u0028\u1103\u1161\u0029'; + t['\u3211'] = '\u0028\u1105\u1161\u0029'; + t['\u3212'] = '\u0028\u1106\u1161\u0029'; + t['\u3213'] = '\u0028\u1107\u1161\u0029'; + t['\u3214'] = '\u0028\u1109\u1161\u0029'; + t['\u3215'] = '\u0028\u110B\u1161\u0029'; + t['\u3216'] = '\u0028\u110C\u1161\u0029'; + t['\u3217'] = '\u0028\u110E\u1161\u0029'; + t['\u3218'] = '\u0028\u110F\u1161\u0029'; + t['\u3219'] = '\u0028\u1110\u1161\u0029'; + t['\u321A'] = '\u0028\u1111\u1161\u0029'; + t['\u321B'] = '\u0028\u1112\u1161\u0029'; + t['\u321C'] = '\u0028\u110C\u116E\u0029'; + t['\u321D'] = '\u0028\u110B\u1169\u110C\u1165\u11AB\u0029'; + t['\u321E'] = '\u0028\u110B\u1169\u1112\u116E\u0029'; + t['\u3220'] = '\u0028\u4E00\u0029'; + t['\u3221'] = '\u0028\u4E8C\u0029'; + t['\u3222'] = '\u0028\u4E09\u0029'; + t['\u3223'] = '\u0028\u56DB\u0029'; + t['\u3224'] = '\u0028\u4E94\u0029'; + t['\u3225'] = '\u0028\u516D\u0029'; + t['\u3226'] = '\u0028\u4E03\u0029'; + t['\u3227'] = '\u0028\u516B\u0029'; + t['\u3228'] = '\u0028\u4E5D\u0029'; + t['\u3229'] = '\u0028\u5341\u0029'; + t['\u322A'] = '\u0028\u6708\u0029'; + t['\u322B'] = '\u0028\u706B\u0029'; + t['\u322C'] = '\u0028\u6C34\u0029'; + t['\u322D'] = '\u0028\u6728\u0029'; + t['\u322E'] = '\u0028\u91D1\u0029'; + t['\u322F'] = '\u0028\u571F\u0029'; + t['\u3230'] = '\u0028\u65E5\u0029'; + t['\u3231'] = '\u0028\u682A\u0029'; + t['\u3232'] = '\u0028\u6709\u0029'; + t['\u3233'] = '\u0028\u793E\u0029'; + t['\u3234'] = '\u0028\u540D\u0029'; + t['\u3235'] = '\u0028\u7279\u0029'; + t['\u3236'] = '\u0028\u8CA1\u0029'; + t['\u3237'] = '\u0028\u795D\u0029'; + t['\u3238'] = '\u0028\u52B4\u0029'; + t['\u3239'] = '\u0028\u4EE3\u0029'; + t['\u323A'] = '\u0028\u547C\u0029'; + t['\u323B'] = '\u0028\u5B66\u0029'; + t['\u323C'] = '\u0028\u76E3\u0029'; + t['\u323D'] = '\u0028\u4F01\u0029'; + t['\u323E'] = '\u0028\u8CC7\u0029'; + t['\u323F'] = '\u0028\u5354\u0029'; + t['\u3240'] = '\u0028\u796D\u0029'; + t['\u3241'] = '\u0028\u4F11\u0029'; + t['\u3242'] = '\u0028\u81EA\u0029'; + t['\u3243'] = '\u0028\u81F3\u0029'; + t['\u32C0'] = '\u0031\u6708'; + t['\u32C1'] = '\u0032\u6708'; + t['\u32C2'] = '\u0033\u6708'; + t['\u32C3'] = '\u0034\u6708'; + t['\u32C4'] = '\u0035\u6708'; + t['\u32C5'] = '\u0036\u6708'; + t['\u32C6'] = '\u0037\u6708'; + t['\u32C7'] = '\u0038\u6708'; + t['\u32C8'] = '\u0039\u6708'; + t['\u32C9'] = '\u0031\u0030\u6708'; + t['\u32CA'] = '\u0031\u0031\u6708'; + t['\u32CB'] = '\u0031\u0032\u6708'; + t['\u3358'] = '\u0030\u70B9'; + t['\u3359'] = '\u0031\u70B9'; + t['\u335A'] = '\u0032\u70B9'; + t['\u335B'] = '\u0033\u70B9'; + t['\u335C'] = '\u0034\u70B9'; + t['\u335D'] = '\u0035\u70B9'; + t['\u335E'] = '\u0036\u70B9'; + t['\u335F'] = '\u0037\u70B9'; + t['\u3360'] = '\u0038\u70B9'; + t['\u3361'] = '\u0039\u70B9'; + t['\u3362'] = '\u0031\u0030\u70B9'; + t['\u3363'] = '\u0031\u0031\u70B9'; + t['\u3364'] = '\u0031\u0032\u70B9'; + t['\u3365'] = '\u0031\u0033\u70B9'; + t['\u3366'] = '\u0031\u0034\u70B9'; + t['\u3367'] = '\u0031\u0035\u70B9'; + t['\u3368'] = '\u0031\u0036\u70B9'; + t['\u3369'] = '\u0031\u0037\u70B9'; + t['\u336A'] = '\u0031\u0038\u70B9'; + t['\u336B'] = '\u0031\u0039\u70B9'; + t['\u336C'] = '\u0032\u0030\u70B9'; + t['\u336D'] = '\u0032\u0031\u70B9'; + t['\u336E'] = '\u0032\u0032\u70B9'; + t['\u336F'] = '\u0032\u0033\u70B9'; + t['\u3370'] = '\u0032\u0034\u70B9'; + t['\u33E0'] = '\u0031\u65E5'; + t['\u33E1'] = '\u0032\u65E5'; + t['\u33E2'] = '\u0033\u65E5'; + t['\u33E3'] = '\u0034\u65E5'; + t['\u33E4'] = '\u0035\u65E5'; + t['\u33E5'] = '\u0036\u65E5'; + t['\u33E6'] = '\u0037\u65E5'; + t['\u33E7'] = '\u0038\u65E5'; + t['\u33E8'] = '\u0039\u65E5'; + t['\u33E9'] = '\u0031\u0030\u65E5'; + t['\u33EA'] = '\u0031\u0031\u65E5'; + t['\u33EB'] = '\u0031\u0032\u65E5'; + t['\u33EC'] = '\u0031\u0033\u65E5'; + t['\u33ED'] = '\u0031\u0034\u65E5'; + t['\u33EE'] = '\u0031\u0035\u65E5'; + t['\u33EF'] = '\u0031\u0036\u65E5'; + t['\u33F0'] = '\u0031\u0037\u65E5'; + t['\u33F1'] = '\u0031\u0038\u65E5'; + t['\u33F2'] = '\u0031\u0039\u65E5'; + t['\u33F3'] = '\u0032\u0030\u65E5'; + t['\u33F4'] = '\u0032\u0031\u65E5'; + t['\u33F5'] = '\u0032\u0032\u65E5'; + t['\u33F6'] = '\u0032\u0033\u65E5'; + t['\u33F7'] = '\u0032\u0034\u65E5'; + t['\u33F8'] = '\u0032\u0035\u65E5'; + t['\u33F9'] = '\u0032\u0036\u65E5'; + t['\u33FA'] = '\u0032\u0037\u65E5'; + t['\u33FB'] = '\u0032\u0038\u65E5'; + t['\u33FC'] = '\u0032\u0039\u65E5'; + t['\u33FD'] = '\u0033\u0030\u65E5'; + t['\u33FE'] = '\u0033\u0031\u65E5'; + t['\uFB00'] = '\u0066\u0066'; + t['\uFB01'] = '\u0066\u0069'; + t['\uFB02'] = '\u0066\u006C'; + t['\uFB03'] = '\u0066\u0066\u0069'; + t['\uFB04'] = '\u0066\u0066\u006C'; + t['\uFB05'] = '\u017F\u0074'; + t['\uFB06'] = '\u0073\u0074'; + t['\uFB13'] = '\u0574\u0576'; + t['\uFB14'] = '\u0574\u0565'; + t['\uFB15'] = '\u0574\u056B'; + t['\uFB16'] = '\u057E\u0576'; + t['\uFB17'] = '\u0574\u056D'; + t['\uFB4F'] = '\u05D0\u05DC'; + t['\uFB50'] = '\u0671'; + t['\uFB51'] = '\u0671'; + t['\uFB52'] = '\u067B'; + t['\uFB53'] = '\u067B'; + t['\uFB54'] = '\u067B'; + t['\uFB55'] = '\u067B'; + t['\uFB56'] = '\u067E'; + t['\uFB57'] = '\u067E'; + t['\uFB58'] = '\u067E'; + t['\uFB59'] = '\u067E'; + t['\uFB5A'] = '\u0680'; + t['\uFB5B'] = '\u0680'; + t['\uFB5C'] = '\u0680'; + t['\uFB5D'] = '\u0680'; + t['\uFB5E'] = '\u067A'; + t['\uFB5F'] = '\u067A'; + t['\uFB60'] = '\u067A'; + t['\uFB61'] = '\u067A'; + t['\uFB62'] = '\u067F'; + t['\uFB63'] = '\u067F'; + t['\uFB64'] = '\u067F'; + t['\uFB65'] = '\u067F'; + t['\uFB66'] = '\u0679'; + t['\uFB67'] = '\u0679'; + t['\uFB68'] = '\u0679'; + t['\uFB69'] = '\u0679'; + t['\uFB6A'] = '\u06A4'; + t['\uFB6B'] = '\u06A4'; + t['\uFB6C'] = '\u06A4'; + t['\uFB6D'] = '\u06A4'; + t['\uFB6E'] = '\u06A6'; + t['\uFB6F'] = '\u06A6'; + t['\uFB70'] = '\u06A6'; + t['\uFB71'] = '\u06A6'; + t['\uFB72'] = '\u0684'; + t['\uFB73'] = '\u0684'; + t['\uFB74'] = '\u0684'; + t['\uFB75'] = '\u0684'; + t['\uFB76'] = '\u0683'; + t['\uFB77'] = '\u0683'; + t['\uFB78'] = '\u0683'; + t['\uFB79'] = '\u0683'; + t['\uFB7A'] = '\u0686'; + t['\uFB7B'] = '\u0686'; + t['\uFB7C'] = '\u0686'; + t['\uFB7D'] = '\u0686'; + t['\uFB7E'] = '\u0687'; + t['\uFB7F'] = '\u0687'; + t['\uFB80'] = '\u0687'; + t['\uFB81'] = '\u0687'; + t['\uFB82'] = '\u068D'; + t['\uFB83'] = '\u068D'; + t['\uFB84'] = '\u068C'; + t['\uFB85'] = '\u068C'; + t['\uFB86'] = '\u068E'; + t['\uFB87'] = '\u068E'; + t['\uFB88'] = '\u0688'; + t['\uFB89'] = '\u0688'; + t['\uFB8A'] = '\u0698'; + t['\uFB8B'] = '\u0698'; + t['\uFB8C'] = '\u0691'; + t['\uFB8D'] = '\u0691'; + t['\uFB8E'] = '\u06A9'; + t['\uFB8F'] = '\u06A9'; + t['\uFB90'] = '\u06A9'; + t['\uFB91'] = '\u06A9'; + t['\uFB92'] = '\u06AF'; + t['\uFB93'] = '\u06AF'; + t['\uFB94'] = '\u06AF'; + t['\uFB95'] = '\u06AF'; + t['\uFB96'] = '\u06B3'; + t['\uFB97'] = '\u06B3'; + t['\uFB98'] = '\u06B3'; + t['\uFB99'] = '\u06B3'; + t['\uFB9A'] = '\u06B1'; + t['\uFB9B'] = '\u06B1'; + t['\uFB9C'] = '\u06B1'; + t['\uFB9D'] = '\u06B1'; + t['\uFB9E'] = '\u06BA'; + t['\uFB9F'] = '\u06BA'; + t['\uFBA0'] = '\u06BB'; + t['\uFBA1'] = '\u06BB'; + t['\uFBA2'] = '\u06BB'; + t['\uFBA3'] = '\u06BB'; + t['\uFBA4'] = '\u06C0'; + t['\uFBA5'] = '\u06C0'; + t['\uFBA6'] = '\u06C1'; + t['\uFBA7'] = '\u06C1'; + t['\uFBA8'] = '\u06C1'; + t['\uFBA9'] = '\u06C1'; + t['\uFBAA'] = '\u06BE'; + t['\uFBAB'] = '\u06BE'; + t['\uFBAC'] = '\u06BE'; + t['\uFBAD'] = '\u06BE'; + t['\uFBAE'] = '\u06D2'; + t['\uFBAF'] = '\u06D2'; + t['\uFBB0'] = '\u06D3'; + t['\uFBB1'] = '\u06D3'; + t['\uFBD3'] = '\u06AD'; + t['\uFBD4'] = '\u06AD'; + t['\uFBD5'] = '\u06AD'; + t['\uFBD6'] = '\u06AD'; + t['\uFBD7'] = '\u06C7'; + t['\uFBD8'] = '\u06C7'; + t['\uFBD9'] = '\u06C6'; + t['\uFBDA'] = '\u06C6'; + t['\uFBDB'] = '\u06C8'; + t['\uFBDC'] = '\u06C8'; + t['\uFBDD'] = '\u0677'; + t['\uFBDE'] = '\u06CB'; + t['\uFBDF'] = '\u06CB'; + t['\uFBE0'] = '\u06C5'; + t['\uFBE1'] = '\u06C5'; + t['\uFBE2'] = '\u06C9'; + t['\uFBE3'] = '\u06C9'; + t['\uFBE4'] = '\u06D0'; + t['\uFBE5'] = '\u06D0'; + t['\uFBE6'] = '\u06D0'; + t['\uFBE7'] = '\u06D0'; + t['\uFBE8'] = '\u0649'; + t['\uFBE9'] = '\u0649'; + t['\uFBEA'] = '\u0626\u0627'; + t['\uFBEB'] = '\u0626\u0627'; + t['\uFBEC'] = '\u0626\u06D5'; + t['\uFBED'] = '\u0626\u06D5'; + t['\uFBEE'] = '\u0626\u0648'; + t['\uFBEF'] = '\u0626\u0648'; + t['\uFBF0'] = '\u0626\u06C7'; + t['\uFBF1'] = '\u0626\u06C7'; + t['\uFBF2'] = '\u0626\u06C6'; + t['\uFBF3'] = '\u0626\u06C6'; + t['\uFBF4'] = '\u0626\u06C8'; + t['\uFBF5'] = '\u0626\u06C8'; + t['\uFBF6'] = '\u0626\u06D0'; + t['\uFBF7'] = '\u0626\u06D0'; + t['\uFBF8'] = '\u0626\u06D0'; + t['\uFBF9'] = '\u0626\u0649'; + t['\uFBFA'] = '\u0626\u0649'; + t['\uFBFB'] = '\u0626\u0649'; + t['\uFBFC'] = '\u06CC'; + t['\uFBFD'] = '\u06CC'; + t['\uFBFE'] = '\u06CC'; + t['\uFBFF'] = '\u06CC'; + t['\uFC00'] = '\u0626\u062C'; + t['\uFC01'] = '\u0626\u062D'; + t['\uFC02'] = '\u0626\u0645'; + t['\uFC03'] = '\u0626\u0649'; + t['\uFC04'] = '\u0626\u064A'; + t['\uFC05'] = '\u0628\u062C'; + t['\uFC06'] = '\u0628\u062D'; + t['\uFC07'] = '\u0628\u062E'; + t['\uFC08'] = '\u0628\u0645'; + t['\uFC09'] = '\u0628\u0649'; + t['\uFC0A'] = '\u0628\u064A'; + t['\uFC0B'] = '\u062A\u062C'; + t['\uFC0C'] = '\u062A\u062D'; + t['\uFC0D'] = '\u062A\u062E'; + t['\uFC0E'] = '\u062A\u0645'; + t['\uFC0F'] = '\u062A\u0649'; + t['\uFC10'] = '\u062A\u064A'; + t['\uFC11'] = '\u062B\u062C'; + t['\uFC12'] = '\u062B\u0645'; + t['\uFC13'] = '\u062B\u0649'; + t['\uFC14'] = '\u062B\u064A'; + t['\uFC15'] = '\u062C\u062D'; + t['\uFC16'] = '\u062C\u0645'; + t['\uFC17'] = '\u062D\u062C'; + t['\uFC18'] = '\u062D\u0645'; + t['\uFC19'] = '\u062E\u062C'; + t['\uFC1A'] = '\u062E\u062D'; + t['\uFC1B'] = '\u062E\u0645'; + t['\uFC1C'] = '\u0633\u062C'; + t['\uFC1D'] = '\u0633\u062D'; + t['\uFC1E'] = '\u0633\u062E'; + t['\uFC1F'] = '\u0633\u0645'; + t['\uFC20'] = '\u0635\u062D'; + t['\uFC21'] = '\u0635\u0645'; + t['\uFC22'] = '\u0636\u062C'; + t['\uFC23'] = '\u0636\u062D'; + t['\uFC24'] = '\u0636\u062E'; + t['\uFC25'] = '\u0636\u0645'; + t['\uFC26'] = '\u0637\u062D'; + t['\uFC27'] = '\u0637\u0645'; + t['\uFC28'] = '\u0638\u0645'; + t['\uFC29'] = '\u0639\u062C'; + t['\uFC2A'] = '\u0639\u0645'; + t['\uFC2B'] = '\u063A\u062C'; + t['\uFC2C'] = '\u063A\u0645'; + t['\uFC2D'] = '\u0641\u062C'; + t['\uFC2E'] = '\u0641\u062D'; + t['\uFC2F'] = '\u0641\u062E'; + t['\uFC30'] = '\u0641\u0645'; + t['\uFC31'] = '\u0641\u0649'; + t['\uFC32'] = '\u0641\u064A'; + t['\uFC33'] = '\u0642\u062D'; + t['\uFC34'] = '\u0642\u0645'; + t['\uFC35'] = '\u0642\u0649'; + t['\uFC36'] = '\u0642\u064A'; + t['\uFC37'] = '\u0643\u0627'; + t['\uFC38'] = '\u0643\u062C'; + t['\uFC39'] = '\u0643\u062D'; + t['\uFC3A'] = '\u0643\u062E'; + t['\uFC3B'] = '\u0643\u0644'; + t['\uFC3C'] = '\u0643\u0645'; + t['\uFC3D'] = '\u0643\u0649'; + t['\uFC3E'] = '\u0643\u064A'; + t['\uFC3F'] = '\u0644\u062C'; + t['\uFC40'] = '\u0644\u062D'; + t['\uFC41'] = '\u0644\u062E'; + t['\uFC42'] = '\u0644\u0645'; + t['\uFC43'] = '\u0644\u0649'; + t['\uFC44'] = '\u0644\u064A'; + t['\uFC45'] = '\u0645\u062C'; + t['\uFC46'] = '\u0645\u062D'; + t['\uFC47'] = '\u0645\u062E'; + t['\uFC48'] = '\u0645\u0645'; + t['\uFC49'] = '\u0645\u0649'; + t['\uFC4A'] = '\u0645\u064A'; + t['\uFC4B'] = '\u0646\u062C'; + t['\uFC4C'] = '\u0646\u062D'; + t['\uFC4D'] = '\u0646\u062E'; + t['\uFC4E'] = '\u0646\u0645'; + t['\uFC4F'] = '\u0646\u0649'; + t['\uFC50'] = '\u0646\u064A'; + t['\uFC51'] = '\u0647\u062C'; + t['\uFC52'] = '\u0647\u0645'; + t['\uFC53'] = '\u0647\u0649'; + t['\uFC54'] = '\u0647\u064A'; + t['\uFC55'] = '\u064A\u062C'; + t['\uFC56'] = '\u064A\u062D'; + t['\uFC57'] = '\u064A\u062E'; + t['\uFC58'] = '\u064A\u0645'; + t['\uFC59'] = '\u064A\u0649'; + t['\uFC5A'] = '\u064A\u064A'; + t['\uFC5B'] = '\u0630\u0670'; + t['\uFC5C'] = '\u0631\u0670'; + t['\uFC5D'] = '\u0649\u0670'; + t['\uFC5E'] = '\u0020\u064C\u0651'; + t['\uFC5F'] = '\u0020\u064D\u0651'; + t['\uFC60'] = '\u0020\u064E\u0651'; + t['\uFC61'] = '\u0020\u064F\u0651'; + t['\uFC62'] = '\u0020\u0650\u0651'; + t['\uFC63'] = '\u0020\u0651\u0670'; + t['\uFC64'] = '\u0626\u0631'; + t['\uFC65'] = '\u0626\u0632'; + t['\uFC66'] = '\u0626\u0645'; + t['\uFC67'] = '\u0626\u0646'; + t['\uFC68'] = '\u0626\u0649'; + t['\uFC69'] = '\u0626\u064A'; + t['\uFC6A'] = '\u0628\u0631'; + t['\uFC6B'] = '\u0628\u0632'; + t['\uFC6C'] = '\u0628\u0645'; + t['\uFC6D'] = '\u0628\u0646'; + t['\uFC6E'] = '\u0628\u0649'; + t['\uFC6F'] = '\u0628\u064A'; + t['\uFC70'] = '\u062A\u0631'; + t['\uFC71'] = '\u062A\u0632'; + t['\uFC72'] = '\u062A\u0645'; + t['\uFC73'] = '\u062A\u0646'; + t['\uFC74'] = '\u062A\u0649'; + t['\uFC75'] = '\u062A\u064A'; + t['\uFC76'] = '\u062B\u0631'; + t['\uFC77'] = '\u062B\u0632'; + t['\uFC78'] = '\u062B\u0645'; + t['\uFC79'] = '\u062B\u0646'; + t['\uFC7A'] = '\u062B\u0649'; + t['\uFC7B'] = '\u062B\u064A'; + t['\uFC7C'] = '\u0641\u0649'; + t['\uFC7D'] = '\u0641\u064A'; + t['\uFC7E'] = '\u0642\u0649'; + t['\uFC7F'] = '\u0642\u064A'; + t['\uFC80'] = '\u0643\u0627'; + t['\uFC81'] = '\u0643\u0644'; + t['\uFC82'] = '\u0643\u0645'; + t['\uFC83'] = '\u0643\u0649'; + t['\uFC84'] = '\u0643\u064A'; + t['\uFC85'] = '\u0644\u0645'; + t['\uFC86'] = '\u0644\u0649'; + t['\uFC87'] = '\u0644\u064A'; + t['\uFC88'] = '\u0645\u0627'; + t['\uFC89'] = '\u0645\u0645'; + t['\uFC8A'] = '\u0646\u0631'; + t['\uFC8B'] = '\u0646\u0632'; + t['\uFC8C'] = '\u0646\u0645'; + t['\uFC8D'] = '\u0646\u0646'; + t['\uFC8E'] = '\u0646\u0649'; + t['\uFC8F'] = '\u0646\u064A'; + t['\uFC90'] = '\u0649\u0670'; + t['\uFC91'] = '\u064A\u0631'; + t['\uFC92'] = '\u064A\u0632'; + t['\uFC93'] = '\u064A\u0645'; + t['\uFC94'] = '\u064A\u0646'; + t['\uFC95'] = '\u064A\u0649'; + t['\uFC96'] = '\u064A\u064A'; + t['\uFC97'] = '\u0626\u062C'; + t['\uFC98'] = '\u0626\u062D'; + t['\uFC99'] = '\u0626\u062E'; + t['\uFC9A'] = '\u0626\u0645'; + t['\uFC9B'] = '\u0626\u0647'; + t['\uFC9C'] = '\u0628\u062C'; + t['\uFC9D'] = '\u0628\u062D'; + t['\uFC9E'] = '\u0628\u062E'; + t['\uFC9F'] = '\u0628\u0645'; + t['\uFCA0'] = '\u0628\u0647'; + t['\uFCA1'] = '\u062A\u062C'; + t['\uFCA2'] = '\u062A\u062D'; + t['\uFCA3'] = '\u062A\u062E'; + t['\uFCA4'] = '\u062A\u0645'; + t['\uFCA5'] = '\u062A\u0647'; + t['\uFCA6'] = '\u062B\u0645'; + t['\uFCA7'] = '\u062C\u062D'; + t['\uFCA8'] = '\u062C\u0645'; + t['\uFCA9'] = '\u062D\u062C'; + t['\uFCAA'] = '\u062D\u0645'; + t['\uFCAB'] = '\u062E\u062C'; + t['\uFCAC'] = '\u062E\u0645'; + t['\uFCAD'] = '\u0633\u062C'; + t['\uFCAE'] = '\u0633\u062D'; + t['\uFCAF'] = '\u0633\u062E'; + t['\uFCB0'] = '\u0633\u0645'; + t['\uFCB1'] = '\u0635\u062D'; + t['\uFCB2'] = '\u0635\u062E'; + t['\uFCB3'] = '\u0635\u0645'; + t['\uFCB4'] = '\u0636\u062C'; + t['\uFCB5'] = '\u0636\u062D'; + t['\uFCB6'] = '\u0636\u062E'; + t['\uFCB7'] = '\u0636\u0645'; + t['\uFCB8'] = '\u0637\u062D'; + t['\uFCB9'] = '\u0638\u0645'; + t['\uFCBA'] = '\u0639\u062C'; + t['\uFCBB'] = '\u0639\u0645'; + t['\uFCBC'] = '\u063A\u062C'; + t['\uFCBD'] = '\u063A\u0645'; + t['\uFCBE'] = '\u0641\u062C'; + t['\uFCBF'] = '\u0641\u062D'; + t['\uFCC0'] = '\u0641\u062E'; + t['\uFCC1'] = '\u0641\u0645'; + t['\uFCC2'] = '\u0642\u062D'; + t['\uFCC3'] = '\u0642\u0645'; + t['\uFCC4'] = '\u0643\u062C'; + t['\uFCC5'] = '\u0643\u062D'; + t['\uFCC6'] = '\u0643\u062E'; + t['\uFCC7'] = '\u0643\u0644'; + t['\uFCC8'] = '\u0643\u0645'; + t['\uFCC9'] = '\u0644\u062C'; + t['\uFCCA'] = '\u0644\u062D'; + t['\uFCCB'] = '\u0644\u062E'; + t['\uFCCC'] = '\u0644\u0645'; + t['\uFCCD'] = '\u0644\u0647'; + t['\uFCCE'] = '\u0645\u062C'; + t['\uFCCF'] = '\u0645\u062D'; + t['\uFCD0'] = '\u0645\u062E'; + t['\uFCD1'] = '\u0645\u0645'; + t['\uFCD2'] = '\u0646\u062C'; + t['\uFCD3'] = '\u0646\u062D'; + t['\uFCD4'] = '\u0646\u062E'; + t['\uFCD5'] = '\u0646\u0645'; + t['\uFCD6'] = '\u0646\u0647'; + t['\uFCD7'] = '\u0647\u062C'; + t['\uFCD8'] = '\u0647\u0645'; + t['\uFCD9'] = '\u0647\u0670'; + t['\uFCDA'] = '\u064A\u062C'; + t['\uFCDB'] = '\u064A\u062D'; + t['\uFCDC'] = '\u064A\u062E'; + t['\uFCDD'] = '\u064A\u0645'; + t['\uFCDE'] = '\u064A\u0647'; + t['\uFCDF'] = '\u0626\u0645'; + t['\uFCE0'] = '\u0626\u0647'; + t['\uFCE1'] = '\u0628\u0645'; + t['\uFCE2'] = '\u0628\u0647'; + t['\uFCE3'] = '\u062A\u0645'; + t['\uFCE4'] = '\u062A\u0647'; + t['\uFCE5'] = '\u062B\u0645'; + t['\uFCE6'] = '\u062B\u0647'; + t['\uFCE7'] = '\u0633\u0645'; + t['\uFCE8'] = '\u0633\u0647'; + t['\uFCE9'] = '\u0634\u0645'; + t['\uFCEA'] = '\u0634\u0647'; + t['\uFCEB'] = '\u0643\u0644'; + t['\uFCEC'] = '\u0643\u0645'; + t['\uFCED'] = '\u0644\u0645'; + t['\uFCEE'] = '\u0646\u0645'; + t['\uFCEF'] = '\u0646\u0647'; + t['\uFCF0'] = '\u064A\u0645'; + t['\uFCF1'] = '\u064A\u0647'; + t['\uFCF2'] = '\u0640\u064E\u0651'; + t['\uFCF3'] = '\u0640\u064F\u0651'; + t['\uFCF4'] = '\u0640\u0650\u0651'; + t['\uFCF5'] = '\u0637\u0649'; + t['\uFCF6'] = '\u0637\u064A'; + t['\uFCF7'] = '\u0639\u0649'; + t['\uFCF8'] = '\u0639\u064A'; + t['\uFCF9'] = '\u063A\u0649'; + t['\uFCFA'] = '\u063A\u064A'; + t['\uFCFB'] = '\u0633\u0649'; + t['\uFCFC'] = '\u0633\u064A'; + t['\uFCFD'] = '\u0634\u0649'; + t['\uFCFE'] = '\u0634\u064A'; + t['\uFCFF'] = '\u062D\u0649'; + t['\uFD00'] = '\u062D\u064A'; + t['\uFD01'] = '\u062C\u0649'; + t['\uFD02'] = '\u062C\u064A'; + t['\uFD03'] = '\u062E\u0649'; + t['\uFD04'] = '\u062E\u064A'; + t['\uFD05'] = '\u0635\u0649'; + t['\uFD06'] = '\u0635\u064A'; + t['\uFD07'] = '\u0636\u0649'; + t['\uFD08'] = '\u0636\u064A'; + t['\uFD09'] = '\u0634\u062C'; + t['\uFD0A'] = '\u0634\u062D'; + t['\uFD0B'] = '\u0634\u062E'; + t['\uFD0C'] = '\u0634\u0645'; + t['\uFD0D'] = '\u0634\u0631'; + t['\uFD0E'] = '\u0633\u0631'; + t['\uFD0F'] = '\u0635\u0631'; + t['\uFD10'] = '\u0636\u0631'; + t['\uFD11'] = '\u0637\u0649'; + t['\uFD12'] = '\u0637\u064A'; + t['\uFD13'] = '\u0639\u0649'; + t['\uFD14'] = '\u0639\u064A'; + t['\uFD15'] = '\u063A\u0649'; + t['\uFD16'] = '\u063A\u064A'; + t['\uFD17'] = '\u0633\u0649'; + t['\uFD18'] = '\u0633\u064A'; + t['\uFD19'] = '\u0634\u0649'; + t['\uFD1A'] = '\u0634\u064A'; + t['\uFD1B'] = '\u062D\u0649'; + t['\uFD1C'] = '\u062D\u064A'; + t['\uFD1D'] = '\u062C\u0649'; + t['\uFD1E'] = '\u062C\u064A'; + t['\uFD1F'] = '\u062E\u0649'; + t['\uFD20'] = '\u062E\u064A'; + t['\uFD21'] = '\u0635\u0649'; + t['\uFD22'] = '\u0635\u064A'; + t['\uFD23'] = '\u0636\u0649'; + t['\uFD24'] = '\u0636\u064A'; + t['\uFD25'] = '\u0634\u062C'; + t['\uFD26'] = '\u0634\u062D'; + t['\uFD27'] = '\u0634\u062E'; + t['\uFD28'] = '\u0634\u0645'; + t['\uFD29'] = '\u0634\u0631'; + t['\uFD2A'] = '\u0633\u0631'; + t['\uFD2B'] = '\u0635\u0631'; + t['\uFD2C'] = '\u0636\u0631'; + t['\uFD2D'] = '\u0634\u062C'; + t['\uFD2E'] = '\u0634\u062D'; + t['\uFD2F'] = '\u0634\u062E'; + t['\uFD30'] = '\u0634\u0645'; + t['\uFD31'] = '\u0633\u0647'; + t['\uFD32'] = '\u0634\u0647'; + t['\uFD33'] = '\u0637\u0645'; + t['\uFD34'] = '\u0633\u062C'; + t['\uFD35'] = '\u0633\u062D'; + t['\uFD36'] = '\u0633\u062E'; + t['\uFD37'] = '\u0634\u062C'; + t['\uFD38'] = '\u0634\u062D'; + t['\uFD39'] = '\u0634\u062E'; + t['\uFD3A'] = '\u0637\u0645'; + t['\uFD3B'] = '\u0638\u0645'; + t['\uFD3C'] = '\u0627\u064B'; + t['\uFD3D'] = '\u0627\u064B'; + t['\uFD50'] = '\u062A\u062C\u0645'; + t['\uFD51'] = '\u062A\u062D\u062C'; + t['\uFD52'] = '\u062A\u062D\u062C'; + t['\uFD53'] = '\u062A\u062D\u0645'; + t['\uFD54'] = '\u062A\u062E\u0645'; + t['\uFD55'] = '\u062A\u0645\u062C'; + t['\uFD56'] = '\u062A\u0645\u062D'; + t['\uFD57'] = '\u062A\u0645\u062E'; + t['\uFD58'] = '\u062C\u0645\u062D'; + t['\uFD59'] = '\u062C\u0645\u062D'; + t['\uFD5A'] = '\u062D\u0645\u064A'; + t['\uFD5B'] = '\u062D\u0645\u0649'; + t['\uFD5C'] = '\u0633\u062D\u062C'; + t['\uFD5D'] = '\u0633\u062C\u062D'; + t['\uFD5E'] = '\u0633\u062C\u0649'; + t['\uFD5F'] = '\u0633\u0645\u062D'; + t['\uFD60'] = '\u0633\u0645\u062D'; + t['\uFD61'] = '\u0633\u0645\u062C'; + t['\uFD62'] = '\u0633\u0645\u0645'; + t['\uFD63'] = '\u0633\u0645\u0645'; + t['\uFD64'] = '\u0635\u062D\u062D'; + t['\uFD65'] = '\u0635\u062D\u062D'; + t['\uFD66'] = '\u0635\u0645\u0645'; + t['\uFD67'] = '\u0634\u062D\u0645'; + t['\uFD68'] = '\u0634\u062D\u0645'; + t['\uFD69'] = '\u0634\u062C\u064A'; + t['\uFD6A'] = '\u0634\u0645\u062E'; + t['\uFD6B'] = '\u0634\u0645\u062E'; + t['\uFD6C'] = '\u0634\u0645\u0645'; + t['\uFD6D'] = '\u0634\u0645\u0645'; + t['\uFD6E'] = '\u0636\u062D\u0649'; + t['\uFD6F'] = '\u0636\u062E\u0645'; + t['\uFD70'] = '\u0636\u062E\u0645'; + t['\uFD71'] = '\u0637\u0645\u062D'; + t['\uFD72'] = '\u0637\u0645\u062D'; + t['\uFD73'] = '\u0637\u0645\u0645'; + t['\uFD74'] = '\u0637\u0645\u064A'; + t['\uFD75'] = '\u0639\u062C\u0645'; + t['\uFD76'] = '\u0639\u0645\u0645'; + t['\uFD77'] = '\u0639\u0645\u0645'; + t['\uFD78'] = '\u0639\u0645\u0649'; + t['\uFD79'] = '\u063A\u0645\u0645'; + t['\uFD7A'] = '\u063A\u0645\u064A'; + t['\uFD7B'] = '\u063A\u0645\u0649'; + t['\uFD7C'] = '\u0641\u062E\u0645'; + t['\uFD7D'] = '\u0641\u062E\u0645'; + t['\uFD7E'] = '\u0642\u0645\u062D'; + t['\uFD7F'] = '\u0642\u0645\u0645'; + t['\uFD80'] = '\u0644\u062D\u0645'; + t['\uFD81'] = '\u0644\u062D\u064A'; + t['\uFD82'] = '\u0644\u062D\u0649'; + t['\uFD83'] = '\u0644\u062C\u062C'; + t['\uFD84'] = '\u0644\u062C\u062C'; + t['\uFD85'] = '\u0644\u062E\u0645'; + t['\uFD86'] = '\u0644\u062E\u0645'; + t['\uFD87'] = '\u0644\u0645\u062D'; + t['\uFD88'] = '\u0644\u0645\u062D'; + t['\uFD89'] = '\u0645\u062D\u062C'; + t['\uFD8A'] = '\u0645\u062D\u0645'; + t['\uFD8B'] = '\u0645\u062D\u064A'; + t['\uFD8C'] = '\u0645\u062C\u062D'; + t['\uFD8D'] = '\u0645\u062C\u0645'; + t['\uFD8E'] = '\u0645\u062E\u062C'; + t['\uFD8F'] = '\u0645\u062E\u0645'; + t['\uFD92'] = '\u0645\u062C\u062E'; + t['\uFD93'] = '\u0647\u0645\u062C'; + t['\uFD94'] = '\u0647\u0645\u0645'; + t['\uFD95'] = '\u0646\u062D\u0645'; + t['\uFD96'] = '\u0646\u062D\u0649'; + t['\uFD97'] = '\u0646\u062C\u0645'; + t['\uFD98'] = '\u0646\u062C\u0645'; + t['\uFD99'] = '\u0646\u062C\u0649'; + t['\uFD9A'] = '\u0646\u0645\u064A'; + t['\uFD9B'] = '\u0646\u0645\u0649'; + t['\uFD9C'] = '\u064A\u0645\u0645'; + t['\uFD9D'] = '\u064A\u0645\u0645'; + t['\uFD9E'] = '\u0628\u062E\u064A'; + t['\uFD9F'] = '\u062A\u062C\u064A'; + t['\uFDA0'] = '\u062A\u062C\u0649'; + t['\uFDA1'] = '\u062A\u062E\u064A'; + t['\uFDA2'] = '\u062A\u062E\u0649'; + t['\uFDA3'] = '\u062A\u0645\u064A'; + t['\uFDA4'] = '\u062A\u0645\u0649'; + t['\uFDA5'] = '\u062C\u0645\u064A'; + t['\uFDA6'] = '\u062C\u062D\u0649'; + t['\uFDA7'] = '\u062C\u0645\u0649'; + t['\uFDA8'] = '\u0633\u062E\u0649'; + t['\uFDA9'] = '\u0635\u062D\u064A'; + t['\uFDAA'] = '\u0634\u062D\u064A'; + t['\uFDAB'] = '\u0636\u062D\u064A'; + t['\uFDAC'] = '\u0644\u062C\u064A'; + t['\uFDAD'] = '\u0644\u0645\u064A'; + t['\uFDAE'] = '\u064A\u062D\u064A'; + t['\uFDAF'] = '\u064A\u062C\u064A'; + t['\uFDB0'] = '\u064A\u0645\u064A'; + t['\uFDB1'] = '\u0645\u0645\u064A'; + t['\uFDB2'] = '\u0642\u0645\u064A'; + t['\uFDB3'] = '\u0646\u062D\u064A'; + t['\uFDB4'] = '\u0642\u0645\u062D'; + t['\uFDB5'] = '\u0644\u062D\u0645'; + t['\uFDB6'] = '\u0639\u0645\u064A'; + t['\uFDB7'] = '\u0643\u0645\u064A'; + t['\uFDB8'] = '\u0646\u062C\u062D'; + t['\uFDB9'] = '\u0645\u062E\u064A'; + t['\uFDBA'] = '\u0644\u062C\u0645'; + t['\uFDBB'] = '\u0643\u0645\u0645'; + t['\uFDBC'] = '\u0644\u062C\u0645'; + t['\uFDBD'] = '\u0646\u062C\u062D'; + t['\uFDBE'] = '\u062C\u062D\u064A'; + t['\uFDBF'] = '\u062D\u062C\u064A'; + t['\uFDC0'] = '\u0645\u062C\u064A'; + t['\uFDC1'] = '\u0641\u0645\u064A'; + t['\uFDC2'] = '\u0628\u062D\u064A'; + t['\uFDC3'] = '\u0643\u0645\u0645'; + t['\uFDC4'] = '\u0639\u062C\u0645'; + t['\uFDC5'] = '\u0635\u0645\u0645'; + t['\uFDC6'] = '\u0633\u062E\u064A'; + t['\uFDC7'] = '\u0646\u062C\u064A'; + t['\uFE49'] = '\u203E'; + t['\uFE4A'] = '\u203E'; + t['\uFE4B'] = '\u203E'; + t['\uFE4C'] = '\u203E'; + t['\uFE4D'] = '\u005F'; + t['\uFE4E'] = '\u005F'; + t['\uFE4F'] = '\u005F'; + t['\uFE80'] = '\u0621'; + t['\uFE81'] = '\u0622'; + t['\uFE82'] = '\u0622'; + t['\uFE83'] = '\u0623'; + t['\uFE84'] = '\u0623'; + t['\uFE85'] = '\u0624'; + t['\uFE86'] = '\u0624'; + t['\uFE87'] = '\u0625'; + t['\uFE88'] = '\u0625'; + t['\uFE89'] = '\u0626'; + t['\uFE8A'] = '\u0626'; + t['\uFE8B'] = '\u0626'; + t['\uFE8C'] = '\u0626'; + t['\uFE8D'] = '\u0627'; + t['\uFE8E'] = '\u0627'; + t['\uFE8F'] = '\u0628'; + t['\uFE90'] = '\u0628'; + t['\uFE91'] = '\u0628'; + t['\uFE92'] = '\u0628'; + t['\uFE93'] = '\u0629'; + t['\uFE94'] = '\u0629'; + t['\uFE95'] = '\u062A'; + t['\uFE96'] = '\u062A'; + t['\uFE97'] = '\u062A'; + t['\uFE98'] = '\u062A'; + t['\uFE99'] = '\u062B'; + t['\uFE9A'] = '\u062B'; + t['\uFE9B'] = '\u062B'; + t['\uFE9C'] = '\u062B'; + t['\uFE9D'] = '\u062C'; + t['\uFE9E'] = '\u062C'; + t['\uFE9F'] = '\u062C'; + t['\uFEA0'] = '\u062C'; + t['\uFEA1'] = '\u062D'; + t['\uFEA2'] = '\u062D'; + t['\uFEA3'] = '\u062D'; + t['\uFEA4'] = '\u062D'; + t['\uFEA5'] = '\u062E'; + t['\uFEA6'] = '\u062E'; + t['\uFEA7'] = '\u062E'; + t['\uFEA8'] = '\u062E'; + t['\uFEA9'] = '\u062F'; + t['\uFEAA'] = '\u062F'; + t['\uFEAB'] = '\u0630'; + t['\uFEAC'] = '\u0630'; + t['\uFEAD'] = '\u0631'; + t['\uFEAE'] = '\u0631'; + t['\uFEAF'] = '\u0632'; + t['\uFEB0'] = '\u0632'; + t['\uFEB1'] = '\u0633'; + t['\uFEB2'] = '\u0633'; + t['\uFEB3'] = '\u0633'; + t['\uFEB4'] = '\u0633'; + t['\uFEB5'] = '\u0634'; + t['\uFEB6'] = '\u0634'; + t['\uFEB7'] = '\u0634'; + t['\uFEB8'] = '\u0634'; + t['\uFEB9'] = '\u0635'; + t['\uFEBA'] = '\u0635'; + t['\uFEBB'] = '\u0635'; + t['\uFEBC'] = '\u0635'; + t['\uFEBD'] = '\u0636'; + t['\uFEBE'] = '\u0636'; + t['\uFEBF'] = '\u0636'; + t['\uFEC0'] = '\u0636'; + t['\uFEC1'] = '\u0637'; + t['\uFEC2'] = '\u0637'; + t['\uFEC3'] = '\u0637'; + t['\uFEC4'] = '\u0637'; + t['\uFEC5'] = '\u0638'; + t['\uFEC6'] = '\u0638'; + t['\uFEC7'] = '\u0638'; + t['\uFEC8'] = '\u0638'; + t['\uFEC9'] = '\u0639'; + t['\uFECA'] = '\u0639'; + t['\uFECB'] = '\u0639'; + t['\uFECC'] = '\u0639'; + t['\uFECD'] = '\u063A'; + t['\uFECE'] = '\u063A'; + t['\uFECF'] = '\u063A'; + t['\uFED0'] = '\u063A'; + t['\uFED1'] = '\u0641'; + t['\uFED2'] = '\u0641'; + t['\uFED3'] = '\u0641'; + t['\uFED4'] = '\u0641'; + t['\uFED5'] = '\u0642'; + t['\uFED6'] = '\u0642'; + t['\uFED7'] = '\u0642'; + t['\uFED8'] = '\u0642'; + t['\uFED9'] = '\u0643'; + t['\uFEDA'] = '\u0643'; + t['\uFEDB'] = '\u0643'; + t['\uFEDC'] = '\u0643'; + t['\uFEDD'] = '\u0644'; + t['\uFEDE'] = '\u0644'; + t['\uFEDF'] = '\u0644'; + t['\uFEE0'] = '\u0644'; + t['\uFEE1'] = '\u0645'; + t['\uFEE2'] = '\u0645'; + t['\uFEE3'] = '\u0645'; + t['\uFEE4'] = '\u0645'; + t['\uFEE5'] = '\u0646'; + t['\uFEE6'] = '\u0646'; + t['\uFEE7'] = '\u0646'; + t['\uFEE8'] = '\u0646'; + t['\uFEE9'] = '\u0647'; + t['\uFEEA'] = '\u0647'; + t['\uFEEB'] = '\u0647'; + t['\uFEEC'] = '\u0647'; + t['\uFEED'] = '\u0648'; + t['\uFEEE'] = '\u0648'; + t['\uFEEF'] = '\u0649'; + t['\uFEF0'] = '\u0649'; + t['\uFEF1'] = '\u064A'; + t['\uFEF2'] = '\u064A'; + t['\uFEF3'] = '\u064A'; + t['\uFEF4'] = '\u064A'; + t['\uFEF5'] = '\u0644\u0622'; + t['\uFEF6'] = '\u0644\u0622'; + t['\uFEF7'] = '\u0644\u0623'; + t['\uFEF8'] = '\u0644\u0623'; + t['\uFEF9'] = '\u0644\u0625'; + t['\uFEFA'] = '\u0644\u0625'; + t['\uFEFB'] = '\u0644\u0627'; + t['\uFEFC'] = '\u0644\u0627'; +}); +function reverseIfRtl(chars) { + var charsLength = chars.length; + if (charsLength <= 1 || !isRTLRangeFor(chars.charCodeAt(0))) { + return chars; + } + var s = ''; + for (var ii = charsLength - 1; ii >= 0; ii--) { + s += chars[ii]; + } + return s; +} +exports.mapSpecialUnicodeValues = mapSpecialUnicodeValues; +exports.reverseIfRtl = reverseIfRtl; +exports.getUnicodeRangeFor = getUnicodeRangeFor; +exports.getNormalizedUnicodes = getNormalizedUnicodes; +exports.getUnicodeForGlyph = getUnicodeForGlyph; + +/***/ }), +/* 180 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.FontRendererFactory = void 0; + +var _util = __w_pdfjs_require__(6); + +var _cff_parser = __w_pdfjs_require__(174); + +var _glyphlist = __w_pdfjs_require__(177); + +var _encodings = __w_pdfjs_require__(176); + +var _stream = __w_pdfjs_require__(157); + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var FontRendererFactory = function FontRendererFactoryClosure() { + function getLong(data, offset) { + return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]; + } + + function getUshort(data, offset) { + return data[offset] << 8 | data[offset + 1]; + } + + function parseCmap(data, start, end) { + var offset = getUshort(data, start + 2) === 1 ? getLong(data, start + 8) : getLong(data, start + 16); + var format = getUshort(data, start + offset); + var ranges, p, i; + + if (format === 4) { + getUshort(data, start + offset + 2); + var segCount = getUshort(data, start + offset + 6) >> 1; + p = start + offset + 14; + ranges = []; + + for (i = 0; i < segCount; i++, p += 2) { + ranges[i] = { + end: getUshort(data, p) + }; + } + + p += 2; + + for (i = 0; i < segCount; i++, p += 2) { + ranges[i].start = getUshort(data, p); + } + + for (i = 0; i < segCount; i++, p += 2) { + ranges[i].idDelta = getUshort(data, p); + } + + for (i = 0; i < segCount; i++, p += 2) { + var idOffset = getUshort(data, p); + + if (idOffset === 0) { + continue; + } + + ranges[i].ids = []; + + for (var j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) { + ranges[i].ids[j] = getUshort(data, p + idOffset); + idOffset += 2; + } + } + + return ranges; + } else if (format === 12) { + getLong(data, start + offset + 4); + var groups = getLong(data, start + offset + 12); + p = start + offset + 16; + ranges = []; + + for (i = 0; i < groups; i++) { + ranges.push({ + start: getLong(data, p), + end: getLong(data, p + 4), + idDelta: getLong(data, p + 8) - getLong(data, p) + }); + p += 12; + } + + return ranges; + } + + throw new _util.FormatError("unsupported cmap: ".concat(format)); + } + + function parseCff(data, start, end, seacAnalysisEnabled) { + var properties = {}; + var parser = new _cff_parser.CFFParser(new _stream.Stream(data, start, end - start), properties, seacAnalysisEnabled); + var cff = parser.parse(); + return { + glyphs: cff.charStrings.objects, + subrs: cff.topDict.privateDict && cff.topDict.privateDict.subrsIndex && cff.topDict.privateDict.subrsIndex.objects, + gsubrs: cff.globalSubrIndex && cff.globalSubrIndex.objects, + isCFFCIDFont: cff.isCIDFont, + fdSelect: cff.fdSelect, + fdArray: cff.fdArray + }; + } + + function parseGlyfTable(glyf, loca, isGlyphLocationsLong) { + var itemSize, itemDecode; + + if (isGlyphLocationsLong) { + itemSize = 4; + + itemDecode = function fontItemDecodeLong(data, offset) { + return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]; + }; + } else { + itemSize = 2; + + itemDecode = function fontItemDecode(data, offset) { + return data[offset] << 9 | data[offset + 1] << 1; + }; + } + + var glyphs = []; + var startOffset = itemDecode(loca, 0); + + for (var j = itemSize; j < loca.length; j += itemSize) { + var endOffset = itemDecode(loca, j); + glyphs.push(glyf.subarray(startOffset, endOffset)); + startOffset = endOffset; + } + + return glyphs; + } + + function lookupCmap(ranges, unicode) { + var code = unicode.codePointAt(0), + gid = 0; + var l = 0, + r = ranges.length - 1; + + while (l < r) { + var c = l + r + 1 >> 1; + + if (code < ranges[c].start) { + r = c - 1; + } else { + l = c; + } + } + + if (ranges[l].start <= code && code <= ranges[l].end) { + gid = ranges[l].idDelta + (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code) & 0xFFFF; + } + + return { + charCode: code, + glyphId: gid + }; + } + + function compileGlyf(code, cmds, font) { + function moveTo(x, y) { + cmds.push({ + cmd: 'moveTo', + args: [x, y] + }); + } + + function lineTo(x, y) { + cmds.push({ + cmd: 'lineTo', + args: [x, y] + }); + } + + function quadraticCurveTo(xa, ya, x, y) { + cmds.push({ + cmd: 'quadraticCurveTo', + args: [xa, ya, x, y] + }); + } + + var i = 0; + var numberOfContours = (code[i] << 24 | code[i + 1] << 16) >> 16; + var flags; + var x = 0, + y = 0; + i += 10; + + if (numberOfContours < 0) { + do { + flags = code[i] << 8 | code[i + 1]; + var glyphIndex = code[i + 2] << 8 | code[i + 3]; + i += 4; + var arg1, arg2; + + if (flags & 0x01) { + arg1 = (code[i] << 24 | code[i + 1] << 16) >> 16; + arg2 = (code[i + 2] << 24 | code[i + 3] << 16) >> 16; + i += 4; + } else { + arg1 = code[i++]; + arg2 = code[i++]; + } + + if (flags & 0x02) { + x = arg1; + y = arg2; + } else { + x = 0; + y = 0; + } + + var scaleX = 1, + scaleY = 1, + scale01 = 0, + scale10 = 0; + + if (flags & 0x08) { + scaleX = scaleY = (code[i] << 24 | code[i + 1] << 16) / 1073741824; + i += 2; + } else if (flags & 0x40) { + scaleX = (code[i] << 24 | code[i + 1] << 16) / 1073741824; + scaleY = (code[i + 2] << 24 | code[i + 3] << 16) / 1073741824; + i += 4; + } else if (flags & 0x80) { + scaleX = (code[i] << 24 | code[i + 1] << 16) / 1073741824; + scale01 = (code[i + 2] << 24 | code[i + 3] << 16) / 1073741824; + scale10 = (code[i + 4] << 24 | code[i + 5] << 16) / 1073741824; + scaleY = (code[i + 6] << 24 | code[i + 7] << 16) / 1073741824; + i += 8; + } + + var subglyph = font.glyphs[glyphIndex]; + + if (subglyph) { + cmds.push({ + cmd: 'save' + }); + cmds.push({ + cmd: 'transform', + args: [scaleX, scale01, scale10, scaleY, x, y] + }); + compileGlyf(subglyph, cmds, font); + cmds.push({ + cmd: 'restore' + }); + } + } while (flags & 0x20); + } else { + var endPtsOfContours = []; + var j, jj; + + for (j = 0; j < numberOfContours; j++) { + endPtsOfContours.push(code[i] << 8 | code[i + 1]); + i += 2; + } + + var instructionLength = code[i] << 8 | code[i + 1]; + i += 2 + instructionLength; + var numberOfPoints = endPtsOfContours[endPtsOfContours.length - 1] + 1; + var points = []; + + while (points.length < numberOfPoints) { + flags = code[i++]; + var repeat = 1; + + if (flags & 0x08) { + repeat += code[i++]; + } + + while (repeat-- > 0) { + points.push({ + flags: flags + }); + } + } + + for (j = 0; j < numberOfPoints; j++) { + switch (points[j].flags & 0x12) { + case 0x00: + x += (code[i] << 24 | code[i + 1] << 16) >> 16; + i += 2; + break; + + case 0x02: + x -= code[i++]; + break; + + case 0x12: + x += code[i++]; + break; + } + + points[j].x = x; + } + + for (j = 0; j < numberOfPoints; j++) { + switch (points[j].flags & 0x24) { + case 0x00: + y += (code[i] << 24 | code[i + 1] << 16) >> 16; + i += 2; + break; + + case 0x04: + y -= code[i++]; + break; + + case 0x24: + y += code[i++]; + break; + } + + points[j].y = y; + } + + var startPoint = 0; + + for (i = 0; i < numberOfContours; i++) { + var endPoint = endPtsOfContours[i]; + var contour = points.slice(startPoint, endPoint + 1); + + if (contour[0].flags & 1) { + contour.push(contour[0]); + } else if (contour[contour.length - 1].flags & 1) { + contour.unshift(contour[contour.length - 1]); + } else { + var p = { + flags: 1, + x: (contour[0].x + contour[contour.length - 1].x) / 2, + y: (contour[0].y + contour[contour.length - 1].y) / 2 + }; + contour.unshift(p); + contour.push(p); + } + + moveTo(contour[0].x, contour[0].y); + + for (j = 1, jj = contour.length; j < jj; j++) { + if (contour[j].flags & 1) { + lineTo(contour[j].x, contour[j].y); + } else if (contour[j + 1].flags & 1) { + quadraticCurveTo(contour[j].x, contour[j].y, contour[j + 1].x, contour[j + 1].y); + j++; + } else { + quadraticCurveTo(contour[j].x, contour[j].y, (contour[j].x + contour[j + 1].x) / 2, (contour[j].y + contour[j + 1].y) / 2); + } + } + + startPoint = endPoint + 1; + } + } + } + + function compileCharString(code, cmds, font, glyphId) { + var stack = []; + var x = 0, + y = 0; + var stems = 0; + + function moveTo(x, y) { + cmds.push({ + cmd: 'moveTo', + args: [x, y] + }); + } + + function lineTo(x, y) { + cmds.push({ + cmd: 'lineTo', + args: [x, y] + }); + } + + function bezierCurveTo(x1, y1, x2, y2, x, y) { + cmds.push({ + cmd: 'bezierCurveTo', + args: [x1, y1, x2, y2, x, y] + }); + } + + function parse(code) { + var i = 0; + + while (i < code.length) { + var stackClean = false; + var v = code[i++]; + var xa, xb, ya, yb, y1, y2, y3, n, subrCode; + + switch (v) { + case 1: + stems += stack.length >> 1; + stackClean = true; + break; + + case 3: + stems += stack.length >> 1; + stackClean = true; + break; + + case 4: + y += stack.pop(); + moveTo(x, y); + stackClean = true; + break; + + case 5: + while (stack.length > 0) { + x += stack.shift(); + y += stack.shift(); + lineTo(x, y); + } + + break; + + case 6: + while (stack.length > 0) { + x += stack.shift(); + lineTo(x, y); + + if (stack.length === 0) { + break; + } + + y += stack.shift(); + lineTo(x, y); + } + + break; + + case 7: + while (stack.length > 0) { + y += stack.shift(); + lineTo(x, y); + + if (stack.length === 0) { + break; + } + + x += stack.shift(); + lineTo(x, y); + } + + break; + + case 8: + while (stack.length > 0) { + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + } + + break; + + case 10: + n = stack.pop(); + subrCode = null; + + if (font.isCFFCIDFont) { + var fdIndex = font.fdSelect.getFDIndex(glyphId); + + if (fdIndex >= 0 && fdIndex < font.fdArray.length) { + var fontDict = font.fdArray[fdIndex], + subrs = void 0; + + if (fontDict.privateDict && fontDict.privateDict.subrsIndex) { + subrs = fontDict.privateDict.subrsIndex.objects; + } + + if (subrs) { + var numSubrs = subrs.length; + n += numSubrs < 1240 ? 107 : numSubrs < 33900 ? 1131 : 32768; + subrCode = subrs[n]; + } + } else { + (0, _util.warn)('Invalid fd index for glyph index.'); + } + } else { + subrCode = font.subrs[n + font.subrsBias]; + } + + if (subrCode) { + parse(subrCode); + } + + break; + + case 11: + return; + + case 12: + v = code[i++]; + + switch (v) { + case 34: + xa = x + stack.shift(); + xb = xa + stack.shift(); + y1 = y + stack.shift(); + x = xb + stack.shift(); + bezierCurveTo(xa, y, xb, y1, x, y1); + xa = x + stack.shift(); + xb = xa + stack.shift(); + x = xb + stack.shift(); + bezierCurveTo(xa, y1, xb, y, x, y); + break; + + case 35: + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + stack.pop(); + break; + + case 36: + xa = x + stack.shift(); + y1 = y + stack.shift(); + xb = xa + stack.shift(); + y2 = y1 + stack.shift(); + x = xb + stack.shift(); + bezierCurveTo(xa, y1, xb, y2, x, y2); + xa = x + stack.shift(); + xb = xa + stack.shift(); + y3 = y2 + stack.shift(); + x = xb + stack.shift(); + bezierCurveTo(xa, y2, xb, y3, x, y); + break; + + case 37: + var x0 = x, + y0 = y; + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb; + y = yb; + + if (Math.abs(x - x0) > Math.abs(y - y0)) { + x += stack.shift(); + } else { + y += stack.shift(); + } + + bezierCurveTo(xa, ya, xb, yb, x, y); + break; + + default: + throw new _util.FormatError("unknown operator: 12 ".concat(v)); + } + + break; + + case 14: + if (stack.length >= 4) { + var achar = stack.pop(); + var bchar = stack.pop(); + y = stack.pop(); + x = stack.pop(); + cmds.push({ + cmd: 'save' + }); + cmds.push({ + cmd: 'translate', + args: [x, y] + }); + var cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[achar]])); + compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId); + cmds.push({ + cmd: 'restore' + }); + cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[bchar]])); + compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId); + } + + return; + + case 18: + stems += stack.length >> 1; + stackClean = true; + break; + + case 19: + stems += stack.length >> 1; + i += stems + 7 >> 3; + stackClean = true; + break; + + case 20: + stems += stack.length >> 1; + i += stems + 7 >> 3; + stackClean = true; + break; + + case 21: + y += stack.pop(); + x += stack.pop(); + moveTo(x, y); + stackClean = true; + break; + + case 22: + x += stack.pop(); + moveTo(x, y); + stackClean = true; + break; + + case 23: + stems += stack.length >> 1; + stackClean = true; + break; + + case 24: + while (stack.length > 2) { + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + } + + x += stack.shift(); + y += stack.shift(); + lineTo(x, y); + break; + + case 25: + while (stack.length > 6) { + x += stack.shift(); + y += stack.shift(); + lineTo(x, y); + } + + xa = x + stack.shift(); + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + break; + + case 26: + if (stack.length % 2) { + x += stack.shift(); + } + + while (stack.length > 0) { + xa = x; + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb; + y = yb + stack.shift(); + bezierCurveTo(xa, ya, xb, yb, x, y); + } + + break; + + case 27: + if (stack.length % 2) { + y += stack.shift(); + } + + while (stack.length > 0) { + xa = x + stack.shift(); + ya = y; + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb; + bezierCurveTo(xa, ya, xb, yb, x, y); + } + + break; + + case 28: + stack.push((code[i] << 24 | code[i + 1] << 16) >> 16); + i += 2; + break; + + case 29: + n = stack.pop() + font.gsubrsBias; + subrCode = font.gsubrs[n]; + + if (subrCode) { + parse(subrCode); + } + + break; + + case 30: + while (stack.length > 0) { + xa = x; + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + (stack.length === 1 ? stack.shift() : 0); + bezierCurveTo(xa, ya, xb, yb, x, y); + + if (stack.length === 0) { + break; + } + + xa = x + stack.shift(); + ya = y; + xb = xa + stack.shift(); + yb = ya + stack.shift(); + y = yb + stack.shift(); + x = xb + (stack.length === 1 ? stack.shift() : 0); + bezierCurveTo(xa, ya, xb, yb, x, y); + } + + break; + + case 31: + while (stack.length > 0) { + xa = x + stack.shift(); + ya = y; + xb = xa + stack.shift(); + yb = ya + stack.shift(); + y = yb + stack.shift(); + x = xb + (stack.length === 1 ? stack.shift() : 0); + bezierCurveTo(xa, ya, xb, yb, x, y); + + if (stack.length === 0) { + break; + } + + xa = x; + ya = y + stack.shift(); + xb = xa + stack.shift(); + yb = ya + stack.shift(); + x = xb + stack.shift(); + y = yb + (stack.length === 1 ? stack.shift() : 0); + bezierCurveTo(xa, ya, xb, yb, x, y); + } + + break; + + default: + if (v < 32) { + throw new _util.FormatError("unknown operator: ".concat(v)); + } + + if (v < 247) { + stack.push(v - 139); + } else if (v < 251) { + stack.push((v - 247) * 256 + code[i++] + 108); + } else if (v < 255) { + stack.push(-(v - 251) * 256 - code[i++] - 108); + } else { + stack.push((code[i] << 24 | code[i + 1] << 16 | code[i + 2] << 8 | code[i + 3]) / 65536); + i += 4; + } + + break; + } + + if (stackClean) { + stack.length = 0; + } + } + } + + parse(code); + } + + var NOOP = []; + + var CompiledFont = + /*#__PURE__*/ + function () { + function CompiledFont(fontMatrix) { + _classCallCheck(this, CompiledFont); + + if (this.constructor === CompiledFont) { + (0, _util.unreachable)('Cannot initialize CompiledFont.'); + } + + this.fontMatrix = fontMatrix; + this.compiledGlyphs = Object.create(null); + this.compiledCharCodeToGlyphId = Object.create(null); + } + + _createClass(CompiledFont, [{ + key: "getPathJs", + value: function getPathJs(unicode) { + var cmap = lookupCmap(this.cmap, unicode); + var fn = this.compiledGlyphs[cmap.glyphId]; + + if (!fn) { + fn = this.compileGlyph(this.glyphs[cmap.glyphId], cmap.glyphId); + this.compiledGlyphs[cmap.glyphId] = fn; + } + + if (this.compiledCharCodeToGlyphId[cmap.charCode] === undefined) { + this.compiledCharCodeToGlyphId[cmap.charCode] = cmap.glyphId; + } + + return fn; + } + }, { + key: "compileGlyph", + value: function compileGlyph(code, glyphId) { + if (!code || code.length === 0 || code[0] === 14) { + return NOOP; + } + + var fontMatrix = this.fontMatrix; + + if (this.isCFFCIDFont) { + var fdIndex = this.fdSelect.getFDIndex(glyphId); + + if (fdIndex >= 0 && fdIndex < this.fdArray.length) { + var fontDict = this.fdArray[fdIndex]; + fontMatrix = fontDict.getByName('FontMatrix') || _util.FONT_IDENTITY_MATRIX; + } else { + (0, _util.warn)('Invalid fd index for glyph index.'); + } + } + + var cmds = []; + cmds.push({ + cmd: 'save' + }); + cmds.push({ + cmd: 'transform', + args: fontMatrix.slice() + }); + cmds.push({ + cmd: 'scale', + args: ['size', '-size'] + }); + this.compileGlyphImpl(code, cmds, glyphId); + cmds.push({ + cmd: 'restore' + }); + return cmds; + } + }, { + key: "compileGlyphImpl", + value: function compileGlyphImpl() { + (0, _util.unreachable)('Children classes should implement this.'); + } + }, { + key: "hasBuiltPath", + value: function hasBuiltPath(unicode) { + var cmap = lookupCmap(this.cmap, unicode); + return this.compiledGlyphs[cmap.glyphId] !== undefined && this.compiledCharCodeToGlyphId[cmap.charCode] !== undefined; + } + }]); + + return CompiledFont; + }(); + + var TrueTypeCompiled = + /*#__PURE__*/ + function (_CompiledFont) { + _inherits(TrueTypeCompiled, _CompiledFont); + + function TrueTypeCompiled(glyphs, cmap, fontMatrix) { + var _this; + + _classCallCheck(this, TrueTypeCompiled); + + _this = _possibleConstructorReturn(this, _getPrototypeOf(TrueTypeCompiled).call(this, fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0])); + _this.glyphs = glyphs; + _this.cmap = cmap; + return _this; + } + + _createClass(TrueTypeCompiled, [{ + key: "compileGlyphImpl", + value: function compileGlyphImpl(code, cmds) { + compileGlyf(code, cmds, this); + } + }]); + + return TrueTypeCompiled; + }(CompiledFont); + + var Type2Compiled = + /*#__PURE__*/ + function (_CompiledFont2) { + _inherits(Type2Compiled, _CompiledFont2); + + function Type2Compiled(cffInfo, cmap, fontMatrix, glyphNameMap) { + var _this2; + + _classCallCheck(this, Type2Compiled); + + _this2 = _possibleConstructorReturn(this, _getPrototypeOf(Type2Compiled).call(this, fontMatrix || [0.001, 0, 0, 0.001, 0, 0])); + _this2.glyphs = cffInfo.glyphs; + _this2.gsubrs = cffInfo.gsubrs || []; + _this2.subrs = cffInfo.subrs || []; + _this2.cmap = cmap; + _this2.glyphNameMap = glyphNameMap || (0, _glyphlist.getGlyphsUnicode)(); + _this2.gsubrsBias = _this2.gsubrs.length < 1240 ? 107 : _this2.gsubrs.length < 33900 ? 1131 : 32768; + _this2.subrsBias = _this2.subrs.length < 1240 ? 107 : _this2.subrs.length < 33900 ? 1131 : 32768; + _this2.isCFFCIDFont = cffInfo.isCFFCIDFont; + _this2.fdSelect = cffInfo.fdSelect; + _this2.fdArray = cffInfo.fdArray; + return _this2; + } + + _createClass(Type2Compiled, [{ + key: "compileGlyphImpl", + value: function compileGlyphImpl(code, cmds, glyphId) { + compileCharString(code, cmds, this, glyphId); + } + }]); + + return Type2Compiled; + }(CompiledFont); + + return { + create: function FontRendererFactory_create(font, seacAnalysisEnabled) { + var data = new Uint8Array(font.data); + var cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm; + var numTables = getUshort(data, 4); + + for (var i = 0, p = 12; i < numTables; i++, p += 16) { + var tag = (0, _util.bytesToString)(data.subarray(p, p + 4)); + var offset = getLong(data, p + 8); + var length = getLong(data, p + 12); + + switch (tag) { + case 'cmap': + cmap = parseCmap(data, offset, offset + length); + break; + + case 'glyf': + glyf = data.subarray(offset, offset + length); + break; + + case 'loca': + loca = data.subarray(offset, offset + length); + break; + + case 'head': + unitsPerEm = getUshort(data, offset + 18); + indexToLocFormat = getUshort(data, offset + 50); + break; + + case 'CFF ': + cff = parseCff(data, offset, offset + length, seacAnalysisEnabled); + break; + } + } + + if (glyf) { + var fontMatrix = !unitsPerEm ? font.fontMatrix : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0]; + return new TrueTypeCompiled(parseGlyfTable(glyf, loca, indexToLocFormat), cmap, fontMatrix); + } + + return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap); + } + }; +}(); + +exports.FontRendererFactory = FontRendererFactory; + +/***/ }), +/* 181 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Type1Parser = void 0; + +var _util = __w_pdfjs_require__(6); + +var _encodings = __w_pdfjs_require__(176); + +var _stream = __w_pdfjs_require__(157); + +var HINTING_ENABLED = false; + +var Type1CharString = function Type1CharStringClosure() { + var COMMAND_MAP = { + 'hstem': [1], + 'vstem': [3], + 'vmoveto': [4], + 'rlineto': [5], + 'hlineto': [6], + 'vlineto': [7], + 'rrcurveto': [8], + 'callsubr': [10], + 'flex': [12, 35], + 'drop': [12, 18], + 'endchar': [14], + 'rmoveto': [21], + 'hmoveto': [22], + 'vhcurveto': [30], + 'hvcurveto': [31] + }; + + function Type1CharString() { + this.width = 0; + this.lsb = 0; + this.flexing = false; + this.output = []; + this.stack = []; + } + + Type1CharString.prototype = { + convert: function Type1CharString_convert(encoded, subrs, seacAnalysisEnabled) { + var count = encoded.length; + var error = false; + var wx, sbx, subrNumber; + + for (var i = 0; i < count; i++) { + var value = encoded[i]; + + if (value < 32) { + if (value === 12) { + value = (value << 8) + encoded[++i]; + } + + switch (value) { + case 1: + if (!HINTING_ENABLED) { + this.stack = []; + break; + } + + error = this.executeCommand(2, COMMAND_MAP.hstem); + break; + + case 3: + if (!HINTING_ENABLED) { + this.stack = []; + break; + } + + error = this.executeCommand(2, COMMAND_MAP.vstem); + break; + + case 4: + if (this.flexing) { + if (this.stack.length < 1) { + error = true; + break; + } + + var dy = this.stack.pop(); + this.stack.push(0, dy); + break; + } + + error = this.executeCommand(1, COMMAND_MAP.vmoveto); + break; + + case 5: + error = this.executeCommand(2, COMMAND_MAP.rlineto); + break; + + case 6: + error = this.executeCommand(1, COMMAND_MAP.hlineto); + break; + + case 7: + error = this.executeCommand(1, COMMAND_MAP.vlineto); + break; + + case 8: + error = this.executeCommand(6, COMMAND_MAP.rrcurveto); + break; + + case 9: + this.stack = []; + break; + + case 10: + if (this.stack.length < 1) { + error = true; + break; + } + + subrNumber = this.stack.pop(); + + if (!subrs[subrNumber]) { + error = true; + break; + } + + error = this.convert(subrs[subrNumber], subrs, seacAnalysisEnabled); + break; + + case 11: + return error; + + case 13: + if (this.stack.length < 2) { + error = true; + break; + } + + wx = this.stack.pop(); + sbx = this.stack.pop(); + this.lsb = sbx; + this.width = wx; + this.stack.push(wx, sbx); + error = this.executeCommand(2, COMMAND_MAP.hmoveto); + break; + + case 14: + this.output.push(COMMAND_MAP.endchar[0]); + break; + + case 21: + if (this.flexing) { + break; + } + + error = this.executeCommand(2, COMMAND_MAP.rmoveto); + break; + + case 22: + if (this.flexing) { + this.stack.push(0); + break; + } + + error = this.executeCommand(1, COMMAND_MAP.hmoveto); + break; + + case 30: + error = this.executeCommand(4, COMMAND_MAP.vhcurveto); + break; + + case 31: + error = this.executeCommand(4, COMMAND_MAP.hvcurveto); + break; + + case (12 << 8) + 0: + this.stack = []; + break; + + case (12 << 8) + 1: + if (!HINTING_ENABLED) { + this.stack = []; + break; + } + + error = this.executeCommand(2, COMMAND_MAP.vstem); + break; + + case (12 << 8) + 2: + if (!HINTING_ENABLED) { + this.stack = []; + break; + } + + error = this.executeCommand(2, COMMAND_MAP.hstem); + break; + + case (12 << 8) + 6: + if (seacAnalysisEnabled) { + this.seac = this.stack.splice(-4, 4); + error = this.executeCommand(0, COMMAND_MAP.endchar); + } else { + error = this.executeCommand(4, COMMAND_MAP.endchar); + } + + break; + + case (12 << 8) + 7: + if (this.stack.length < 4) { + error = true; + break; + } + + this.stack.pop(); + wx = this.stack.pop(); + var sby = this.stack.pop(); + sbx = this.stack.pop(); + this.lsb = sbx; + this.width = wx; + this.stack.push(wx, sbx, sby); + error = this.executeCommand(3, COMMAND_MAP.rmoveto); + break; + + case (12 << 8) + 12: + if (this.stack.length < 2) { + error = true; + break; + } + + var num2 = this.stack.pop(); + var num1 = this.stack.pop(); + this.stack.push(num1 / num2); + break; + + case (12 << 8) + 16: + if (this.stack.length < 2) { + error = true; + break; + } + + subrNumber = this.stack.pop(); + var numArgs = this.stack.pop(); + + if (subrNumber === 0 && numArgs === 3) { + var flexArgs = this.stack.splice(this.stack.length - 17, 17); + this.stack.push(flexArgs[2] + flexArgs[0], flexArgs[3] + flexArgs[1], flexArgs[4], flexArgs[5], flexArgs[6], flexArgs[7], flexArgs[8], flexArgs[9], flexArgs[10], flexArgs[11], flexArgs[12], flexArgs[13], flexArgs[14]); + error = this.executeCommand(13, COMMAND_MAP.flex, true); + this.flexing = false; + this.stack.push(flexArgs[15], flexArgs[16]); + } else if (subrNumber === 1 && numArgs === 0) { + this.flexing = true; + } + + break; + + case (12 << 8) + 17: + break; + + case (12 << 8) + 33: + this.stack = []; + break; + + default: + (0, _util.warn)('Unknown type 1 charstring command of "' + value + '"'); + break; + } + + if (error) { + break; + } + + continue; + } else if (value <= 246) { + value = value - 139; + } else if (value <= 250) { + value = (value - 247) * 256 + encoded[++i] + 108; + } else if (value <= 254) { + value = -((value - 251) * 256) - encoded[++i] - 108; + } else { + value = (encoded[++i] & 0xff) << 24 | (encoded[++i] & 0xff) << 16 | (encoded[++i] & 0xff) << 8 | (encoded[++i] & 0xff) << 0; + } + + this.stack.push(value); + } + + return error; + }, + executeCommand: function executeCommand(howManyArgs, command, keepStack) { + var stackLength = this.stack.length; + + if (howManyArgs > stackLength) { + return true; + } + + var start = stackLength - howManyArgs; + + for (var i = start; i < stackLength; i++) { + var value = this.stack[i]; + + if (Number.isInteger(value)) { + this.output.push(28, value >> 8 & 0xff, value & 0xff); + } else { + value = 65536 * value | 0; + this.output.push(255, value >> 24 & 0xFF, value >> 16 & 0xFF, value >> 8 & 0xFF, value & 0xFF); + } + } + + this.output.push.apply(this.output, command); + + if (keepStack) { + this.stack.splice(start, howManyArgs); + } else { + this.stack.length = 0; + } + + return false; + } + }; + return Type1CharString; +}(); + +var Type1Parser = function Type1ParserClosure() { + var EEXEC_ENCRYPT_KEY = 55665; + var CHAR_STRS_ENCRYPT_KEY = 4330; + + function isHexDigit(code) { + return code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102; + } + + function decrypt(data, key, discardNumber) { + if (discardNumber >= data.length) { + return new Uint8Array(0); + } + + var r = key | 0, + c1 = 52845, + c2 = 22719, + i, + j; + + for (i = 0; i < discardNumber; i++) { + r = (data[i] + r) * c1 + c2 & (1 << 16) - 1; + } + + var count = data.length - discardNumber; + var decrypted = new Uint8Array(count); + + for (i = discardNumber, j = 0; j < count; i++, j++) { + var value = data[i]; + decrypted[j] = value ^ r >> 8; + r = (value + r) * c1 + c2 & (1 << 16) - 1; + } + + return decrypted; + } + + function decryptAscii(data, key, discardNumber) { + var r = key | 0, + c1 = 52845, + c2 = 22719; + var count = data.length, + maybeLength = count >>> 1; + var decrypted = new Uint8Array(maybeLength); + var i, j; + + for (i = 0, j = 0; i < count; i++) { + var digit1 = data[i]; + + if (!isHexDigit(digit1)) { + continue; + } + + i++; + var digit2; + + while (i < count && !isHexDigit(digit2 = data[i])) { + i++; + } + + if (i < count) { + var value = parseInt(String.fromCharCode(digit1, digit2), 16); + decrypted[j++] = value ^ r >> 8; + r = (value + r) * c1 + c2 & (1 << 16) - 1; + } + } + + return Array.prototype.slice.call(decrypted, discardNumber, j); + } + + function isSpecial(c) { + return c === 0x2F || c === 0x5B || c === 0x5D || c === 0x7B || c === 0x7D || c === 0x28 || c === 0x29; + } + + function Type1Parser(stream, encrypted, seacAnalysisEnabled) { + if (encrypted) { + var data = stream.getBytes(); + var isBinary = !(isHexDigit(data[0]) && isHexDigit(data[1]) && isHexDigit(data[2]) && isHexDigit(data[3])); + stream = new _stream.Stream(isBinary ? decrypt(data, EEXEC_ENCRYPT_KEY, 4) : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4)); + } + + this.seacAnalysisEnabled = !!seacAnalysisEnabled; + this.stream = stream; + this.nextChar(); + } + + Type1Parser.prototype = { + readNumberArray: function Type1Parser_readNumberArray() { + this.getToken(); + var array = []; + + while (true) { + var token = this.getToken(); + + if (token === null || token === ']' || token === '}') { + break; + } + + array.push(parseFloat(token || 0)); + } + + return array; + }, + readNumber: function Type1Parser_readNumber() { + var token = this.getToken(); + return parseFloat(token || 0); + }, + readInt: function Type1Parser_readInt() { + var token = this.getToken(); + return parseInt(token || 0, 10) | 0; + }, + readBoolean: function Type1Parser_readBoolean() { + var token = this.getToken(); + return token === 'true' ? 1 : 0; + }, + nextChar: function Type1_nextChar() { + return this.currentChar = this.stream.getByte(); + }, + getToken: function Type1Parser_getToken() { + var comment = false; + var ch = this.currentChar; + + while (true) { + if (ch === -1) { + return null; + } + + if (comment) { + if (ch === 0x0A || ch === 0x0D) { + comment = false; + } + } else if (ch === 0x25) { + comment = true; + } else if (!(0, _util.isSpace)(ch)) { + break; + } + + ch = this.nextChar(); + } + + if (isSpecial(ch)) { + this.nextChar(); + return String.fromCharCode(ch); + } + + var token = ''; + + do { + token += String.fromCharCode(ch); + ch = this.nextChar(); + } while (ch >= 0 && !(0, _util.isSpace)(ch) && !isSpecial(ch)); + + return token; + }, + readCharStrings: function Type1Parser_readCharStrings(bytes, lenIV) { + if (lenIV === -1) { + return bytes; + } + + return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV); + }, + extractFontProgram: function Type1Parser_extractFontProgram() { + var stream = this.stream; + var subrs = [], + charstrings = []; + var privateData = Object.create(null); + privateData['lenIV'] = 4; + var program = { + subrs: [], + charstrings: [], + properties: { + 'privateData': privateData + } + }; + var token, length, data, lenIV, encoded; + + while ((token = this.getToken()) !== null) { + if (token !== '/') { + continue; + } + + token = this.getToken(); + + switch (token) { + case 'CharStrings': + this.getToken(); + this.getToken(); + this.getToken(); + this.getToken(); + + while (true) { + token = this.getToken(); + + if (token === null || token === 'end') { + break; + } + + if (token !== '/') { + continue; + } + + var glyph = this.getToken(); + length = this.readInt(); + this.getToken(); + data = length > 0 ? stream.getBytes(length) : new Uint8Array(0); + lenIV = program.properties.privateData['lenIV']; + encoded = this.readCharStrings(data, lenIV); + this.nextChar(); + token = this.getToken(); + + if (token === 'noaccess') { + this.getToken(); + } + + charstrings.push({ + glyph: glyph, + encoded: encoded + }); + } + + break; + + case 'Subrs': + this.readInt(); + this.getToken(); + + while (this.getToken() === 'dup') { + var index = this.readInt(); + length = this.readInt(); + this.getToken(); + data = length > 0 ? stream.getBytes(length) : new Uint8Array(0); + lenIV = program.properties.privateData['lenIV']; + encoded = this.readCharStrings(data, lenIV); + this.nextChar(); + token = this.getToken(); + + if (token === 'noaccess') { + this.getToken(); + } + + subrs[index] = encoded; + } + + break; + + case 'BlueValues': + case 'OtherBlues': + case 'FamilyBlues': + case 'FamilyOtherBlues': + var blueArray = this.readNumberArray(); + + if (blueArray.length > 0 && blueArray.length % 2 === 0 && HINTING_ENABLED) { + program.properties.privateData[token] = blueArray; + } + + break; + + case 'StemSnapH': + case 'StemSnapV': + program.properties.privateData[token] = this.readNumberArray(); + break; + + case 'StdHW': + case 'StdVW': + program.properties.privateData[token] = this.readNumberArray()[0]; + break; + + case 'BlueShift': + case 'lenIV': + case 'BlueFuzz': + case 'BlueScale': + case 'LanguageGroup': + case 'ExpansionFactor': + program.properties.privateData[token] = this.readNumber(); + break; + + case 'ForceBold': + program.properties.privateData[token] = this.readBoolean(); + break; + } + } + + for (var i = 0; i < charstrings.length; i++) { + glyph = charstrings[i].glyph; + encoded = charstrings[i].encoded; + var charString = new Type1CharString(); + var error = charString.convert(encoded, subrs, this.seacAnalysisEnabled); + var output = charString.output; + + if (error) { + output = [14]; + } + + program.charstrings.push({ + glyphName: glyph, + charstring: output, + width: charString.width, + lsb: charString.lsb, + seac: charString.seac + }); + } + + return program; + }, + extractFontHeader: function Type1Parser_extractFontHeader(properties) { + var token; + + while ((token = this.getToken()) !== null) { + if (token !== '/') { + continue; + } + + token = this.getToken(); + + switch (token) { + case 'FontMatrix': + var matrix = this.readNumberArray(); + properties.fontMatrix = matrix; + break; + + case 'Encoding': + var encodingArg = this.getToken(); + var encoding; + + if (!/^\d+$/.test(encodingArg)) { + encoding = (0, _encodings.getEncoding)(encodingArg); + } else { + encoding = []; + var size = parseInt(encodingArg, 10) | 0; + this.getToken(); + + for (var j = 0; j < size; j++) { + token = this.getToken(); + + while (token !== 'dup' && token !== 'def') { + token = this.getToken(); + + if (token === null) { + return; + } + } + + if (token === 'def') { + break; + } + + var index = this.readInt(); + this.getToken(); + var glyph = this.getToken(); + encoding[index] = glyph; + this.getToken(); + } + } + + properties.builtInEncoding = encoding; + break; + + case 'FontBBox': + var fontBBox = this.readNumberArray(); + properties.ascent = Math.max(fontBBox[3], fontBBox[1]); + properties.descent = Math.min(fontBBox[1], fontBBox[3]); + properties.ascentScaled = true; + break; + } + } + } + }; + return Type1Parser; +}(); + +exports.Type1Parser = Type1Parser; + +/***/ }), +/* 182 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getTilingPatternIR = getTilingPatternIR; +exports.Pattern = void 0; + +var _util = __w_pdfjs_require__(6); + +var _colorspace = __w_pdfjs_require__(168); + +var _primitives = __w_pdfjs_require__(155); + +var ShadingType = { + FUNCTION_BASED: 1, + AXIAL: 2, + RADIAL: 3, + FREE_FORM_MESH: 4, + LATTICE_FORM_MESH: 5, + COONS_PATCH_MESH: 6, + TENSOR_PATCH_MESH: 7 +}; + +var Pattern = function PatternClosure() { + function Pattern() { + (0, _util.unreachable)('should not call Pattern constructor'); + } + + Pattern.prototype = { + getPattern: function Pattern_getPattern(ctx) { + (0, _util.unreachable)("Should not call Pattern.getStyle: ".concat(ctx)); + } + }; + + Pattern.parseShading = function (shading, matrix, xref, res, handler, pdfFunctionFactory) { + var dict = (0, _primitives.isStream)(shading) ? shading.dict : shading; + var type = dict.get('ShadingType'); + + try { + switch (type) { + case ShadingType.AXIAL: + case ShadingType.RADIAL: + return new Shadings.RadialAxial(dict, matrix, xref, res, pdfFunctionFactory); + + case ShadingType.FREE_FORM_MESH: + case ShadingType.LATTICE_FORM_MESH: + case ShadingType.COONS_PATCH_MESH: + case ShadingType.TENSOR_PATCH_MESH: + return new Shadings.Mesh(shading, matrix, xref, res, pdfFunctionFactory); + + default: + throw new _util.FormatError('Unsupported ShadingType: ' + type); + } + } catch (ex) { + if (ex instanceof _util.MissingDataException) { + throw ex; + } + + handler.send('UnsupportedFeature', { + featureId: _util.UNSUPPORTED_FEATURES.shadingPattern + }); + (0, _util.warn)(ex); + return new Shadings.Dummy(); + } + }; + + return Pattern; +}(); + +exports.Pattern = Pattern; +var Shadings = {}; +Shadings.SMALL_NUMBER = 1e-6; + +Shadings.RadialAxial = function RadialAxialClosure() { + function RadialAxial(dict, matrix, xref, res, pdfFunctionFactory) { + this.matrix = matrix; + this.coordsArr = dict.getArray('Coords'); + this.shadingType = dict.get('ShadingType'); + this.type = 'Pattern'; + var cs = dict.get('ColorSpace', 'CS'); + cs = _colorspace.ColorSpace.parse(cs, xref, res, pdfFunctionFactory); + this.cs = cs; + var t0 = 0.0, + t1 = 1.0; + + if (dict.has('Domain')) { + var domainArr = dict.getArray('Domain'); + t0 = domainArr[0]; + t1 = domainArr[1]; + } + + var extendStart = false, + extendEnd = false; + + if (dict.has('Extend')) { + var extendArr = dict.getArray('Extend'); + extendStart = extendArr[0]; + extendEnd = extendArr[1]; + } + + if (this.shadingType === ShadingType.RADIAL && (!extendStart || !extendEnd)) { + var x1 = this.coordsArr[0]; + var y1 = this.coordsArr[1]; + var r1 = this.coordsArr[2]; + var x2 = this.coordsArr[3]; + var y2 = this.coordsArr[4]; + var r2 = this.coordsArr[5]; + var distance = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)); + + if (r1 <= r2 + distance && r2 <= r1 + distance) { + (0, _util.warn)('Unsupported radial gradient.'); + } + } + + this.extendStart = extendStart; + this.extendEnd = extendEnd; + var fnObj = dict.get('Function'); + var fn = pdfFunctionFactory.createFromArray(fnObj); + var diff = t1 - t0; + var step = diff / 10; + var colorStops = this.colorStops = []; + + if (t0 >= t1 || step <= 0) { + (0, _util.info)('Bad shading domain.'); + return; + } + + var color = new Float32Array(cs.numComps), + ratio = new Float32Array(1); + var rgbColor; + + for (var i = t0; i <= t1; i += step) { + ratio[0] = i; + fn(ratio, 0, color, 0); + rgbColor = cs.getRgb(color, 0); + + var cssColor = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]); + + colorStops.push([(i - t0) / diff, cssColor]); + } + + var background = 'transparent'; + + if (dict.has('Background')) { + rgbColor = cs.getRgb(dict.get('Background'), 0); + background = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]); + } + + if (!extendStart) { + colorStops.unshift([0, background]); + colorStops[1][0] += Shadings.SMALL_NUMBER; + } + + if (!extendEnd) { + colorStops[colorStops.length - 1][0] -= Shadings.SMALL_NUMBER; + colorStops.push([1, background]); + } + + this.colorStops = colorStops; + } + + RadialAxial.prototype = { + getIR: function RadialAxial_getIR() { + var coordsArr = this.coordsArr; + var shadingType = this.shadingType; + var type, p0, p1, r0, r1; + + if (shadingType === ShadingType.AXIAL) { + p0 = [coordsArr[0], coordsArr[1]]; + p1 = [coordsArr[2], coordsArr[3]]; + r0 = null; + r1 = null; + type = 'axial'; + } else if (shadingType === ShadingType.RADIAL) { + p0 = [coordsArr[0], coordsArr[1]]; + p1 = [coordsArr[3], coordsArr[4]]; + r0 = coordsArr[2]; + r1 = coordsArr[5]; + type = 'radial'; + } else { + (0, _util.unreachable)("getPattern type unknown: ".concat(shadingType)); + } + + var matrix = this.matrix; + + if (matrix) { + p0 = _util.Util.applyTransform(p0, matrix); + p1 = _util.Util.applyTransform(p1, matrix); + + if (shadingType === ShadingType.RADIAL) { + var scale = _util.Util.singularValueDecompose2dScale(matrix); + + r0 *= scale[0]; + r1 *= scale[1]; + } + } + + return ['RadialAxial', type, this.colorStops, p0, p1, r0, r1]; + } + }; + return RadialAxial; +}(); + +Shadings.Mesh = function MeshClosure() { + function MeshStreamReader(stream, context) { + this.stream = stream; + this.context = context; + this.buffer = 0; + this.bufferLength = 0; + var numComps = context.numComps; + this.tmpCompsBuf = new Float32Array(numComps); + var csNumComps = context.colorSpace.numComps; + this.tmpCsCompsBuf = context.colorFn ? new Float32Array(csNumComps) : this.tmpCompsBuf; + } + + MeshStreamReader.prototype = { + get hasData() { + if (this.stream.end) { + return this.stream.pos < this.stream.end; + } + + if (this.bufferLength > 0) { + return true; + } + + var nextByte = this.stream.getByte(); + + if (nextByte < 0) { + return false; + } + + this.buffer = nextByte; + this.bufferLength = 8; + return true; + }, + + readBits: function MeshStreamReader_readBits(n) { + var buffer = this.buffer; + var bufferLength = this.bufferLength; + + if (n === 32) { + if (bufferLength === 0) { + return (this.stream.getByte() << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte()) >>> 0; + } + + buffer = buffer << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte(); + var nextByte = this.stream.getByte(); + this.buffer = nextByte & (1 << bufferLength) - 1; + return (buffer << 8 - bufferLength | (nextByte & 0xFF) >> bufferLength) >>> 0; + } + + if (n === 8 && bufferLength === 0) { + return this.stream.getByte(); + } + + while (bufferLength < n) { + buffer = buffer << 8 | this.stream.getByte(); + bufferLength += 8; + } + + bufferLength -= n; + this.bufferLength = bufferLength; + this.buffer = buffer & (1 << bufferLength) - 1; + return buffer >> bufferLength; + }, + align: function MeshStreamReader_align() { + this.buffer = 0; + this.bufferLength = 0; + }, + readFlag: function MeshStreamReader_readFlag() { + return this.readBits(this.context.bitsPerFlag); + }, + readCoordinate: function MeshStreamReader_readCoordinate() { + var bitsPerCoordinate = this.context.bitsPerCoordinate; + var xi = this.readBits(bitsPerCoordinate); + var yi = this.readBits(bitsPerCoordinate); + var decode = this.context.decode; + var scale = bitsPerCoordinate < 32 ? 1 / ((1 << bitsPerCoordinate) - 1) : 2.3283064365386963e-10; + return [xi * scale * (decode[1] - decode[0]) + decode[0], yi * scale * (decode[3] - decode[2]) + decode[2]]; + }, + readComponents: function MeshStreamReader_readComponents() { + var numComps = this.context.numComps; + var bitsPerComponent = this.context.bitsPerComponent; + var scale = bitsPerComponent < 32 ? 1 / ((1 << bitsPerComponent) - 1) : 2.3283064365386963e-10; + var decode = this.context.decode; + var components = this.tmpCompsBuf; + + for (var i = 0, j = 4; i < numComps; i++, j += 2) { + var ci = this.readBits(bitsPerComponent); + components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j]; + } + + var color = this.tmpCsCompsBuf; + + if (this.context.colorFn) { + this.context.colorFn(components, 0, color, 0); + } + + return this.context.colorSpace.getRgb(color, 0); + } + }; + + function decodeType4Shading(mesh, reader) { + var coords = mesh.coords; + var colors = mesh.colors; + var operators = []; + var ps = []; + var verticesLeft = 0; + + while (reader.hasData) { + var f = reader.readFlag(); + var coord = reader.readCoordinate(); + var color = reader.readComponents(); + + if (verticesLeft === 0) { + if (!(0 <= f && f <= 2)) { + throw new _util.FormatError('Unknown type4 flag'); + } + + switch (f) { + case 0: + verticesLeft = 3; + break; + + case 1: + ps.push(ps[ps.length - 2], ps[ps.length - 1]); + verticesLeft = 1; + break; + + case 2: + ps.push(ps[ps.length - 3], ps[ps.length - 1]); + verticesLeft = 1; + break; + } + + operators.push(f); + } + + ps.push(coords.length); + coords.push(coord); + colors.push(color); + verticesLeft--; + reader.align(); + } + + mesh.figures.push({ + type: 'triangles', + coords: new Int32Array(ps), + colors: new Int32Array(ps) + }); + } + + function decodeType5Shading(mesh, reader, verticesPerRow) { + var coords = mesh.coords; + var colors = mesh.colors; + var ps = []; + + while (reader.hasData) { + var coord = reader.readCoordinate(); + var color = reader.readComponents(); + ps.push(coords.length); + coords.push(coord); + colors.push(color); + } + + mesh.figures.push({ + type: 'lattice', + coords: new Int32Array(ps), + colors: new Int32Array(ps), + verticesPerRow: verticesPerRow + }); + } + + var MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3; + var MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20; + var TRIANGLE_DENSITY = 20; + + var getB = function getBClosure() { + function buildB(count) { + var lut = []; + + for (var i = 0; i <= count; i++) { + var t = i / count, + t_ = 1 - t; + lut.push(new Float32Array([t_ * t_ * t_, 3 * t * t_ * t_, 3 * t * t * t_, t * t * t])); + } + + return lut; + } + + var cache = []; + return function getB(count) { + if (!cache[count]) { + cache[count] = buildB(count); + } + + return cache[count]; + }; + }(); + + function buildFigureFromPatch(mesh, index) { + var figure = mesh.figures[index]; + (0, _util.assert)(figure.type === 'patch', 'Unexpected patch mesh figure'); + var coords = mesh.coords, + colors = mesh.colors; + var pi = figure.coords; + var ci = figure.colors; + var figureMinX = Math.min(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]); + var figureMinY = Math.min(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]); + var figureMaxX = Math.max(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]); + var figureMaxY = Math.max(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]); + var splitXBy = Math.ceil((figureMaxX - figureMinX) * TRIANGLE_DENSITY / (mesh.bounds[2] - mesh.bounds[0])); + splitXBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy)); + var splitYBy = Math.ceil((figureMaxY - figureMinY) * TRIANGLE_DENSITY / (mesh.bounds[3] - mesh.bounds[1])); + splitYBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy)); + var verticesPerRow = splitXBy + 1; + var figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow); + var figureColors = new Int32Array((splitYBy + 1) * verticesPerRow); + var k = 0; + var cl = new Uint8Array(3), + cr = new Uint8Array(3); + var c0 = colors[ci[0]], + c1 = colors[ci[1]], + c2 = colors[ci[2]], + c3 = colors[ci[3]]; + var bRow = getB(splitYBy), + bCol = getB(splitXBy); + + for (var row = 0; row <= splitYBy; row++) { + cl[0] = (c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy | 0; + cl[1] = (c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy | 0; + cl[2] = (c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy | 0; + cr[0] = (c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy | 0; + cr[1] = (c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy | 0; + cr[2] = (c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy | 0; + + for (var col = 0; col <= splitXBy; col++, k++) { + if ((row === 0 || row === splitYBy) && (col === 0 || col === splitXBy)) { + continue; + } + + var x = 0, + y = 0; + var q = 0; + + for (var i = 0; i <= 3; i++) { + for (var j = 0; j <= 3; j++, q++) { + var m = bRow[row][i] * bCol[col][j]; + x += coords[pi[q]][0] * m; + y += coords[pi[q]][1] * m; + } + } + + figureCoords[k] = coords.length; + coords.push([x, y]); + figureColors[k] = colors.length; + var newColor = new Uint8Array(3); + newColor[0] = (cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy | 0; + newColor[1] = (cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy | 0; + newColor[2] = (cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy | 0; + colors.push(newColor); + } + } + + figureCoords[0] = pi[0]; + figureColors[0] = ci[0]; + figureCoords[splitXBy] = pi[3]; + figureColors[splitXBy] = ci[1]; + figureCoords[verticesPerRow * splitYBy] = pi[12]; + figureColors[verticesPerRow * splitYBy] = ci[2]; + figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15]; + figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3]; + mesh.figures[index] = { + type: 'lattice', + coords: figureCoords, + colors: figureColors, + verticesPerRow: verticesPerRow + }; + } + + function decodeType6Shading(mesh, reader) { + var coords = mesh.coords; + var colors = mesh.colors; + var ps = new Int32Array(16); + var cs = new Int32Array(4); + + while (reader.hasData) { + var f = reader.readFlag(); + + if (!(0 <= f && f <= 3)) { + throw new _util.FormatError('Unknown type6 flag'); + } + + var i, ii; + var pi = coords.length; + + for (i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) { + coords.push(reader.readCoordinate()); + } + + var ci = colors.length; + + for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) { + colors.push(reader.readComponents()); + } + + var tmp1, tmp2, tmp3, tmp4; + + switch (f) { + case 0: + ps[12] = pi + 3; + ps[13] = pi + 4; + ps[14] = pi + 5; + ps[15] = pi + 6; + ps[8] = pi + 2; + ps[11] = pi + 7; + ps[4] = pi + 1; + ps[7] = pi + 8; + ps[0] = pi; + ps[1] = pi + 11; + ps[2] = pi + 10; + ps[3] = pi + 9; + cs[2] = ci + 1; + cs[3] = ci + 2; + cs[0] = ci; + cs[1] = ci + 3; + break; + + case 1: + tmp1 = ps[12]; + tmp2 = ps[13]; + tmp3 = ps[14]; + tmp4 = ps[15]; + ps[12] = tmp4; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = tmp3; + ps[11] = pi + 3; + ps[4] = tmp2; + ps[7] = pi + 4; + ps[0] = tmp1; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + tmp1 = cs[2]; + tmp2 = cs[3]; + cs[2] = tmp2; + cs[3] = ci; + cs[0] = tmp1; + cs[1] = ci + 1; + break; + + case 2: + tmp1 = ps[15]; + tmp2 = ps[11]; + ps[12] = ps[3]; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = ps[7]; + ps[11] = pi + 3; + ps[4] = tmp2; + ps[7] = pi + 4; + ps[0] = tmp1; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + tmp1 = cs[3]; + cs[2] = cs[1]; + cs[3] = ci; + cs[0] = tmp1; + cs[1] = ci + 1; + break; + + case 3: + ps[12] = ps[0]; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = ps[1]; + ps[11] = pi + 3; + ps[4] = ps[2]; + ps[7] = pi + 4; + ps[0] = ps[3]; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + cs[2] = cs[0]; + cs[3] = ci; + cs[0] = cs[1]; + cs[1] = ci + 1; + break; + } + + ps[5] = coords.length; + coords.push([(-4 * coords[ps[0]][0] - coords[ps[15]][0] + 6 * (coords[ps[4]][0] + coords[ps[1]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[13]][0] + coords[ps[7]][0])) / 9, (-4 * coords[ps[0]][1] - coords[ps[15]][1] + 6 * (coords[ps[4]][1] + coords[ps[1]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[13]][1] + coords[ps[7]][1])) / 9]); + ps[6] = coords.length; + coords.push([(-4 * coords[ps[3]][0] - coords[ps[12]][0] + 6 * (coords[ps[2]][0] + coords[ps[7]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[4]][0] + coords[ps[14]][0])) / 9, (-4 * coords[ps[3]][1] - coords[ps[12]][1] + 6 * (coords[ps[2]][1] + coords[ps[7]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[4]][1] + coords[ps[14]][1])) / 9]); + ps[9] = coords.length; + coords.push([(-4 * coords[ps[12]][0] - coords[ps[3]][0] + 6 * (coords[ps[8]][0] + coords[ps[13]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[11]][0] + coords[ps[1]][0])) / 9, (-4 * coords[ps[12]][1] - coords[ps[3]][1] + 6 * (coords[ps[8]][1] + coords[ps[13]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[11]][1] + coords[ps[1]][1])) / 9]); + ps[10] = coords.length; + coords.push([(-4 * coords[ps[15]][0] - coords[ps[0]][0] + 6 * (coords[ps[11]][0] + coords[ps[14]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[2]][0] + coords[ps[8]][0])) / 9, (-4 * coords[ps[15]][1] - coords[ps[0]][1] + 6 * (coords[ps[11]][1] + coords[ps[14]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[2]][1] + coords[ps[8]][1])) / 9]); + mesh.figures.push({ + type: 'patch', + coords: new Int32Array(ps), + colors: new Int32Array(cs) + }); + } + } + + function decodeType7Shading(mesh, reader) { + var coords = mesh.coords; + var colors = mesh.colors; + var ps = new Int32Array(16); + var cs = new Int32Array(4); + + while (reader.hasData) { + var f = reader.readFlag(); + + if (!(0 <= f && f <= 3)) { + throw new _util.FormatError('Unknown type7 flag'); + } + + var i, ii; + var pi = coords.length; + + for (i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) { + coords.push(reader.readCoordinate()); + } + + var ci = colors.length; + + for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) { + colors.push(reader.readComponents()); + } + + var tmp1, tmp2, tmp3, tmp4; + + switch (f) { + case 0: + ps[12] = pi + 3; + ps[13] = pi + 4; + ps[14] = pi + 5; + ps[15] = pi + 6; + ps[8] = pi + 2; + ps[9] = pi + 13; + ps[10] = pi + 14; + ps[11] = pi + 7; + ps[4] = pi + 1; + ps[5] = pi + 12; + ps[6] = pi + 15; + ps[7] = pi + 8; + ps[0] = pi; + ps[1] = pi + 11; + ps[2] = pi + 10; + ps[3] = pi + 9; + cs[2] = ci + 1; + cs[3] = ci + 2; + cs[0] = ci; + cs[1] = ci + 3; + break; + + case 1: + tmp1 = ps[12]; + tmp2 = ps[13]; + tmp3 = ps[14]; + tmp4 = ps[15]; + ps[12] = tmp4; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = tmp3; + ps[9] = pi + 9; + ps[10] = pi + 10; + ps[11] = pi + 3; + ps[4] = tmp2; + ps[5] = pi + 8; + ps[6] = pi + 11; + ps[7] = pi + 4; + ps[0] = tmp1; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + tmp1 = cs[2]; + tmp2 = cs[3]; + cs[2] = tmp2; + cs[3] = ci; + cs[0] = tmp1; + cs[1] = ci + 1; + break; + + case 2: + tmp1 = ps[15]; + tmp2 = ps[11]; + ps[12] = ps[3]; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = ps[7]; + ps[9] = pi + 9; + ps[10] = pi + 10; + ps[11] = pi + 3; + ps[4] = tmp2; + ps[5] = pi + 8; + ps[6] = pi + 11; + ps[7] = pi + 4; + ps[0] = tmp1; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + tmp1 = cs[3]; + cs[2] = cs[1]; + cs[3] = ci; + cs[0] = tmp1; + cs[1] = ci + 1; + break; + + case 3: + ps[12] = ps[0]; + ps[13] = pi + 0; + ps[14] = pi + 1; + ps[15] = pi + 2; + ps[8] = ps[1]; + ps[9] = pi + 9; + ps[10] = pi + 10; + ps[11] = pi + 3; + ps[4] = ps[2]; + ps[5] = pi + 8; + ps[6] = pi + 11; + ps[7] = pi + 4; + ps[0] = ps[3]; + ps[1] = pi + 7; + ps[2] = pi + 6; + ps[3] = pi + 5; + cs[2] = cs[0]; + cs[3] = ci; + cs[0] = cs[1]; + cs[1] = ci + 1; + break; + } + + mesh.figures.push({ + type: 'patch', + coords: new Int32Array(ps), + colors: new Int32Array(cs) + }); + } + } + + function updateBounds(mesh) { + var minX = mesh.coords[0][0], + minY = mesh.coords[0][1], + maxX = minX, + maxY = minY; + + for (var i = 1, ii = mesh.coords.length; i < ii; i++) { + var x = mesh.coords[i][0], + y = mesh.coords[i][1]; + minX = minX > x ? x : minX; + minY = minY > y ? y : minY; + maxX = maxX < x ? x : maxX; + maxY = maxY < y ? y : maxY; + } + + mesh.bounds = [minX, minY, maxX, maxY]; + } + + function packData(mesh) { + var i, ii, j, jj; + var coords = mesh.coords; + var coordsPacked = new Float32Array(coords.length * 2); + + for (i = 0, j = 0, ii = coords.length; i < ii; i++) { + var xy = coords[i]; + coordsPacked[j++] = xy[0]; + coordsPacked[j++] = xy[1]; + } + + mesh.coords = coordsPacked; + var colors = mesh.colors; + var colorsPacked = new Uint8Array(colors.length * 3); + + for (i = 0, j = 0, ii = colors.length; i < ii; i++) { + var c = colors[i]; + colorsPacked[j++] = c[0]; + colorsPacked[j++] = c[1]; + colorsPacked[j++] = c[2]; + } + + mesh.colors = colorsPacked; + var figures = mesh.figures; + + for (i = 0, ii = figures.length; i < ii; i++) { + var figure = figures[i], + ps = figure.coords, + cs = figure.colors; + + for (j = 0, jj = ps.length; j < jj; j++) { + ps[j] *= 2; + cs[j] *= 3; + } + } + } + + function Mesh(stream, matrix, xref, res, pdfFunctionFactory) { + if (!(0, _primitives.isStream)(stream)) { + throw new _util.FormatError('Mesh data is not a stream'); + } + + var dict = stream.dict; + this.matrix = matrix; + this.shadingType = dict.get('ShadingType'); + this.type = 'Pattern'; + this.bbox = dict.getArray('BBox'); + var cs = dict.get('ColorSpace', 'CS'); + cs = _colorspace.ColorSpace.parse(cs, xref, res, pdfFunctionFactory); + this.cs = cs; + this.background = dict.has('Background') ? cs.getRgb(dict.get('Background'), 0) : null; + var fnObj = dict.get('Function'); + var fn = fnObj ? pdfFunctionFactory.createFromArray(fnObj) : null; + this.coords = []; + this.colors = []; + this.figures = []; + var decodeContext = { + bitsPerCoordinate: dict.get('BitsPerCoordinate'), + bitsPerComponent: dict.get('BitsPerComponent'), + bitsPerFlag: dict.get('BitsPerFlag'), + decode: dict.getArray('Decode'), + colorFn: fn, + colorSpace: cs, + numComps: fn ? 1 : cs.numComps + }; + var reader = new MeshStreamReader(stream, decodeContext); + var patchMesh = false; + + switch (this.shadingType) { + case ShadingType.FREE_FORM_MESH: + decodeType4Shading(this, reader); + break; + + case ShadingType.LATTICE_FORM_MESH: + var verticesPerRow = dict.get('VerticesPerRow') | 0; + + if (verticesPerRow < 2) { + throw new _util.FormatError('Invalid VerticesPerRow'); + } + + decodeType5Shading(this, reader, verticesPerRow); + break; + + case ShadingType.COONS_PATCH_MESH: + decodeType6Shading(this, reader); + patchMesh = true; + break; + + case ShadingType.TENSOR_PATCH_MESH: + decodeType7Shading(this, reader); + patchMesh = true; + break; + + default: + (0, _util.unreachable)('Unsupported mesh type.'); + break; + } + + if (patchMesh) { + updateBounds(this); + + for (var i = 0, ii = this.figures.length; i < ii; i++) { + buildFigureFromPatch(this, i); + } + } + + updateBounds(this); + packData(this); + } + + Mesh.prototype = { + getIR: function Mesh_getIR() { + return ['Mesh', this.shadingType, this.coords, this.colors, this.figures, this.bounds, this.matrix, this.bbox, this.background]; + } + }; + return Mesh; +}(); + +Shadings.Dummy = function DummyClosure() { + function Dummy() { + this.type = 'Pattern'; + } + + Dummy.prototype = { + getIR: function Dummy_getIR() { + return ['Dummy']; + } + }; + return Dummy; +}(); + +function getTilingPatternIR(operatorList, dict, args) { + var matrix = dict.getArray('Matrix'); + + var bbox = _util.Util.normalizeRect(dict.getArray('BBox')); + + var xstep = dict.get('XStep'); + var ystep = dict.get('YStep'); + var paintType = dict.get('PaintType'); + var tilingType = dict.get('TilingType'); + + if (bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) { + throw new _util.FormatError("Invalid getTilingPatternIR /BBox array: [".concat(bbox, "].")); + } + + return ['TilingPattern', args, operatorList, matrix, bbox, xstep, ystep, paintType, tilingType]; +} + +/***/ }), +/* 183 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.bidi = bidi; + +var _util = __w_pdfjs_require__(6); + +var baseTypes = ['BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'S', 'B', 'S', 'WS', 'B', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'B', 'B', 'B', 'S', 'WS', 'ON', 'ON', 'ET', 'ET', 'ET', 'ON', 'ON', 'ON', 'ON', 'ON', 'ES', 'CS', 'ES', 'CS', 'CS', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'CS', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'ON', 'ON', 'ON', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'B', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'CS', 'ON', 'ET', 'ET', 'ET', 'ET', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'BN', 'ON', 'ON', 'ET', 'ET', 'EN', 'EN', 'ON', 'L', 'ON', 'ON', 'ON', 'EN', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L']; +var arabicTypes = ['AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'ON', 'ON', 'AL', 'ET', 'ET', 'AL', 'CS', 'AL', 'ON', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', '', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'ET', 'AN', 'AN', 'AL', 'AL', 'AL', 'NSM', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AN', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'NSM', 'NSM', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL']; + +function isOdd(i) { + return (i & 1) !== 0; +} + +function isEven(i) { + return (i & 1) === 0; +} + +function findUnequal(arr, start, value) { + for (var j = start, jj = arr.length; j < jj; ++j) { + if (arr[j] !== value) { + return j; + } + } + + return j; +} + +function setValues(arr, start, end, value) { + for (var j = start; j < end; ++j) { + arr[j] = value; + } +} + +function reverseValues(arr, start, end) { + for (var i = start, j = end - 1; i < j; ++i, --j) { + var temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + } +} + +function createBidiText(str, isLTR, vertical) { + return { + str: str, + dir: vertical ? 'ttb' : isLTR ? 'ltr' : 'rtl' + }; +} + +var chars = []; +var types = []; + +function bidi(str, startLevel, vertical) { + var isLTR = true; + var strLength = str.length; + + if (strLength === 0 || vertical) { + return createBidiText(str, isLTR, vertical); + } + + chars.length = strLength; + types.length = strLength; + var numBidi = 0; + var i, ii; + + for (i = 0; i < strLength; ++i) { + chars[i] = str.charAt(i); + var charCode = str.charCodeAt(i); + var charType = 'L'; + + if (charCode <= 0x00ff) { + charType = baseTypes[charCode]; + } else if (0x0590 <= charCode && charCode <= 0x05f4) { + charType = 'R'; + } else if (0x0600 <= charCode && charCode <= 0x06ff) { + charType = arabicTypes[charCode & 0xff]; + + if (!charType) { + (0, _util.warn)('Bidi: invalid Unicode character ' + charCode.toString(16)); + } + } else if (0x0700 <= charCode && charCode <= 0x08AC) { + charType = 'AL'; + } + + if (charType === 'R' || charType === 'AL' || charType === 'AN') { + numBidi++; + } + + types[i] = charType; + } + + if (numBidi === 0) { + isLTR = true; + return createBidiText(str, isLTR); + } + + if (startLevel === -1) { + if (numBidi / strLength < 0.3) { + isLTR = true; + startLevel = 0; + } else { + isLTR = false; + startLevel = 1; + } + } + + var levels = []; + + for (i = 0; i < strLength; ++i) { + levels[i] = startLevel; + } + + var e = isOdd(startLevel) ? 'R' : 'L'; + var sor = e; + var eor = sor; + var lastType = sor; + + for (i = 0; i < strLength; ++i) { + if (types[i] === 'NSM') { + types[i] = lastType; + } else { + lastType = types[i]; + } + } + + lastType = sor; + var t; + + for (i = 0; i < strLength; ++i) { + t = types[i]; + + if (t === 'EN') { + types[i] = lastType === 'AL' ? 'AN' : 'EN'; + } else if (t === 'R' || t === 'L' || t === 'AL') { + lastType = t; + } + } + + for (i = 0; i < strLength; ++i) { + t = types[i]; + + if (t === 'AL') { + types[i] = 'R'; + } + } + + for (i = 1; i < strLength - 1; ++i) { + if (types[i] === 'ES' && types[i - 1] === 'EN' && types[i + 1] === 'EN') { + types[i] = 'EN'; + } + + if (types[i] === 'CS' && (types[i - 1] === 'EN' || types[i - 1] === 'AN') && types[i + 1] === types[i - 1]) { + types[i] = types[i - 1]; + } + } + + for (i = 0; i < strLength; ++i) { + if (types[i] === 'EN') { + var j; + + for (j = i - 1; j >= 0; --j) { + if (types[j] !== 'ET') { + break; + } + + types[j] = 'EN'; + } + + for (j = i + 1; j < strLength; ++j) { + if (types[j] !== 'ET') { + break; + } + + types[j] = 'EN'; + } + } + } + + for (i = 0; i < strLength; ++i) { + t = types[i]; + + if (t === 'WS' || t === 'ES' || t === 'ET' || t === 'CS') { + types[i] = 'ON'; + } + } + + lastType = sor; + + for (i = 0; i < strLength; ++i) { + t = types[i]; + + if (t === 'EN') { + types[i] = lastType === 'L' ? 'L' : 'EN'; + } else if (t === 'R' || t === 'L') { + lastType = t; + } + } + + for (i = 0; i < strLength; ++i) { + if (types[i] === 'ON') { + var end = findUnequal(types, i + 1, 'ON'); + var before = sor; + + if (i > 0) { + before = types[i - 1]; + } + + var after = eor; + + if (end + 1 < strLength) { + after = types[end + 1]; + } + + if (before !== 'L') { + before = 'R'; + } + + if (after !== 'L') { + after = 'R'; + } + + if (before === after) { + setValues(types, i, end, before); + } + + i = end - 1; + } + } + + for (i = 0; i < strLength; ++i) { + if (types[i] === 'ON') { + types[i] = e; + } + } + + for (i = 0; i < strLength; ++i) { + t = types[i]; + + if (isEven(levels[i])) { + if (t === 'R') { + levels[i] += 1; + } else if (t === 'AN' || t === 'EN') { + levels[i] += 2; + } + } else { + if (t === 'L' || t === 'AN' || t === 'EN') { + levels[i] += 1; + } + } + } + + var highestLevel = -1; + var lowestOddLevel = 99; + var level; + + for (i = 0, ii = levels.length; i < ii; ++i) { + level = levels[i]; + + if (highestLevel < level) { + highestLevel = level; + } + + if (lowestOddLevel > level && isOdd(level)) { + lowestOddLevel = level; + } + } + + for (level = highestLevel; level >= lowestOddLevel; --level) { + var start = -1; + + for (i = 0, ii = levels.length; i < ii; ++i) { + if (levels[i] < level) { + if (start >= 0) { + reverseValues(chars, start, i); + start = -1; + } + } else if (start < 0) { + start = i; + } + } + + if (start >= 0) { + reverseValues(chars, start, levels.length); + } + } + + for (i = 0, ii = chars.length; i < ii; ++i) { + var ch = chars[i]; + + if (ch === '<' || ch === '>') { + chars[i] = ''; + } + } + + return createBidiText(chars.join(''), isLTR); +} + +/***/ }), +/* 184 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getMetrics = void 0; + +var _util = __w_pdfjs_require__(6); + +var getMetrics = (0, _util.getLookupTableFactory)(function (t) { + t['Courier'] = 600; + t['Courier-Bold'] = 600; + t['Courier-BoldOblique'] = 600; + t['Courier-Oblique'] = 600; + t['Helvetica'] = (0, _util.getLookupTableFactory)(function (t) { + t['space'] = 278; + t['exclam'] = 278; + t['quotedbl'] = 355; + t['numbersign'] = 556; + t['dollar'] = 556; + t['percent'] = 889; + t['ampersand'] = 667; + t['quoteright'] = 222; + t['parenleft'] = 333; + t['parenright'] = 333; + t['asterisk'] = 389; + t['plus'] = 584; + t['comma'] = 278; + t['hyphen'] = 333; + t['period'] = 278; + t['slash'] = 278; + t['zero'] = 556; + t['one'] = 556; + t['two'] = 556; + t['three'] = 556; + t['four'] = 556; + t['five'] = 556; + t['six'] = 556; + t['seven'] = 556; + t['eight'] = 556; + t['nine'] = 556; + t['colon'] = 278; + t['semicolon'] = 278; + t['less'] = 584; + t['equal'] = 584; + t['greater'] = 584; + t['question'] = 556; + t['at'] = 1015; + t['A'] = 667; + t['B'] = 667; + t['C'] = 722; + t['D'] = 722; + t['E'] = 667; + t['F'] = 611; + t['G'] = 778; + t['H'] = 722; + t['I'] = 278; + t['J'] = 500; + t['K'] = 667; + t['L'] = 556; + t['M'] = 833; + t['N'] = 722; + t['O'] = 778; + t['P'] = 667; + t['Q'] = 778; + t['R'] = 722; + t['S'] = 667; + t['T'] = 611; + t['U'] = 722; + t['V'] = 667; + t['W'] = 944; + t['X'] = 667; + t['Y'] = 667; + t['Z'] = 611; + t['bracketleft'] = 278; + t['backslash'] = 278; + t['bracketright'] = 278; + t['asciicircum'] = 469; + t['underscore'] = 556; + t['quoteleft'] = 222; + t['a'] = 556; + t['b'] = 556; + t['c'] = 500; + t['d'] = 556; + t['e'] = 556; + t['f'] = 278; + t['g'] = 556; + t['h'] = 556; + t['i'] = 222; + t['j'] = 222; + t['k'] = 500; + t['l'] = 222; + t['m'] = 833; + t['n'] = 556; + t['o'] = 556; + t['p'] = 556; + t['q'] = 556; + t['r'] = 333; + t['s'] = 500; + t['t'] = 278; + t['u'] = 556; + t['v'] = 500; + t['w'] = 722; + t['x'] = 500; + t['y'] = 500; + t['z'] = 500; + t['braceleft'] = 334; + t['bar'] = 260; + t['braceright'] = 334; + t['asciitilde'] = 584; + t['exclamdown'] = 333; + t['cent'] = 556; + t['sterling'] = 556; + t['fraction'] = 167; + t['yen'] = 556; + t['florin'] = 556; + t['section'] = 556; + t['currency'] = 556; + t['quotesingle'] = 191; + t['quotedblleft'] = 333; + t['guillemotleft'] = 556; + t['guilsinglleft'] = 333; + t['guilsinglright'] = 333; + t['fi'] = 500; + t['fl'] = 500; + t['endash'] = 556; + t['dagger'] = 556; + t['daggerdbl'] = 556; + t['periodcentered'] = 278; + t['paragraph'] = 537; + t['bullet'] = 350; + t['quotesinglbase'] = 222; + t['quotedblbase'] = 333; + t['quotedblright'] = 333; + t['guillemotright'] = 556; + t['ellipsis'] = 1000; + t['perthousand'] = 1000; + t['questiondown'] = 611; + t['grave'] = 333; + t['acute'] = 333; + t['circumflex'] = 333; + t['tilde'] = 333; + t['macron'] = 333; + t['breve'] = 333; + t['dotaccent'] = 333; + t['dieresis'] = 333; + t['ring'] = 333; + t['cedilla'] = 333; + t['hungarumlaut'] = 333; + t['ogonek'] = 333; + t['caron'] = 333; + t['emdash'] = 1000; + t['AE'] = 1000; + t['ordfeminine'] = 370; + t['Lslash'] = 556; + t['Oslash'] = 778; + t['OE'] = 1000; + t['ordmasculine'] = 365; + t['ae'] = 889; + t['dotlessi'] = 278; + t['lslash'] = 222; + t['oslash'] = 611; + t['oe'] = 944; + t['germandbls'] = 611; + t['Idieresis'] = 278; + t['eacute'] = 556; + t['abreve'] = 556; + t['uhungarumlaut'] = 556; + t['ecaron'] = 556; + t['Ydieresis'] = 667; + t['divide'] = 584; + t['Yacute'] = 667; + t['Acircumflex'] = 667; + t['aacute'] = 556; + t['Ucircumflex'] = 722; + t['yacute'] = 500; + t['scommaaccent'] = 500; + t['ecircumflex'] = 556; + t['Uring'] = 722; + t['Udieresis'] = 722; + t['aogonek'] = 556; + t['Uacute'] = 722; + t['uogonek'] = 556; + t['Edieresis'] = 667; + t['Dcroat'] = 722; + t['commaaccent'] = 250; + t['copyright'] = 737; + t['Emacron'] = 667; + t['ccaron'] = 500; + t['aring'] = 556; + t['Ncommaaccent'] = 722; + t['lacute'] = 222; + t['agrave'] = 556; + t['Tcommaaccent'] = 611; + t['Cacute'] = 722; + t['atilde'] = 556; + t['Edotaccent'] = 667; + t['scaron'] = 500; + t['scedilla'] = 500; + t['iacute'] = 278; + t['lozenge'] = 471; + t['Rcaron'] = 722; + t['Gcommaaccent'] = 778; + t['ucircumflex'] = 556; + t['acircumflex'] = 556; + t['Amacron'] = 667; + t['rcaron'] = 333; + t['ccedilla'] = 500; + t['Zdotaccent'] = 611; + t['Thorn'] = 667; + t['Omacron'] = 778; + t['Racute'] = 722; + t['Sacute'] = 667; + t['dcaron'] = 643; + t['Umacron'] = 722; + t['uring'] = 556; + t['threesuperior'] = 333; + t['Ograve'] = 778; + t['Agrave'] = 667; + t['Abreve'] = 667; + t['multiply'] = 584; + t['uacute'] = 556; + t['Tcaron'] = 611; + t['partialdiff'] = 476; + t['ydieresis'] = 500; + t['Nacute'] = 722; + t['icircumflex'] = 278; + t['Ecircumflex'] = 667; + t['adieresis'] = 556; + t['edieresis'] = 556; + t['cacute'] = 500; + t['nacute'] = 556; + t['umacron'] = 556; + t['Ncaron'] = 722; + t['Iacute'] = 278; + t['plusminus'] = 584; + t['brokenbar'] = 260; + t['registered'] = 737; + t['Gbreve'] = 778; + t['Idotaccent'] = 278; + t['summation'] = 600; + t['Egrave'] = 667; + t['racute'] = 333; + t['omacron'] = 556; + t['Zacute'] = 611; + t['Zcaron'] = 611; + t['greaterequal'] = 549; + t['Eth'] = 722; + t['Ccedilla'] = 722; + t['lcommaaccent'] = 222; + t['tcaron'] = 317; + t['eogonek'] = 556; + t['Uogonek'] = 722; + t['Aacute'] = 667; + t['Adieresis'] = 667; + t['egrave'] = 556; + t['zacute'] = 500; + t['iogonek'] = 222; + t['Oacute'] = 778; + t['oacute'] = 556; + t['amacron'] = 556; + t['sacute'] = 500; + t['idieresis'] = 278; + t['Ocircumflex'] = 778; + t['Ugrave'] = 722; + t['Delta'] = 612; + t['thorn'] = 556; + t['twosuperior'] = 333; + t['Odieresis'] = 778; + t['mu'] = 556; + t['igrave'] = 278; + t['ohungarumlaut'] = 556; + t['Eogonek'] = 667; + t['dcroat'] = 556; + t['threequarters'] = 834; + t['Scedilla'] = 667; + t['lcaron'] = 299; + t['Kcommaaccent'] = 667; + t['Lacute'] = 556; + t['trademark'] = 1000; + t['edotaccent'] = 556; + t['Igrave'] = 278; + t['Imacron'] = 278; + t['Lcaron'] = 556; + t['onehalf'] = 834; + t['lessequal'] = 549; + t['ocircumflex'] = 556; + t['ntilde'] = 556; + t['Uhungarumlaut'] = 722; + t['Eacute'] = 667; + t['emacron'] = 556; + t['gbreve'] = 556; + t['onequarter'] = 834; + t['Scaron'] = 667; + t['Scommaaccent'] = 667; + t['Ohungarumlaut'] = 778; + t['degree'] = 400; + t['ograve'] = 556; + t['Ccaron'] = 722; + t['ugrave'] = 556; + t['radical'] = 453; + t['Dcaron'] = 722; + t['rcommaaccent'] = 333; + t['Ntilde'] = 722; + t['otilde'] = 556; + t['Rcommaaccent'] = 722; + t['Lcommaaccent'] = 556; + t['Atilde'] = 667; + t['Aogonek'] = 667; + t['Aring'] = 667; + t['Otilde'] = 778; + t['zdotaccent'] = 500; + t['Ecaron'] = 667; + t['Iogonek'] = 278; + t['kcommaaccent'] = 500; + t['minus'] = 584; + t['Icircumflex'] = 278; + t['ncaron'] = 556; + t['tcommaaccent'] = 278; + t['logicalnot'] = 584; + t['odieresis'] = 556; + t['udieresis'] = 556; + t['notequal'] = 549; + t['gcommaaccent'] = 556; + t['eth'] = 556; + t['zcaron'] = 500; + t['ncommaaccent'] = 556; + t['onesuperior'] = 333; + t['imacron'] = 278; + t['Euro'] = 556; + }); + t['Helvetica-Bold'] = (0, _util.getLookupTableFactory)(function (t) { + t['space'] = 278; + t['exclam'] = 333; + t['quotedbl'] = 474; + t['numbersign'] = 556; + t['dollar'] = 556; + t['percent'] = 889; + t['ampersand'] = 722; + t['quoteright'] = 278; + t['parenleft'] = 333; + t['parenright'] = 333; + t['asterisk'] = 389; + t['plus'] = 584; + t['comma'] = 278; + t['hyphen'] = 333; + t['period'] = 278; + t['slash'] = 278; + t['zero'] = 556; + t['one'] = 556; + t['two'] = 556; + t['three'] = 556; + t['four'] = 556; + t['five'] = 556; + t['six'] = 556; + t['seven'] = 556; + t['eight'] = 556; + t['nine'] = 556; + t['colon'] = 333; + t['semicolon'] = 333; + t['less'] = 584; + t['equal'] = 584; + t['greater'] = 584; + t['question'] = 611; + t['at'] = 975; + t['A'] = 722; + t['B'] = 722; + t['C'] = 722; + t['D'] = 722; + t['E'] = 667; + t['F'] = 611; + t['G'] = 778; + t['H'] = 722; + t['I'] = 278; + t['J'] = 556; + t['K'] = 722; + t['L'] = 611; + t['M'] = 833; + t['N'] = 722; + t['O'] = 778; + t['P'] = 667; + t['Q'] = 778; + t['R'] = 722; + t['S'] = 667; + t['T'] = 611; + t['U'] = 722; + t['V'] = 667; + t['W'] = 944; + t['X'] = 667; + t['Y'] = 667; + t['Z'] = 611; + t['bracketleft'] = 333; + t['backslash'] = 278; + t['bracketright'] = 333; + t['asciicircum'] = 584; + t['underscore'] = 556; + t['quoteleft'] = 278; + t['a'] = 556; + t['b'] = 611; + t['c'] = 556; + t['d'] = 611; + t['e'] = 556; + t['f'] = 333; + t['g'] = 611; + t['h'] = 611; + t['i'] = 278; + t['j'] = 278; + t['k'] = 556; + t['l'] = 278; + t['m'] = 889; + t['n'] = 611; + t['o'] = 611; + t['p'] = 611; + t['q'] = 611; + t['r'] = 389; + t['s'] = 556; + t['t'] = 333; + t['u'] = 611; + t['v'] = 556; + t['w'] = 778; + t['x'] = 556; + t['y'] = 556; + t['z'] = 500; + t['braceleft'] = 389; + t['bar'] = 280; + t['braceright'] = 389; + t['asciitilde'] = 584; + t['exclamdown'] = 333; + t['cent'] = 556; + t['sterling'] = 556; + t['fraction'] = 167; + t['yen'] = 556; + t['florin'] = 556; + t['section'] = 556; + t['currency'] = 556; + t['quotesingle'] = 238; + t['quotedblleft'] = 500; + t['guillemotleft'] = 556; + t['guilsinglleft'] = 333; + t['guilsinglright'] = 333; + t['fi'] = 611; + t['fl'] = 611; + t['endash'] = 556; + t['dagger'] = 556; + t['daggerdbl'] = 556; + t['periodcentered'] = 278; + t['paragraph'] = 556; + t['bullet'] = 350; + t['quotesinglbase'] = 278; + t['quotedblbase'] = 500; + t['quotedblright'] = 500; + t['guillemotright'] = 556; + t['ellipsis'] = 1000; + t['perthousand'] = 1000; + t['questiondown'] = 611; + t['grave'] = 333; + t['acute'] = 333; + t['circumflex'] = 333; + t['tilde'] = 333; + t['macron'] = 333; + t['breve'] = 333; + t['dotaccent'] = 333; + t['dieresis'] = 333; + t['ring'] = 333; + t['cedilla'] = 333; + t['hungarumlaut'] = 333; + t['ogonek'] = 333; + t['caron'] = 333; + t['emdash'] = 1000; + t['AE'] = 1000; + t['ordfeminine'] = 370; + t['Lslash'] = 611; + t['Oslash'] = 778; + t['OE'] = 1000; + t['ordmasculine'] = 365; + t['ae'] = 889; + t['dotlessi'] = 278; + t['lslash'] = 278; + t['oslash'] = 611; + t['oe'] = 944; + t['germandbls'] = 611; + t['Idieresis'] = 278; + t['eacute'] = 556; + t['abreve'] = 556; + t['uhungarumlaut'] = 611; + t['ecaron'] = 556; + t['Ydieresis'] = 667; + t['divide'] = 584; + t['Yacute'] = 667; + t['Acircumflex'] = 722; + t['aacute'] = 556; + t['Ucircumflex'] = 722; + t['yacute'] = 556; + t['scommaaccent'] = 556; + t['ecircumflex'] = 556; + t['Uring'] = 722; + t['Udieresis'] = 722; + t['aogonek'] = 556; + t['Uacute'] = 722; + t['uogonek'] = 611; + t['Edieresis'] = 667; + t['Dcroat'] = 722; + t['commaaccent'] = 250; + t['copyright'] = 737; + t['Emacron'] = 667; + t['ccaron'] = 556; + t['aring'] = 556; + t['Ncommaaccent'] = 722; + t['lacute'] = 278; + t['agrave'] = 556; + t['Tcommaaccent'] = 611; + t['Cacute'] = 722; + t['atilde'] = 556; + t['Edotaccent'] = 667; + t['scaron'] = 556; + t['scedilla'] = 556; + t['iacute'] = 278; + t['lozenge'] = 494; + t['Rcaron'] = 722; + t['Gcommaaccent'] = 778; + t['ucircumflex'] = 611; + t['acircumflex'] = 556; + t['Amacron'] = 722; + t['rcaron'] = 389; + t['ccedilla'] = 556; + t['Zdotaccent'] = 611; + t['Thorn'] = 667; + t['Omacron'] = 778; + t['Racute'] = 722; + t['Sacute'] = 667; + t['dcaron'] = 743; + t['Umacron'] = 722; + t['uring'] = 611; + t['threesuperior'] = 333; + t['Ograve'] = 778; + t['Agrave'] = 722; + t['Abreve'] = 722; + t['multiply'] = 584; + t['uacute'] = 611; + t['Tcaron'] = 611; + t['partialdiff'] = 494; + t['ydieresis'] = 556; + t['Nacute'] = 722; + t['icircumflex'] = 278; + t['Ecircumflex'] = 667; + t['adieresis'] = 556; + t['edieresis'] = 556; + t['cacute'] = 556; + t['nacute'] = 611; + t['umacron'] = 611; + t['Ncaron'] = 722; + t['Iacute'] = 278; + t['plusminus'] = 584; + t['brokenbar'] = 280; + t['registered'] = 737; + t['Gbreve'] = 778; + t['Idotaccent'] = 278; + t['summation'] = 600; + t['Egrave'] = 667; + t['racute'] = 389; + t['omacron'] = 611; + t['Zacute'] = 611; + t['Zcaron'] = 611; + t['greaterequal'] = 549; + t['Eth'] = 722; + t['Ccedilla'] = 722; + t['lcommaaccent'] = 278; + t['tcaron'] = 389; + t['eogonek'] = 556; + t['Uogonek'] = 722; + t['Aacute'] = 722; + t['Adieresis'] = 722; + t['egrave'] = 556; + t['zacute'] = 500; + t['iogonek'] = 278; + t['Oacute'] = 778; + t['oacute'] = 611; + t['amacron'] = 556; + t['sacute'] = 556; + t['idieresis'] = 278; + t['Ocircumflex'] = 778; + t['Ugrave'] = 722; + t['Delta'] = 612; + t['thorn'] = 611; + t['twosuperior'] = 333; + t['Odieresis'] = 778; + t['mu'] = 611; + t['igrave'] = 278; + t['ohungarumlaut'] = 611; + t['Eogonek'] = 667; + t['dcroat'] = 611; + t['threequarters'] = 834; + t['Scedilla'] = 667; + t['lcaron'] = 400; + t['Kcommaaccent'] = 722; + t['Lacute'] = 611; + t['trademark'] = 1000; + t['edotaccent'] = 556; + t['Igrave'] = 278; + t['Imacron'] = 278; + t['Lcaron'] = 611; + t['onehalf'] = 834; + t['lessequal'] = 549; + t['ocircumflex'] = 611; + t['ntilde'] = 611; + t['Uhungarumlaut'] = 722; + t['Eacute'] = 667; + t['emacron'] = 556; + t['gbreve'] = 611; + t['onequarter'] = 834; + t['Scaron'] = 667; + t['Scommaaccent'] = 667; + t['Ohungarumlaut'] = 778; + t['degree'] = 400; + t['ograve'] = 611; + t['Ccaron'] = 722; + t['ugrave'] = 611; + t['radical'] = 549; + t['Dcaron'] = 722; + t['rcommaaccent'] = 389; + t['Ntilde'] = 722; + t['otilde'] = 611; + t['Rcommaaccent'] = 722; + t['Lcommaaccent'] = 611; + t['Atilde'] = 722; + t['Aogonek'] = 722; + t['Aring'] = 722; + t['Otilde'] = 778; + t['zdotaccent'] = 500; + t['Ecaron'] = 667; + t['Iogonek'] = 278; + t['kcommaaccent'] = 556; + t['minus'] = 584; + t['Icircumflex'] = 278; + t['ncaron'] = 611; + t['tcommaaccent'] = 333; + t['logicalnot'] = 584; + t['odieresis'] = 611; + t['udieresis'] = 611; + t['notequal'] = 549; + t['gcommaaccent'] = 611; + t['eth'] = 611; + t['zcaron'] = 500; + t['ncommaaccent'] = 611; + t['onesuperior'] = 333; + t['imacron'] = 278; + t['Euro'] = 556; + }); + t['Helvetica-BoldOblique'] = (0, _util.getLookupTableFactory)(function (t) { + t['space'] = 278; + t['exclam'] = 333; + t['quotedbl'] = 474; + t['numbersign'] = 556; + t['dollar'] = 556; + t['percent'] = 889; + t['ampersand'] = 722; + t['quoteright'] = 278; + t['parenleft'] = 333; + t['parenright'] = 333; + t['asterisk'] = 389; + t['plus'] = 584; + t['comma'] = 278; + t['hyphen'] = 333; + t['period'] = 278; + t['slash'] = 278; + t['zero'] = 556; + t['one'] = 556; + t['two'] = 556; + t['three'] = 556; + t['four'] = 556; + t['five'] = 556; + t['six'] = 556; + t['seven'] = 556; + t['eight'] = 556; + t['nine'] = 556; + t['colon'] = 333; + t['semicolon'] = 333; + t['less'] = 584; + t['equal'] = 584; + t['greater'] = 584; + t['question'] = 611; + t['at'] = 975; + t['A'] = 722; + t['B'] = 722; + t['C'] = 722; + t['D'] = 722; + t['E'] = 667; + t['F'] = 611; + t['G'] = 778; + t['H'] = 722; + t['I'] = 278; + t['J'] = 556; + t['K'] = 722; + t['L'] = 611; + t['M'] = 833; + t['N'] = 722; + t['O'] = 778; + t['P'] = 667; + t['Q'] = 778; + t['R'] = 722; + t['S'] = 667; + t['T'] = 611; + t['U'] = 722; + t['V'] = 667; + t['W'] = 944; + t['X'] = 667; + t['Y'] = 667; + t['Z'] = 611; + t['bracketleft'] = 333; + t['backslash'] = 278; + t['bracketright'] = 333; + t['asciicircum'] = 584; + t['underscore'] = 556; + t['quoteleft'] = 278; + t['a'] = 556; + t['b'] = 611; + t['c'] = 556; + t['d'] = 611; + t['e'] = 556; + t['f'] = 333; + t['g'] = 611; + t['h'] = 611; + t['i'] = 278; + t['j'] = 278; + t['k'] = 556; + t['l'] = 278; + t['m'] = 889; + t['n'] = 611; + t['o'] = 611; + t['p'] = 611; + t['q'] = 611; + t['r'] = 389; + t['s'] = 556; + t['t'] = 333; + t['u'] = 611; + t['v'] = 556; + t['w'] = 778; + t['x'] = 556; + t['y'] = 556; + t['z'] = 500; + t['braceleft'] = 389; + t['bar'] = 280; + t['braceright'] = 389; + t['asciitilde'] = 584; + t['exclamdown'] = 333; + t['cent'] = 556; + t['sterling'] = 556; + t['fraction'] = 167; + t['yen'] = 556; + t['florin'] = 556; + t['section'] = 556; + t['currency'] = 556; + t['quotesingle'] = 238; + t['quotedblleft'] = 500; + t['guillemotleft'] = 556; + t['guilsinglleft'] = 333; + t['guilsinglright'] = 333; + t['fi'] = 611; + t['fl'] = 611; + t['endash'] = 556; + t['dagger'] = 556; + t['daggerdbl'] = 556; + t['periodcentered'] = 278; + t['paragraph'] = 556; + t['bullet'] = 350; + t['quotesinglbase'] = 278; + t['quotedblbase'] = 500; + t['quotedblright'] = 500; + t['guillemotright'] = 556; + t['ellipsis'] = 1000; + t['perthousand'] = 1000; + t['questiondown'] = 611; + t['grave'] = 333; + t['acute'] = 333; + t['circumflex'] = 333; + t['tilde'] = 333; + t['macron'] = 333; + t['breve'] = 333; + t['dotaccent'] = 333; + t['dieresis'] = 333; + t['ring'] = 333; + t['cedilla'] = 333; + t['hungarumlaut'] = 333; + t['ogonek'] = 333; + t['caron'] = 333; + t['emdash'] = 1000; + t['AE'] = 1000; + t['ordfeminine'] = 370; + t['Lslash'] = 611; + t['Oslash'] = 778; + t['OE'] = 1000; + t['ordmasculine'] = 365; + t['ae'] = 889; + t['dotlessi'] = 278; + t['lslash'] = 278; + t['oslash'] = 611; + t['oe'] = 944; + t['germandbls'] = 611; + t['Idieresis'] = 278; + t['eacute'] = 556; + t['abreve'] = 556; + t['uhungarumlaut'] = 611; + t['ecaron'] = 556; + t['Ydieresis'] = 667; + t['divide'] = 584; + t['Yacute'] = 667; + t['Acircumflex'] = 722; + t['aacute'] = 556; + t['Ucircumflex'] = 722; + t['yacute'] = 556; + t['scommaaccent'] = 556; + t['ecircumflex'] = 556; + t['Uring'] = 722; + t['Udieresis'] = 722; + t['aogonek'] = 556; + t['Uacute'] = 722; + t['uogonek'] = 611; + t['Edieresis'] = 667; + t['Dcroat'] = 722; + t['commaaccent'] = 250; + t['copyright'] = 737; + t['Emacron'] = 667; + t['ccaron'] = 556; + t['aring'] = 556; + t['Ncommaaccent'] = 722; + t['lacute'] = 278; + t['agrave'] = 556; + t['Tcommaaccent'] = 611; + t['Cacute'] = 722; + t['atilde'] = 556; + t['Edotaccent'] = 667; + t['scaron'] = 556; + t['scedilla'] = 556; + t['iacute'] = 278; + t['lozenge'] = 494; + t['Rcaron'] = 722; + t['Gcommaaccent'] = 778; + t['ucircumflex'] = 611; + t['acircumflex'] = 556; + t['Amacron'] = 722; + t['rcaron'] = 389; + t['ccedilla'] = 556; + t['Zdotaccent'] = 611; + t['Thorn'] = 667; + t['Omacron'] = 778; + t['Racute'] = 722; + t['Sacute'] = 667; + t['dcaron'] = 743; + t['Umacron'] = 722; + t['uring'] = 611; + t['threesuperior'] = 333; + t['Ograve'] = 778; + t['Agrave'] = 722; + t['Abreve'] = 722; + t['multiply'] = 584; + t['uacute'] = 611; + t['Tcaron'] = 611; + t['partialdiff'] = 494; + t['ydieresis'] = 556; + t['Nacute'] = 722; + t['icircumflex'] = 278; + t['Ecircumflex'] = 667; + t['adieresis'] = 556; + t['edieresis'] = 556; + t['cacute'] = 556; + t['nacute'] = 611; + t['umacron'] = 611; + t['Ncaron'] = 722; + t['Iacute'] = 278; + t['plusminus'] = 584; + t['brokenbar'] = 280; + t['registered'] = 737; + t['Gbreve'] = 778; + t['Idotaccent'] = 278; + t['summation'] = 600; + t['Egrave'] = 667; + t['racute'] = 389; + t['omacron'] = 611; + t['Zacute'] = 611; + t['Zcaron'] = 611; + t['greaterequal'] = 549; + t['Eth'] = 722; + t['Ccedilla'] = 722; + t['lcommaaccent'] = 278; + t['tcaron'] = 389; + t['eogonek'] = 556; + t['Uogonek'] = 722; + t['Aacute'] = 722; + t['Adieresis'] = 722; + t['egrave'] = 556; + t['zacute'] = 500; + t['iogonek'] = 278; + t['Oacute'] = 778; + t['oacute'] = 611; + t['amacron'] = 556; + t['sacute'] = 556; + t['idieresis'] = 278; + t['Ocircumflex'] = 778; + t['Ugrave'] = 722; + t['Delta'] = 612; + t['thorn'] = 611; + t['twosuperior'] = 333; + t['Odieresis'] = 778; + t['mu'] = 611; + t['igrave'] = 278; + t['ohungarumlaut'] = 611; + t['Eogonek'] = 667; + t['dcroat'] = 611; + t['threequarters'] = 834; + t['Scedilla'] = 667; + t['lcaron'] = 400; + t['Kcommaaccent'] = 722; + t['Lacute'] = 611; + t['trademark'] = 1000; + t['edotaccent'] = 556; + t['Igrave'] = 278; + t['Imacron'] = 278; + t['Lcaron'] = 611; + t['onehalf'] = 834; + t['lessequal'] = 549; + t['ocircumflex'] = 611; + t['ntilde'] = 611; + t['Uhungarumlaut'] = 722; + t['Eacute'] = 667; + t['emacron'] = 556; + t['gbreve'] = 611; + t['onequarter'] = 834; + t['Scaron'] = 667; + t['Scommaaccent'] = 667; + t['Ohungarumlaut'] = 778; + t['degree'] = 400; + t['ograve'] = 611; + t['Ccaron'] = 722; + t['ugrave'] = 611; + t['radical'] = 549; + t['Dcaron'] = 722; + t['rcommaaccent'] = 389; + t['Ntilde'] = 722; + t['otilde'] = 611; + t['Rcommaaccent'] = 722; + t['Lcommaaccent'] = 611; + t['Atilde'] = 722; + t['Aogonek'] = 722; + t['Aring'] = 722; + t['Otilde'] = 778; + t['zdotaccent'] = 500; + t['Ecaron'] = 667; + t['Iogonek'] = 278; + t['kcommaaccent'] = 556; + t['minus'] = 584; + t['Icircumflex'] = 278; + t['ncaron'] = 611; + t['tcommaaccent'] = 333; + t['logicalnot'] = 584; + t['odieresis'] = 611; + t['udieresis'] = 611; + t['notequal'] = 549; + t['gcommaaccent'] = 611; + t['eth'] = 611; + t['zcaron'] = 500; + t['ncommaaccent'] = 611; + t['onesuperior'] = 333; + t['imacron'] = 278; + t['Euro'] = 556; + }); + t['Helvetica-Oblique'] = (0, _util.getLookupTableFactory)(function (t) { + t['space'] = 278; + t['exclam'] = 278; + t['quotedbl'] = 355; + t['numbersign'] = 556; + t['dollar'] = 556; + t['percent'] = 889; + t['ampersand'] = 667; + t['quoteright'] = 222; + t['parenleft'] = 333; + t['parenright'] = 333; + t['asterisk'] = 389; + t['plus'] = 584; + t['comma'] = 278; + t['hyphen'] = 333; + t['period'] = 278; + t['slash'] = 278; + t['zero'] = 556; + t['one'] = 556; + t['two'] = 556; + t['three'] = 556; + t['four'] = 556; + t['five'] = 556; + t['six'] = 556; + t['seven'] = 556; + t['eight'] = 556; + t['nine'] = 556; + t['colon'] = 278; + t['semicolon'] = 278; + t['less'] = 584; + t['equal'] = 584; + t['greater'] = 584; + t['question'] = 556; + t['at'] = 1015; + t['A'] = 667; + t['B'] = 667; + t['C'] = 722; + t['D'] = 722; + t['E'] = 667; + t['F'] = 611; + t['G'] = 778; + t['H'] = 722; + t['I'] = 278; + t['J'] = 500; + t['K'] = 667; + t['L'] = 556; + t['M'] = 833; + t['N'] = 722; + t['O'] = 778; + t['P'] = 667; + t['Q'] = 778; + t['R'] = 722; + t['S'] = 667; + t['T'] = 611; + t['U'] = 722; + t['V'] = 667; + t['W'] = 944; + t['X'] = 667; + t['Y'] = 667; + t['Z'] = 611; + t['bracketleft'] = 278; + t['backslash'] = 278; + t['bracketright'] = 278; + t['asciicircum'] = 469; + t['underscore'] = 556; + t['quoteleft'] = 222; + t['a'] = 556; + t['b'] = 556; + t['c'] = 500; + t['d'] = 556; + t['e'] = 556; + t['f'] = 278; + t['g'] = 556; + t['h'] = 556; + t['i'] = 222; + t['j'] = 222; + t['k'] = 500; + t['l'] = 222; + t['m'] = 833; + t['n'] = 556; + t['o'] = 556; + t['p'] = 556; + t['q'] = 556; + t['r'] = 333; + t['s'] = 500; + t['t'] = 278; + t['u'] = 556; + t['v'] = 500; + t['w'] = 722; + t['x'] = 500; + t['y'] = 500; + t['z'] = 500; + t['braceleft'] = 334; + t['bar'] = 260; + t['braceright'] = 334; + t['asciitilde'] = 584; + t['exclamdown'] = 333; + t['cent'] = 556; + t['sterling'] = 556; + t['fraction'] = 167; + t['yen'] = 556; + t['florin'] = 556; + t['section'] = 556; + t['currency'] = 556; + t['quotesingle'] = 191; + t['quotedblleft'] = 333; + t['guillemotleft'] = 556; + t['guilsinglleft'] = 333; + t['guilsinglright'] = 333; + t['fi'] = 500; + t['fl'] = 500; + t['endash'] = 556; + t['dagger'] = 556; + t['daggerdbl'] = 556; + t['periodcentered'] = 278; + t['paragraph'] = 537; + t['bullet'] = 350; + t['quotesinglbase'] = 222; + t['quotedblbase'] = 333; + t['quotedblright'] = 333; + t['guillemotright'] = 556; + t['ellipsis'] = 1000; + t['perthousand'] = 1000; + t['questiondown'] = 611; + t['grave'] = 333; + t['acute'] = 333; + t['circumflex'] = 333; + t['tilde'] = 333; + t['macron'] = 333; + t['breve'] = 333; + t['dotaccent'] = 333; + t['dieresis'] = 333; + t['ring'] = 333; + t['cedilla'] = 333; + t['hungarumlaut'] = 333; + t['ogonek'] = 333; + t['caron'] = 333; + t['emdash'] = 1000; + t['AE'] = 1000; + t['ordfeminine'] = 370; + t['Lslash'] = 556; + t['Oslash'] = 778; + t['OE'] = 1000; + t['ordmasculine'] = 365; + t['ae'] = 889; + t['dotlessi'] = 278; + t['lslash'] = 222; + t['oslash'] = 611; + t['oe'] = 944; + t['germandbls'] = 611; + t['Idieresis'] = 278; + t['eacute'] = 556; + t['abreve'] = 556; + t['uhungarumlaut'] = 556; + t['ecaron'] = 556; + t['Ydieresis'] = 667; + t['divide'] = 584; + t['Yacute'] = 667; + t['Acircumflex'] = 667; + t['aacute'] = 556; + t['Ucircumflex'] = 722; + t['yacute'] = 500; + t['scommaaccent'] = 500; + t['ecircumflex'] = 556; + t['Uring'] = 722; + t['Udieresis'] = 722; + t['aogonek'] = 556; + t['Uacute'] = 722; + t['uogonek'] = 556; + t['Edieresis'] = 667; + t['Dcroat'] = 722; + t['commaaccent'] = 250; + t['copyright'] = 737; + t['Emacron'] = 667; + t['ccaron'] = 500; + t['aring'] = 556; + t['Ncommaaccent'] = 722; + t['lacute'] = 222; + t['agrave'] = 556; + t['Tcommaaccent'] = 611; + t['Cacute'] = 722; + t['atilde'] = 556; + t['Edotaccent'] = 667; + t['scaron'] = 500; + t['scedilla'] = 500; + t['iacute'] = 278; + t['lozenge'] = 471; + t['Rcaron'] = 722; + t['Gcommaaccent'] = 778; + t['ucircumflex'] = 556; + t['acircumflex'] = 556; + t['Amacron'] = 667; + t['rcaron'] = 333; + t['ccedilla'] = 500; + t['Zdotaccent'] = 611; + t['Thorn'] = 667; + t['Omacron'] = 778; + t['Racute'] = 722; + t['Sacute'] = 667; + t['dcaron'] = 643; + t['Umacron'] = 722; + t['uring'] = 556; + t['threesuperior'] = 333; + t['Ograve'] = 778; + t['Agrave'] = 667; + t['Abreve'] = 667; + t['multiply'] = 584; + t['uacute'] = 556; + t['Tcaron'] = 611; + t['partialdiff'] = 476; + t['ydieresis'] = 500; + t['Nacute'] = 722; + t['icircumflex'] = 278; + t['Ecircumflex'] = 667; + t['adieresis'] = 556; + t['edieresis'] = 556; + t['cacute'] = 500; + t['nacute'] = 556; + t['umacron'] = 556; + t['Ncaron'] = 722; + t['Iacute'] = 278; + t['plusminus'] = 584; + t['brokenbar'] = 260; + t['registered'] = 737; + t['Gbreve'] = 778; + t['Idotaccent'] = 278; + t['summation'] = 600; + t['Egrave'] = 667; + t['racute'] = 333; + t['omacron'] = 556; + t['Zacute'] = 611; + t['Zcaron'] = 611; + t['greaterequal'] = 549; + t['Eth'] = 722; + t['Ccedilla'] = 722; + t['lcommaaccent'] = 222; + t['tcaron'] = 317; + t['eogonek'] = 556; + t['Uogonek'] = 722; + t['Aacute'] = 667; + t['Adieresis'] = 667; + t['egrave'] = 556; + t['zacute'] = 500; + t['iogonek'] = 222; + t['Oacute'] = 778; + t['oacute'] = 556; + t['amacron'] = 556; + t['sacute'] = 500; + t['idieresis'] = 278; + t['Ocircumflex'] = 778; + t['Ugrave'] = 722; + t['Delta'] = 612; + t['thorn'] = 556; + t['twosuperior'] = 333; + t['Odieresis'] = 778; + t['mu'] = 556; + t['igrave'] = 278; + t['ohungarumlaut'] = 556; + t['Eogonek'] = 667; + t['dcroat'] = 556; + t['threequarters'] = 834; + t['Scedilla'] = 667; + t['lcaron'] = 299; + t['Kcommaaccent'] = 667; + t['Lacute'] = 556; + t['trademark'] = 1000; + t['edotaccent'] = 556; + t['Igrave'] = 278; + t['Imacron'] = 278; + t['Lcaron'] = 556; + t['onehalf'] = 834; + t['lessequal'] = 549; + t['ocircumflex'] = 556; + t['ntilde'] = 556; + t['Uhungarumlaut'] = 722; + t['Eacute'] = 667; + t['emacron'] = 556; + t['gbreve'] = 556; + t['onequarter'] = 834; + t['Scaron'] = 667; + t['Scommaaccent'] = 667; + t['Ohungarumlaut'] = 778; + t['degree'] = 400; + t['ograve'] = 556; + t['Ccaron'] = 722; + t['ugrave'] = 556; + t['radical'] = 453; + t['Dcaron'] = 722; + t['rcommaaccent'] = 333; + t['Ntilde'] = 722; + t['otilde'] = 556; + t['Rcommaaccent'] = 722; + t['Lcommaaccent'] = 556; + t['Atilde'] = 667; + t['Aogonek'] = 667; + t['Aring'] = 667; + t['Otilde'] = 778; + t['zdotaccent'] = 500; + t['Ecaron'] = 667; + t['Iogonek'] = 278; + t['kcommaaccent'] = 500; + t['minus'] = 584; + t['Icircumflex'] = 278; + t['ncaron'] = 556; + t['tcommaaccent'] = 278; + t['logicalnot'] = 584; + t['odieresis'] = 556; + t['udieresis'] = 556; + t['notequal'] = 549; + t['gcommaaccent'] = 556; + t['eth'] = 556; + t['zcaron'] = 500; + t['ncommaaccent'] = 556; + t['onesuperior'] = 333; + t['imacron'] = 278; + t['Euro'] = 556; + }); + t['Symbol'] = (0, _util.getLookupTableFactory)(function (t) { + t['space'] = 250; + t['exclam'] = 333; + t['universal'] = 713; + t['numbersign'] = 500; + t['existential'] = 549; + t['percent'] = 833; + t['ampersand'] = 778; + t['suchthat'] = 439; + t['parenleft'] = 333; + t['parenright'] = 333; + t['asteriskmath'] = 500; + t['plus'] = 549; + t['comma'] = 250; + t['minus'] = 549; + t['period'] = 250; + t['slash'] = 278; + t['zero'] = 500; + t['one'] = 500; + t['two'] = 500; + t['three'] = 500; + t['four'] = 500; + t['five'] = 500; + t['six'] = 500; + t['seven'] = 500; + t['eight'] = 500; + t['nine'] = 500; + t['colon'] = 278; + t['semicolon'] = 278; + t['less'] = 549; + t['equal'] = 549; + t['greater'] = 549; + t['question'] = 444; + t['congruent'] = 549; + t['Alpha'] = 722; + t['Beta'] = 667; + t['Chi'] = 722; + t['Delta'] = 612; + t['Epsilon'] = 611; + t['Phi'] = 763; + t['Gamma'] = 603; + t['Eta'] = 722; + t['Iota'] = 333; + t['theta1'] = 631; + t['Kappa'] = 722; + t['Lambda'] = 686; + t['Mu'] = 889; + t['Nu'] = 722; + t['Omicron'] = 722; + t['Pi'] = 768; + t['Theta'] = 741; + t['Rho'] = 556; + t['Sigma'] = 592; + t['Tau'] = 611; + t['Upsilon'] = 690; + t['sigma1'] = 439; + t['Omega'] = 768; + t['Xi'] = 645; + t['Psi'] = 795; + t['Zeta'] = 611; + t['bracketleft'] = 333; + t['therefore'] = 863; + t['bracketright'] = 333; + t['perpendicular'] = 658; + t['underscore'] = 500; + t['radicalex'] = 500; + t['alpha'] = 631; + t['beta'] = 549; + t['chi'] = 549; + t['delta'] = 494; + t['epsilon'] = 439; + t['phi'] = 521; + t['gamma'] = 411; + t['eta'] = 603; + t['iota'] = 329; + t['phi1'] = 603; + t['kappa'] = 549; + t['lambda'] = 549; + t['mu'] = 576; + t['nu'] = 521; + t['omicron'] = 549; + t['pi'] = 549; + t['theta'] = 521; + t['rho'] = 549; + t['sigma'] = 603; + t['tau'] = 439; + t['upsilon'] = 576; + t['omega1'] = 713; + t['omega'] = 686; + t['xi'] = 493; + t['psi'] = 686; + t['zeta'] = 494; + t['braceleft'] = 480; + t['bar'] = 200; + t['braceright'] = 480; + t['similar'] = 549; + t['Euro'] = 750; + t['Upsilon1'] = 620; + t['minute'] = 247; + t['lessequal'] = 549; + t['fraction'] = 167; + t['infinity'] = 713; + t['florin'] = 500; + t['club'] = 753; + t['diamond'] = 753; + t['heart'] = 753; + t['spade'] = 753; + t['arrowboth'] = 1042; + t['arrowleft'] = 987; + t['arrowup'] = 603; + t['arrowright'] = 987; + t['arrowdown'] = 603; + t['degree'] = 400; + t['plusminus'] = 549; + t['second'] = 411; + t['greaterequal'] = 549; + t['multiply'] = 549; + t['proportional'] = 713; + t['partialdiff'] = 494; + t['bullet'] = 460; + t['divide'] = 549; + t['notequal'] = 549; + t['equivalence'] = 549; + t['approxequal'] = 549; + t['ellipsis'] = 1000; + t['arrowvertex'] = 603; + t['arrowhorizex'] = 1000; + t['carriagereturn'] = 658; + t['aleph'] = 823; + t['Ifraktur'] = 686; + t['Rfraktur'] = 795; + t['weierstrass'] = 987; + t['circlemultiply'] = 768; + t['circleplus'] = 768; + t['emptyset'] = 823; + t['intersection'] = 768; + t['union'] = 768; + t['propersuperset'] = 713; + t['reflexsuperset'] = 713; + t['notsubset'] = 713; + t['propersubset'] = 713; + t['reflexsubset'] = 713; + t['element'] = 713; + t['notelement'] = 713; + t['angle'] = 768; + t['gradient'] = 713; + t['registerserif'] = 790; + t['copyrightserif'] = 790; + t['trademarkserif'] = 890; + t['product'] = 823; + t['radical'] = 549; + t['dotmath'] = 250; + t['logicalnot'] = 713; + t['logicaland'] = 603; + t['logicalor'] = 603; + t['arrowdblboth'] = 1042; + t['arrowdblleft'] = 987; + t['arrowdblup'] = 603; + t['arrowdblright'] = 987; + t['arrowdbldown'] = 603; + t['lozenge'] = 494; + t['angleleft'] = 329; + t['registersans'] = 790; + t['copyrightsans'] = 790; + t['trademarksans'] = 786; + t['summation'] = 713; + t['parenlefttp'] = 384; + t['parenleftex'] = 384; + t['parenleftbt'] = 384; + t['bracketlefttp'] = 384; + t['bracketleftex'] = 384; + t['bracketleftbt'] = 384; + t['bracelefttp'] = 494; + t['braceleftmid'] = 494; + t['braceleftbt'] = 494; + t['braceex'] = 494; + t['angleright'] = 329; + t['integral'] = 274; + t['integraltp'] = 686; + t['integralex'] = 686; + t['integralbt'] = 686; + t['parenrighttp'] = 384; + t['parenrightex'] = 384; + t['parenrightbt'] = 384; + t['bracketrighttp'] = 384; + t['bracketrightex'] = 384; + t['bracketrightbt'] = 384; + t['bracerighttp'] = 494; + t['bracerightmid'] = 494; + t['bracerightbt'] = 494; + t['apple'] = 790; + }); + t['Times-Roman'] = (0, _util.getLookupTableFactory)(function (t) { + t['space'] = 250; + t['exclam'] = 333; + t['quotedbl'] = 408; + t['numbersign'] = 500; + t['dollar'] = 500; + t['percent'] = 833; + t['ampersand'] = 778; + t['quoteright'] = 333; + t['parenleft'] = 333; + t['parenright'] = 333; + t['asterisk'] = 500; + t['plus'] = 564; + t['comma'] = 250; + t['hyphen'] = 333; + t['period'] = 250; + t['slash'] = 278; + t['zero'] = 500; + t['one'] = 500; + t['two'] = 500; + t['three'] = 500; + t['four'] = 500; + t['five'] = 500; + t['six'] = 500; + t['seven'] = 500; + t['eight'] = 500; + t['nine'] = 500; + t['colon'] = 278; + t['semicolon'] = 278; + t['less'] = 564; + t['equal'] = 564; + t['greater'] = 564; + t['question'] = 444; + t['at'] = 921; + t['A'] = 722; + t['B'] = 667; + t['C'] = 667; + t['D'] = 722; + t['E'] = 611; + t['F'] = 556; + t['G'] = 722; + t['H'] = 722; + t['I'] = 333; + t['J'] = 389; + t['K'] = 722; + t['L'] = 611; + t['M'] = 889; + t['N'] = 722; + t['O'] = 722; + t['P'] = 556; + t['Q'] = 722; + t['R'] = 667; + t['S'] = 556; + t['T'] = 611; + t['U'] = 722; + t['V'] = 722; + t['W'] = 944; + t['X'] = 722; + t['Y'] = 722; + t['Z'] = 611; + t['bracketleft'] = 333; + t['backslash'] = 278; + t['bracketright'] = 333; + t['asciicircum'] = 469; + t['underscore'] = 500; + t['quoteleft'] = 333; + t['a'] = 444; + t['b'] = 500; + t['c'] = 444; + t['d'] = 500; + t['e'] = 444; + t['f'] = 333; + t['g'] = 500; + t['h'] = 500; + t['i'] = 278; + t['j'] = 278; + t['k'] = 500; + t['l'] = 278; + t['m'] = 778; + t['n'] = 500; + t['o'] = 500; + t['p'] = 500; + t['q'] = 500; + t['r'] = 333; + t['s'] = 389; + t['t'] = 278; + t['u'] = 500; + t['v'] = 500; + t['w'] = 722; + t['x'] = 500; + t['y'] = 500; + t['z'] = 444; + t['braceleft'] = 480; + t['bar'] = 200; + t['braceright'] = 480; + t['asciitilde'] = 541; + t['exclamdown'] = 333; + t['cent'] = 500; + t['sterling'] = 500; + t['fraction'] = 167; + t['yen'] = 500; + t['florin'] = 500; + t['section'] = 500; + t['currency'] = 500; + t['quotesingle'] = 180; + t['quotedblleft'] = 444; + t['guillemotleft'] = 500; + t['guilsinglleft'] = 333; + t['guilsinglright'] = 333; + t['fi'] = 556; + t['fl'] = 556; + t['endash'] = 500; + t['dagger'] = 500; + t['daggerdbl'] = 500; + t['periodcentered'] = 250; + t['paragraph'] = 453; + t['bullet'] = 350; + t['quotesinglbase'] = 333; + t['quotedblbase'] = 444; + t['quotedblright'] = 444; + t['guillemotright'] = 500; + t['ellipsis'] = 1000; + t['perthousand'] = 1000; + t['questiondown'] = 444; + t['grave'] = 333; + t['acute'] = 333; + t['circumflex'] = 333; + t['tilde'] = 333; + t['macron'] = 333; + t['breve'] = 333; + t['dotaccent'] = 333; + t['dieresis'] = 333; + t['ring'] = 333; + t['cedilla'] = 333; + t['hungarumlaut'] = 333; + t['ogonek'] = 333; + t['caron'] = 333; + t['emdash'] = 1000; + t['AE'] = 889; + t['ordfeminine'] = 276; + t['Lslash'] = 611; + t['Oslash'] = 722; + t['OE'] = 889; + t['ordmasculine'] = 310; + t['ae'] = 667; + t['dotlessi'] = 278; + t['lslash'] = 278; + t['oslash'] = 500; + t['oe'] = 722; + t['germandbls'] = 500; + t['Idieresis'] = 333; + t['eacute'] = 444; + t['abreve'] = 444; + t['uhungarumlaut'] = 500; + t['ecaron'] = 444; + t['Ydieresis'] = 722; + t['divide'] = 564; + t['Yacute'] = 722; + t['Acircumflex'] = 722; + t['aacute'] = 444; + t['Ucircumflex'] = 722; + t['yacute'] = 500; + t['scommaaccent'] = 389; + t['ecircumflex'] = 444; + t['Uring'] = 722; + t['Udieresis'] = 722; + t['aogonek'] = 444; + t['Uacute'] = 722; + t['uogonek'] = 500; + t['Edieresis'] = 611; + t['Dcroat'] = 722; + t['commaaccent'] = 250; + t['copyright'] = 760; + t['Emacron'] = 611; + t['ccaron'] = 444; + t['aring'] = 444; + t['Ncommaaccent'] = 722; + t['lacute'] = 278; + t['agrave'] = 444; + t['Tcommaaccent'] = 611; + t['Cacute'] = 667; + t['atilde'] = 444; + t['Edotaccent'] = 611; + t['scaron'] = 389; + t['scedilla'] = 389; + t['iacute'] = 278; + t['lozenge'] = 471; + t['Rcaron'] = 667; + t['Gcommaaccent'] = 722; + t['ucircumflex'] = 500; + t['acircumflex'] = 444; + t['Amacron'] = 722; + t['rcaron'] = 333; + t['ccedilla'] = 444; + t['Zdotaccent'] = 611; + t['Thorn'] = 556; + t['Omacron'] = 722; + t['Racute'] = 667; + t['Sacute'] = 556; + t['dcaron'] = 588; + t['Umacron'] = 722; + t['uring'] = 500; + t['threesuperior'] = 300; + t['Ograve'] = 722; + t['Agrave'] = 722; + t['Abreve'] = 722; + t['multiply'] = 564; + t['uacute'] = 500; + t['Tcaron'] = 611; + t['partialdiff'] = 476; + t['ydieresis'] = 500; + t['Nacute'] = 722; + t['icircumflex'] = 278; + t['Ecircumflex'] = 611; + t['adieresis'] = 444; + t['edieresis'] = 444; + t['cacute'] = 444; + t['nacute'] = 500; + t['umacron'] = 500; + t['Ncaron'] = 722; + t['Iacute'] = 333; + t['plusminus'] = 564; + t['brokenbar'] = 200; + t['registered'] = 760; + t['Gbreve'] = 722; + t['Idotaccent'] = 333; + t['summation'] = 600; + t['Egrave'] = 611; + t['racute'] = 333; + t['omacron'] = 500; + t['Zacute'] = 611; + t['Zcaron'] = 611; + t['greaterequal'] = 549; + t['Eth'] = 722; + t['Ccedilla'] = 667; + t['lcommaaccent'] = 278; + t['tcaron'] = 326; + t['eogonek'] = 444; + t['Uogonek'] = 722; + t['Aacute'] = 722; + t['Adieresis'] = 722; + t['egrave'] = 444; + t['zacute'] = 444; + t['iogonek'] = 278; + t['Oacute'] = 722; + t['oacute'] = 500; + t['amacron'] = 444; + t['sacute'] = 389; + t['idieresis'] = 278; + t['Ocircumflex'] = 722; + t['Ugrave'] = 722; + t['Delta'] = 612; + t['thorn'] = 500; + t['twosuperior'] = 300; + t['Odieresis'] = 722; + t['mu'] = 500; + t['igrave'] = 278; + t['ohungarumlaut'] = 500; + t['Eogonek'] = 611; + t['dcroat'] = 500; + t['threequarters'] = 750; + t['Scedilla'] = 556; + t['lcaron'] = 344; + t['Kcommaaccent'] = 722; + t['Lacute'] = 611; + t['trademark'] = 980; + t['edotaccent'] = 444; + t['Igrave'] = 333; + t['Imacron'] = 333; + t['Lcaron'] = 611; + t['onehalf'] = 750; + t['lessequal'] = 549; + t['ocircumflex'] = 500; + t['ntilde'] = 500; + t['Uhungarumlaut'] = 722; + t['Eacute'] = 611; + t['emacron'] = 444; + t['gbreve'] = 500; + t['onequarter'] = 750; + t['Scaron'] = 556; + t['Scommaaccent'] = 556; + t['Ohungarumlaut'] = 722; + t['degree'] = 400; + t['ograve'] = 500; + t['Ccaron'] = 667; + t['ugrave'] = 500; + t['radical'] = 453; + t['Dcaron'] = 722; + t['rcommaaccent'] = 333; + t['Ntilde'] = 722; + t['otilde'] = 500; + t['Rcommaaccent'] = 667; + t['Lcommaaccent'] = 611; + t['Atilde'] = 722; + t['Aogonek'] = 722; + t['Aring'] = 722; + t['Otilde'] = 722; + t['zdotaccent'] = 444; + t['Ecaron'] = 611; + t['Iogonek'] = 333; + t['kcommaaccent'] = 500; + t['minus'] = 564; + t['Icircumflex'] = 333; + t['ncaron'] = 500; + t['tcommaaccent'] = 278; + t['logicalnot'] = 564; + t['odieresis'] = 500; + t['udieresis'] = 500; + t['notequal'] = 549; + t['gcommaaccent'] = 500; + t['eth'] = 500; + t['zcaron'] = 444; + t['ncommaaccent'] = 500; + t['onesuperior'] = 300; + t['imacron'] = 278; + t['Euro'] = 500; + }); + t['Times-Bold'] = (0, _util.getLookupTableFactory)(function (t) { + t['space'] = 250; + t['exclam'] = 333; + t['quotedbl'] = 555; + t['numbersign'] = 500; + t['dollar'] = 500; + t['percent'] = 1000; + t['ampersand'] = 833; + t['quoteright'] = 333; + t['parenleft'] = 333; + t['parenright'] = 333; + t['asterisk'] = 500; + t['plus'] = 570; + t['comma'] = 250; + t['hyphen'] = 333; + t['period'] = 250; + t['slash'] = 278; + t['zero'] = 500; + t['one'] = 500; + t['two'] = 500; + t['three'] = 500; + t['four'] = 500; + t['five'] = 500; + t['six'] = 500; + t['seven'] = 500; + t['eight'] = 500; + t['nine'] = 500; + t['colon'] = 333; + t['semicolon'] = 333; + t['less'] = 570; + t['equal'] = 570; + t['greater'] = 570; + t['question'] = 500; + t['at'] = 930; + t['A'] = 722; + t['B'] = 667; + t['C'] = 722; + t['D'] = 722; + t['E'] = 667; + t['F'] = 611; + t['G'] = 778; + t['H'] = 778; + t['I'] = 389; + t['J'] = 500; + t['K'] = 778; + t['L'] = 667; + t['M'] = 944; + t['N'] = 722; + t['O'] = 778; + t['P'] = 611; + t['Q'] = 778; + t['R'] = 722; + t['S'] = 556; + t['T'] = 667; + t['U'] = 722; + t['V'] = 722; + t['W'] = 1000; + t['X'] = 722; + t['Y'] = 722; + t['Z'] = 667; + t['bracketleft'] = 333; + t['backslash'] = 278; + t['bracketright'] = 333; + t['asciicircum'] = 581; + t['underscore'] = 500; + t['quoteleft'] = 333; + t['a'] = 500; + t['b'] = 556; + t['c'] = 444; + t['d'] = 556; + t['e'] = 444; + t['f'] = 333; + t['g'] = 500; + t['h'] = 556; + t['i'] = 278; + t['j'] = 333; + t['k'] = 556; + t['l'] = 278; + t['m'] = 833; + t['n'] = 556; + t['o'] = 500; + t['p'] = 556; + t['q'] = 556; + t['r'] = 444; + t['s'] = 389; + t['t'] = 333; + t['u'] = 556; + t['v'] = 500; + t['w'] = 722; + t['x'] = 500; + t['y'] = 500; + t['z'] = 444; + t['braceleft'] = 394; + t['bar'] = 220; + t['braceright'] = 394; + t['asciitilde'] = 520; + t['exclamdown'] = 333; + t['cent'] = 500; + t['sterling'] = 500; + t['fraction'] = 167; + t['yen'] = 500; + t['florin'] = 500; + t['section'] = 500; + t['currency'] = 500; + t['quotesingle'] = 278; + t['quotedblleft'] = 500; + t['guillemotleft'] = 500; + t['guilsinglleft'] = 333; + t['guilsinglright'] = 333; + t['fi'] = 556; + t['fl'] = 556; + t['endash'] = 500; + t['dagger'] = 500; + t['daggerdbl'] = 500; + t['periodcentered'] = 250; + t['paragraph'] = 540; + t['bullet'] = 350; + t['quotesinglbase'] = 333; + t['quotedblbase'] = 500; + t['quotedblright'] = 500; + t['guillemotright'] = 500; + t['ellipsis'] = 1000; + t['perthousand'] = 1000; + t['questiondown'] = 500; + t['grave'] = 333; + t['acute'] = 333; + t['circumflex'] = 333; + t['tilde'] = 333; + t['macron'] = 333; + t['breve'] = 333; + t['dotaccent'] = 333; + t['dieresis'] = 333; + t['ring'] = 333; + t['cedilla'] = 333; + t['hungarumlaut'] = 333; + t['ogonek'] = 333; + t['caron'] = 333; + t['emdash'] = 1000; + t['AE'] = 1000; + t['ordfeminine'] = 300; + t['Lslash'] = 667; + t['Oslash'] = 778; + t['OE'] = 1000; + t['ordmasculine'] = 330; + t['ae'] = 722; + t['dotlessi'] = 278; + t['lslash'] = 278; + t['oslash'] = 500; + t['oe'] = 722; + t['germandbls'] = 556; + t['Idieresis'] = 389; + t['eacute'] = 444; + t['abreve'] = 500; + t['uhungarumlaut'] = 556; + t['ecaron'] = 444; + t['Ydieresis'] = 722; + t['divide'] = 570; + t['Yacute'] = 722; + t['Acircumflex'] = 722; + t['aacute'] = 500; + t['Ucircumflex'] = 722; + t['yacute'] = 500; + t['scommaaccent'] = 389; + t['ecircumflex'] = 444; + t['Uring'] = 722; + t['Udieresis'] = 722; + t['aogonek'] = 500; + t['Uacute'] = 722; + t['uogonek'] = 556; + t['Edieresis'] = 667; + t['Dcroat'] = 722; + t['commaaccent'] = 250; + t['copyright'] = 747; + t['Emacron'] = 667; + t['ccaron'] = 444; + t['aring'] = 500; + t['Ncommaaccent'] = 722; + t['lacute'] = 278; + t['agrave'] = 500; + t['Tcommaaccent'] = 667; + t['Cacute'] = 722; + t['atilde'] = 500; + t['Edotaccent'] = 667; + t['scaron'] = 389; + t['scedilla'] = 389; + t['iacute'] = 278; + t['lozenge'] = 494; + t['Rcaron'] = 722; + t['Gcommaaccent'] = 778; + t['ucircumflex'] = 556; + t['acircumflex'] = 500; + t['Amacron'] = 722; + t['rcaron'] = 444; + t['ccedilla'] = 444; + t['Zdotaccent'] = 667; + t['Thorn'] = 611; + t['Omacron'] = 778; + t['Racute'] = 722; + t['Sacute'] = 556; + t['dcaron'] = 672; + t['Umacron'] = 722; + t['uring'] = 556; + t['threesuperior'] = 300; + t['Ograve'] = 778; + t['Agrave'] = 722; + t['Abreve'] = 722; + t['multiply'] = 570; + t['uacute'] = 556; + t['Tcaron'] = 667; + t['partialdiff'] = 494; + t['ydieresis'] = 500; + t['Nacute'] = 722; + t['icircumflex'] = 278; + t['Ecircumflex'] = 667; + t['adieresis'] = 500; + t['edieresis'] = 444; + t['cacute'] = 444; + t['nacute'] = 556; + t['umacron'] = 556; + t['Ncaron'] = 722; + t['Iacute'] = 389; + t['plusminus'] = 570; + t['brokenbar'] = 220; + t['registered'] = 747; + t['Gbreve'] = 778; + t['Idotaccent'] = 389; + t['summation'] = 600; + t['Egrave'] = 667; + t['racute'] = 444; + t['omacron'] = 500; + t['Zacute'] = 667; + t['Zcaron'] = 667; + t['greaterequal'] = 549; + t['Eth'] = 722; + t['Ccedilla'] = 722; + t['lcommaaccent'] = 278; + t['tcaron'] = 416; + t['eogonek'] = 444; + t['Uogonek'] = 722; + t['Aacute'] = 722; + t['Adieresis'] = 722; + t['egrave'] = 444; + t['zacute'] = 444; + t['iogonek'] = 278; + t['Oacute'] = 778; + t['oacute'] = 500; + t['amacron'] = 500; + t['sacute'] = 389; + t['idieresis'] = 278; + t['Ocircumflex'] = 778; + t['Ugrave'] = 722; + t['Delta'] = 612; + t['thorn'] = 556; + t['twosuperior'] = 300; + t['Odieresis'] = 778; + t['mu'] = 556; + t['igrave'] = 278; + t['ohungarumlaut'] = 500; + t['Eogonek'] = 667; + t['dcroat'] = 556; + t['threequarters'] = 750; + t['Scedilla'] = 556; + t['lcaron'] = 394; + t['Kcommaaccent'] = 778; + t['Lacute'] = 667; + t['trademark'] = 1000; + t['edotaccent'] = 444; + t['Igrave'] = 389; + t['Imacron'] = 389; + t['Lcaron'] = 667; + t['onehalf'] = 750; + t['lessequal'] = 549; + t['ocircumflex'] = 500; + t['ntilde'] = 556; + t['Uhungarumlaut'] = 722; + t['Eacute'] = 667; + t['emacron'] = 444; + t['gbreve'] = 500; + t['onequarter'] = 750; + t['Scaron'] = 556; + t['Scommaaccent'] = 556; + t['Ohungarumlaut'] = 778; + t['degree'] = 400; + t['ograve'] = 500; + t['Ccaron'] = 722; + t['ugrave'] = 556; + t['radical'] = 549; + t['Dcaron'] = 722; + t['rcommaaccent'] = 444; + t['Ntilde'] = 722; + t['otilde'] = 500; + t['Rcommaaccent'] = 722; + t['Lcommaaccent'] = 667; + t['Atilde'] = 722; + t['Aogonek'] = 722; + t['Aring'] = 722; + t['Otilde'] = 778; + t['zdotaccent'] = 444; + t['Ecaron'] = 667; + t['Iogonek'] = 389; + t['kcommaaccent'] = 556; + t['minus'] = 570; + t['Icircumflex'] = 389; + t['ncaron'] = 556; + t['tcommaaccent'] = 333; + t['logicalnot'] = 570; + t['odieresis'] = 500; + t['udieresis'] = 556; + t['notequal'] = 549; + t['gcommaaccent'] = 500; + t['eth'] = 500; + t['zcaron'] = 444; + t['ncommaaccent'] = 556; + t['onesuperior'] = 300; + t['imacron'] = 278; + t['Euro'] = 500; + }); + t['Times-BoldItalic'] = (0, _util.getLookupTableFactory)(function (t) { + t['space'] = 250; + t['exclam'] = 389; + t['quotedbl'] = 555; + t['numbersign'] = 500; + t['dollar'] = 500; + t['percent'] = 833; + t['ampersand'] = 778; + t['quoteright'] = 333; + t['parenleft'] = 333; + t['parenright'] = 333; + t['asterisk'] = 500; + t['plus'] = 570; + t['comma'] = 250; + t['hyphen'] = 333; + t['period'] = 250; + t['slash'] = 278; + t['zero'] = 500; + t['one'] = 500; + t['two'] = 500; + t['three'] = 500; + t['four'] = 500; + t['five'] = 500; + t['six'] = 500; + t['seven'] = 500; + t['eight'] = 500; + t['nine'] = 500; + t['colon'] = 333; + t['semicolon'] = 333; + t['less'] = 570; + t['equal'] = 570; + t['greater'] = 570; + t['question'] = 500; + t['at'] = 832; + t['A'] = 667; + t['B'] = 667; + t['C'] = 667; + t['D'] = 722; + t['E'] = 667; + t['F'] = 667; + t['G'] = 722; + t['H'] = 778; + t['I'] = 389; + t['J'] = 500; + t['K'] = 667; + t['L'] = 611; + t['M'] = 889; + t['N'] = 722; + t['O'] = 722; + t['P'] = 611; + t['Q'] = 722; + t['R'] = 667; + t['S'] = 556; + t['T'] = 611; + t['U'] = 722; + t['V'] = 667; + t['W'] = 889; + t['X'] = 667; + t['Y'] = 611; + t['Z'] = 611; + t['bracketleft'] = 333; + t['backslash'] = 278; + t['bracketright'] = 333; + t['asciicircum'] = 570; + t['underscore'] = 500; + t['quoteleft'] = 333; + t['a'] = 500; + t['b'] = 500; + t['c'] = 444; + t['d'] = 500; + t['e'] = 444; + t['f'] = 333; + t['g'] = 500; + t['h'] = 556; + t['i'] = 278; + t['j'] = 278; + t['k'] = 500; + t['l'] = 278; + t['m'] = 778; + t['n'] = 556; + t['o'] = 500; + t['p'] = 500; + t['q'] = 500; + t['r'] = 389; + t['s'] = 389; + t['t'] = 278; + t['u'] = 556; + t['v'] = 444; + t['w'] = 667; + t['x'] = 500; + t['y'] = 444; + t['z'] = 389; + t['braceleft'] = 348; + t['bar'] = 220; + t['braceright'] = 348; + t['asciitilde'] = 570; + t['exclamdown'] = 389; + t['cent'] = 500; + t['sterling'] = 500; + t['fraction'] = 167; + t['yen'] = 500; + t['florin'] = 500; + t['section'] = 500; + t['currency'] = 500; + t['quotesingle'] = 278; + t['quotedblleft'] = 500; + t['guillemotleft'] = 500; + t['guilsinglleft'] = 333; + t['guilsinglright'] = 333; + t['fi'] = 556; + t['fl'] = 556; + t['endash'] = 500; + t['dagger'] = 500; + t['daggerdbl'] = 500; + t['periodcentered'] = 250; + t['paragraph'] = 500; + t['bullet'] = 350; + t['quotesinglbase'] = 333; + t['quotedblbase'] = 500; + t['quotedblright'] = 500; + t['guillemotright'] = 500; + t['ellipsis'] = 1000; + t['perthousand'] = 1000; + t['questiondown'] = 500; + t['grave'] = 333; + t['acute'] = 333; + t['circumflex'] = 333; + t['tilde'] = 333; + t['macron'] = 333; + t['breve'] = 333; + t['dotaccent'] = 333; + t['dieresis'] = 333; + t['ring'] = 333; + t['cedilla'] = 333; + t['hungarumlaut'] = 333; + t['ogonek'] = 333; + t['caron'] = 333; + t['emdash'] = 1000; + t['AE'] = 944; + t['ordfeminine'] = 266; + t['Lslash'] = 611; + t['Oslash'] = 722; + t['OE'] = 944; + t['ordmasculine'] = 300; + t['ae'] = 722; + t['dotlessi'] = 278; + t['lslash'] = 278; + t['oslash'] = 500; + t['oe'] = 722; + t['germandbls'] = 500; + t['Idieresis'] = 389; + t['eacute'] = 444; + t['abreve'] = 500; + t['uhungarumlaut'] = 556; + t['ecaron'] = 444; + t['Ydieresis'] = 611; + t['divide'] = 570; + t['Yacute'] = 611; + t['Acircumflex'] = 667; + t['aacute'] = 500; + t['Ucircumflex'] = 722; + t['yacute'] = 444; + t['scommaaccent'] = 389; + t['ecircumflex'] = 444; + t['Uring'] = 722; + t['Udieresis'] = 722; + t['aogonek'] = 500; + t['Uacute'] = 722; + t['uogonek'] = 556; + t['Edieresis'] = 667; + t['Dcroat'] = 722; + t['commaaccent'] = 250; + t['copyright'] = 747; + t['Emacron'] = 667; + t['ccaron'] = 444; + t['aring'] = 500; + t['Ncommaaccent'] = 722; + t['lacute'] = 278; + t['agrave'] = 500; + t['Tcommaaccent'] = 611; + t['Cacute'] = 667; + t['atilde'] = 500; + t['Edotaccent'] = 667; + t['scaron'] = 389; + t['scedilla'] = 389; + t['iacute'] = 278; + t['lozenge'] = 494; + t['Rcaron'] = 667; + t['Gcommaaccent'] = 722; + t['ucircumflex'] = 556; + t['acircumflex'] = 500; + t['Amacron'] = 667; + t['rcaron'] = 389; + t['ccedilla'] = 444; + t['Zdotaccent'] = 611; + t['Thorn'] = 611; + t['Omacron'] = 722; + t['Racute'] = 667; + t['Sacute'] = 556; + t['dcaron'] = 608; + t['Umacron'] = 722; + t['uring'] = 556; + t['threesuperior'] = 300; + t['Ograve'] = 722; + t['Agrave'] = 667; + t['Abreve'] = 667; + t['multiply'] = 570; + t['uacute'] = 556; + t['Tcaron'] = 611; + t['partialdiff'] = 494; + t['ydieresis'] = 444; + t['Nacute'] = 722; + t['icircumflex'] = 278; + t['Ecircumflex'] = 667; + t['adieresis'] = 500; + t['edieresis'] = 444; + t['cacute'] = 444; + t['nacute'] = 556; + t['umacron'] = 556; + t['Ncaron'] = 722; + t['Iacute'] = 389; + t['plusminus'] = 570; + t['brokenbar'] = 220; + t['registered'] = 747; + t['Gbreve'] = 722; + t['Idotaccent'] = 389; + t['summation'] = 600; + t['Egrave'] = 667; + t['racute'] = 389; + t['omacron'] = 500; + t['Zacute'] = 611; + t['Zcaron'] = 611; + t['greaterequal'] = 549; + t['Eth'] = 722; + t['Ccedilla'] = 667; + t['lcommaaccent'] = 278; + t['tcaron'] = 366; + t['eogonek'] = 444; + t['Uogonek'] = 722; + t['Aacute'] = 667; + t['Adieresis'] = 667; + t['egrave'] = 444; + t['zacute'] = 389; + t['iogonek'] = 278; + t['Oacute'] = 722; + t['oacute'] = 500; + t['amacron'] = 500; + t['sacute'] = 389; + t['idieresis'] = 278; + t['Ocircumflex'] = 722; + t['Ugrave'] = 722; + t['Delta'] = 612; + t['thorn'] = 500; + t['twosuperior'] = 300; + t['Odieresis'] = 722; + t['mu'] = 576; + t['igrave'] = 278; + t['ohungarumlaut'] = 500; + t['Eogonek'] = 667; + t['dcroat'] = 500; + t['threequarters'] = 750; + t['Scedilla'] = 556; + t['lcaron'] = 382; + t['Kcommaaccent'] = 667; + t['Lacute'] = 611; + t['trademark'] = 1000; + t['edotaccent'] = 444; + t['Igrave'] = 389; + t['Imacron'] = 389; + t['Lcaron'] = 611; + t['onehalf'] = 750; + t['lessequal'] = 549; + t['ocircumflex'] = 500; + t['ntilde'] = 556; + t['Uhungarumlaut'] = 722; + t['Eacute'] = 667; + t['emacron'] = 444; + t['gbreve'] = 500; + t['onequarter'] = 750; + t['Scaron'] = 556; + t['Scommaaccent'] = 556; + t['Ohungarumlaut'] = 722; + t['degree'] = 400; + t['ograve'] = 500; + t['Ccaron'] = 667; + t['ugrave'] = 556; + t['radical'] = 549; + t['Dcaron'] = 722; + t['rcommaaccent'] = 389; + t['Ntilde'] = 722; + t['otilde'] = 500; + t['Rcommaaccent'] = 667; + t['Lcommaaccent'] = 611; + t['Atilde'] = 667; + t['Aogonek'] = 667; + t['Aring'] = 667; + t['Otilde'] = 722; + t['zdotaccent'] = 389; + t['Ecaron'] = 667; + t['Iogonek'] = 389; + t['kcommaaccent'] = 500; + t['minus'] = 606; + t['Icircumflex'] = 389; + t['ncaron'] = 556; + t['tcommaaccent'] = 278; + t['logicalnot'] = 606; + t['odieresis'] = 500; + t['udieresis'] = 556; + t['notequal'] = 549; + t['gcommaaccent'] = 500; + t['eth'] = 500; + t['zcaron'] = 389; + t['ncommaaccent'] = 556; + t['onesuperior'] = 300; + t['imacron'] = 278; + t['Euro'] = 500; + }); + t['Times-Italic'] = (0, _util.getLookupTableFactory)(function (t) { + t['space'] = 250; + t['exclam'] = 333; + t['quotedbl'] = 420; + t['numbersign'] = 500; + t['dollar'] = 500; + t['percent'] = 833; + t['ampersand'] = 778; + t['quoteright'] = 333; + t['parenleft'] = 333; + t['parenright'] = 333; + t['asterisk'] = 500; + t['plus'] = 675; + t['comma'] = 250; + t['hyphen'] = 333; + t['period'] = 250; + t['slash'] = 278; + t['zero'] = 500; + t['one'] = 500; + t['two'] = 500; + t['three'] = 500; + t['four'] = 500; + t['five'] = 500; + t['six'] = 500; + t['seven'] = 500; + t['eight'] = 500; + t['nine'] = 500; + t['colon'] = 333; + t['semicolon'] = 333; + t['less'] = 675; + t['equal'] = 675; + t['greater'] = 675; + t['question'] = 500; + t['at'] = 920; + t['A'] = 611; + t['B'] = 611; + t['C'] = 667; + t['D'] = 722; + t['E'] = 611; + t['F'] = 611; + t['G'] = 722; + t['H'] = 722; + t['I'] = 333; + t['J'] = 444; + t['K'] = 667; + t['L'] = 556; + t['M'] = 833; + t['N'] = 667; + t['O'] = 722; + t['P'] = 611; + t['Q'] = 722; + t['R'] = 611; + t['S'] = 500; + t['T'] = 556; + t['U'] = 722; + t['V'] = 611; + t['W'] = 833; + t['X'] = 611; + t['Y'] = 556; + t['Z'] = 556; + t['bracketleft'] = 389; + t['backslash'] = 278; + t['bracketright'] = 389; + t['asciicircum'] = 422; + t['underscore'] = 500; + t['quoteleft'] = 333; + t['a'] = 500; + t['b'] = 500; + t['c'] = 444; + t['d'] = 500; + t['e'] = 444; + t['f'] = 278; + t['g'] = 500; + t['h'] = 500; + t['i'] = 278; + t['j'] = 278; + t['k'] = 444; + t['l'] = 278; + t['m'] = 722; + t['n'] = 500; + t['o'] = 500; + t['p'] = 500; + t['q'] = 500; + t['r'] = 389; + t['s'] = 389; + t['t'] = 278; + t['u'] = 500; + t['v'] = 444; + t['w'] = 667; + t['x'] = 444; + t['y'] = 444; + t['z'] = 389; + t['braceleft'] = 400; + t['bar'] = 275; + t['braceright'] = 400; + t['asciitilde'] = 541; + t['exclamdown'] = 389; + t['cent'] = 500; + t['sterling'] = 500; + t['fraction'] = 167; + t['yen'] = 500; + t['florin'] = 500; + t['section'] = 500; + t['currency'] = 500; + t['quotesingle'] = 214; + t['quotedblleft'] = 556; + t['guillemotleft'] = 500; + t['guilsinglleft'] = 333; + t['guilsinglright'] = 333; + t['fi'] = 500; + t['fl'] = 500; + t['endash'] = 500; + t['dagger'] = 500; + t['daggerdbl'] = 500; + t['periodcentered'] = 250; + t['paragraph'] = 523; + t['bullet'] = 350; + t['quotesinglbase'] = 333; + t['quotedblbase'] = 556; + t['quotedblright'] = 556; + t['guillemotright'] = 500; + t['ellipsis'] = 889; + t['perthousand'] = 1000; + t['questiondown'] = 500; + t['grave'] = 333; + t['acute'] = 333; + t['circumflex'] = 333; + t['tilde'] = 333; + t['macron'] = 333; + t['breve'] = 333; + t['dotaccent'] = 333; + t['dieresis'] = 333; + t['ring'] = 333; + t['cedilla'] = 333; + t['hungarumlaut'] = 333; + t['ogonek'] = 333; + t['caron'] = 333; + t['emdash'] = 889; + t['AE'] = 889; + t['ordfeminine'] = 276; + t['Lslash'] = 556; + t['Oslash'] = 722; + t['OE'] = 944; + t['ordmasculine'] = 310; + t['ae'] = 667; + t['dotlessi'] = 278; + t['lslash'] = 278; + t['oslash'] = 500; + t['oe'] = 667; + t['germandbls'] = 500; + t['Idieresis'] = 333; + t['eacute'] = 444; + t['abreve'] = 500; + t['uhungarumlaut'] = 500; + t['ecaron'] = 444; + t['Ydieresis'] = 556; + t['divide'] = 675; + t['Yacute'] = 556; + t['Acircumflex'] = 611; + t['aacute'] = 500; + t['Ucircumflex'] = 722; + t['yacute'] = 444; + t['scommaaccent'] = 389; + t['ecircumflex'] = 444; + t['Uring'] = 722; + t['Udieresis'] = 722; + t['aogonek'] = 500; + t['Uacute'] = 722; + t['uogonek'] = 500; + t['Edieresis'] = 611; + t['Dcroat'] = 722; + t['commaaccent'] = 250; + t['copyright'] = 760; + t['Emacron'] = 611; + t['ccaron'] = 444; + t['aring'] = 500; + t['Ncommaaccent'] = 667; + t['lacute'] = 278; + t['agrave'] = 500; + t['Tcommaaccent'] = 556; + t['Cacute'] = 667; + t['atilde'] = 500; + t['Edotaccent'] = 611; + t['scaron'] = 389; + t['scedilla'] = 389; + t['iacute'] = 278; + t['lozenge'] = 471; + t['Rcaron'] = 611; + t['Gcommaaccent'] = 722; + t['ucircumflex'] = 500; + t['acircumflex'] = 500; + t['Amacron'] = 611; + t['rcaron'] = 389; + t['ccedilla'] = 444; + t['Zdotaccent'] = 556; + t['Thorn'] = 611; + t['Omacron'] = 722; + t['Racute'] = 611; + t['Sacute'] = 500; + t['dcaron'] = 544; + t['Umacron'] = 722; + t['uring'] = 500; + t['threesuperior'] = 300; + t['Ograve'] = 722; + t['Agrave'] = 611; + t['Abreve'] = 611; + t['multiply'] = 675; + t['uacute'] = 500; + t['Tcaron'] = 556; + t['partialdiff'] = 476; + t['ydieresis'] = 444; + t['Nacute'] = 667; + t['icircumflex'] = 278; + t['Ecircumflex'] = 611; + t['adieresis'] = 500; + t['edieresis'] = 444; + t['cacute'] = 444; + t['nacute'] = 500; + t['umacron'] = 500; + t['Ncaron'] = 667; + t['Iacute'] = 333; + t['plusminus'] = 675; + t['brokenbar'] = 275; + t['registered'] = 760; + t['Gbreve'] = 722; + t['Idotaccent'] = 333; + t['summation'] = 600; + t['Egrave'] = 611; + t['racute'] = 389; + t['omacron'] = 500; + t['Zacute'] = 556; + t['Zcaron'] = 556; + t['greaterequal'] = 549; + t['Eth'] = 722; + t['Ccedilla'] = 667; + t['lcommaaccent'] = 278; + t['tcaron'] = 300; + t['eogonek'] = 444; + t['Uogonek'] = 722; + t['Aacute'] = 611; + t['Adieresis'] = 611; + t['egrave'] = 444; + t['zacute'] = 389; + t['iogonek'] = 278; + t['Oacute'] = 722; + t['oacute'] = 500; + t['amacron'] = 500; + t['sacute'] = 389; + t['idieresis'] = 278; + t['Ocircumflex'] = 722; + t['Ugrave'] = 722; + t['Delta'] = 612; + t['thorn'] = 500; + t['twosuperior'] = 300; + t['Odieresis'] = 722; + t['mu'] = 500; + t['igrave'] = 278; + t['ohungarumlaut'] = 500; + t['Eogonek'] = 611; + t['dcroat'] = 500; + t['threequarters'] = 750; + t['Scedilla'] = 500; + t['lcaron'] = 300; + t['Kcommaaccent'] = 667; + t['Lacute'] = 556; + t['trademark'] = 980; + t['edotaccent'] = 444; + t['Igrave'] = 333; + t['Imacron'] = 333; + t['Lcaron'] = 611; + t['onehalf'] = 750; + t['lessequal'] = 549; + t['ocircumflex'] = 500; + t['ntilde'] = 500; + t['Uhungarumlaut'] = 722; + t['Eacute'] = 611; + t['emacron'] = 444; + t['gbreve'] = 500; + t['onequarter'] = 750; + t['Scaron'] = 500; + t['Scommaaccent'] = 500; + t['Ohungarumlaut'] = 722; + t['degree'] = 400; + t['ograve'] = 500; + t['Ccaron'] = 667; + t['ugrave'] = 500; + t['radical'] = 453; + t['Dcaron'] = 722; + t['rcommaaccent'] = 389; + t['Ntilde'] = 667; + t['otilde'] = 500; + t['Rcommaaccent'] = 611; + t['Lcommaaccent'] = 556; + t['Atilde'] = 611; + t['Aogonek'] = 611; + t['Aring'] = 611; + t['Otilde'] = 722; + t['zdotaccent'] = 389; + t['Ecaron'] = 611; + t['Iogonek'] = 333; + t['kcommaaccent'] = 444; + t['minus'] = 675; + t['Icircumflex'] = 333; + t['ncaron'] = 500; + t['tcommaaccent'] = 278; + t['logicalnot'] = 675; + t['odieresis'] = 500; + t['udieresis'] = 500; + t['notequal'] = 549; + t['gcommaaccent'] = 500; + t['eth'] = 500; + t['zcaron'] = 389; + t['ncommaaccent'] = 500; + t['onesuperior'] = 300; + t['imacron'] = 278; + t['Euro'] = 500; + }); + t['ZapfDingbats'] = (0, _util.getLookupTableFactory)(function (t) { + t['space'] = 278; + t['a1'] = 974; + t['a2'] = 961; + t['a202'] = 974; + t['a3'] = 980; + t['a4'] = 719; + t['a5'] = 789; + t['a119'] = 790; + t['a118'] = 791; + t['a117'] = 690; + t['a11'] = 960; + t['a12'] = 939; + t['a13'] = 549; + t['a14'] = 855; + t['a15'] = 911; + t['a16'] = 933; + t['a105'] = 911; + t['a17'] = 945; + t['a18'] = 974; + t['a19'] = 755; + t['a20'] = 846; + t['a21'] = 762; + t['a22'] = 761; + t['a23'] = 571; + t['a24'] = 677; + t['a25'] = 763; + t['a26'] = 760; + t['a27'] = 759; + t['a28'] = 754; + t['a6'] = 494; + t['a7'] = 552; + t['a8'] = 537; + t['a9'] = 577; + t['a10'] = 692; + t['a29'] = 786; + t['a30'] = 788; + t['a31'] = 788; + t['a32'] = 790; + t['a33'] = 793; + t['a34'] = 794; + t['a35'] = 816; + t['a36'] = 823; + t['a37'] = 789; + t['a38'] = 841; + t['a39'] = 823; + t['a40'] = 833; + t['a41'] = 816; + t['a42'] = 831; + t['a43'] = 923; + t['a44'] = 744; + t['a45'] = 723; + t['a46'] = 749; + t['a47'] = 790; + t['a48'] = 792; + t['a49'] = 695; + t['a50'] = 776; + t['a51'] = 768; + t['a52'] = 792; + t['a53'] = 759; + t['a54'] = 707; + t['a55'] = 708; + t['a56'] = 682; + t['a57'] = 701; + t['a58'] = 826; + t['a59'] = 815; + t['a60'] = 789; + t['a61'] = 789; + t['a62'] = 707; + t['a63'] = 687; + t['a64'] = 696; + t['a65'] = 689; + t['a66'] = 786; + t['a67'] = 787; + t['a68'] = 713; + t['a69'] = 791; + t['a70'] = 785; + t['a71'] = 791; + t['a72'] = 873; + t['a73'] = 761; + t['a74'] = 762; + t['a203'] = 762; + t['a75'] = 759; + t['a204'] = 759; + t['a76'] = 892; + t['a77'] = 892; + t['a78'] = 788; + t['a79'] = 784; + t['a81'] = 438; + t['a82'] = 138; + t['a83'] = 277; + t['a84'] = 415; + t['a97'] = 392; + t['a98'] = 392; + t['a99'] = 668; + t['a100'] = 668; + t['a89'] = 390; + t['a90'] = 390; + t['a93'] = 317; + t['a94'] = 317; + t['a91'] = 276; + t['a92'] = 276; + t['a205'] = 509; + t['a85'] = 509; + t['a206'] = 410; + t['a86'] = 410; + t['a87'] = 234; + t['a88'] = 234; + t['a95'] = 334; + t['a96'] = 334; + t['a101'] = 732; + t['a102'] = 544; + t['a103'] = 544; + t['a104'] = 910; + t['a106'] = 667; + t['a107'] = 760; + t['a108'] = 760; + t['a112'] = 776; + t['a111'] = 595; + t['a110'] = 694; + t['a109'] = 626; + t['a120'] = 788; + t['a121'] = 788; + t['a122'] = 788; + t['a123'] = 788; + t['a124'] = 788; + t['a125'] = 788; + t['a126'] = 788; + t['a127'] = 788; + t['a128'] = 788; + t['a129'] = 788; + t['a130'] = 788; + t['a131'] = 788; + t['a132'] = 788; + t['a133'] = 788; + t['a134'] = 788; + t['a135'] = 788; + t['a136'] = 788; + t['a137'] = 788; + t['a138'] = 788; + t['a139'] = 788; + t['a140'] = 788; + t['a141'] = 788; + t['a142'] = 788; + t['a143'] = 788; + t['a144'] = 788; + t['a145'] = 788; + t['a146'] = 788; + t['a147'] = 788; + t['a148'] = 788; + t['a149'] = 788; + t['a150'] = 788; + t['a151'] = 788; + t['a152'] = 788; + t['a153'] = 788; + t['a154'] = 788; + t['a155'] = 788; + t['a156'] = 788; + t['a157'] = 788; + t['a158'] = 788; + t['a159'] = 788; + t['a160'] = 894; + t['a161'] = 838; + t['a163'] = 1016; + t['a164'] = 458; + t['a196'] = 748; + t['a165'] = 924; + t['a192'] = 748; + t['a166'] = 918; + t['a167'] = 927; + t['a168'] = 928; + t['a169'] = 928; + t['a170'] = 834; + t['a171'] = 873; + t['a172'] = 828; + t['a173'] = 924; + t['a162'] = 924; + t['a174'] = 917; + t['a175'] = 930; + t['a176'] = 931; + t['a177'] = 463; + t['a178'] = 883; + t['a179'] = 836; + t['a193'] = 836; + t['a180'] = 867; + t['a199'] = 867; + t['a181'] = 696; + t['a200'] = 696; + t['a182'] = 874; + t['a201'] = 874; + t['a183'] = 760; + t['a184'] = 946; + t['a197'] = 771; + t['a185'] = 865; + t['a194'] = 771; + t['a198'] = 888; + t['a186'] = 967; + t['a195'] = 888; + t['a187'] = 831; + t['a188'] = 873; + t['a189'] = 927; + t['a190'] = 970; + t['a191'] = 918; + }); +}); +exports.getMetrics = getMetrics; + +/***/ }), +/* 185 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isPDFFunction = isPDFFunction; +exports.PostScriptCompiler = exports.PostScriptEvaluator = exports.PDFFunctionFactory = void 0; + +var _util = __w_pdfjs_require__(6); + +var _primitives = __w_pdfjs_require__(155); + +var _ps_parser = __w_pdfjs_require__(186); + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var IsEvalSupportedCached = { + get value() { + return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)()); + } + +}; + +var PDFFunctionFactory = +/*#__PURE__*/ +function () { + function PDFFunctionFactory(_ref) { + var xref = _ref.xref, + _ref$isEvalSupported = _ref.isEvalSupported, + isEvalSupported = _ref$isEvalSupported === void 0 ? true : _ref$isEvalSupported; + + _classCallCheck(this, PDFFunctionFactory); + + this.xref = xref; + this.isEvalSupported = isEvalSupported !== false; + } + + _createClass(PDFFunctionFactory, [{ + key: "create", + value: function create(fn) { + return PDFFunction.parse({ + xref: this.xref, + isEvalSupported: this.isEvalSupported, + fn: fn + }); + } + }, { + key: "createFromArray", + value: function createFromArray(fnObj) { + return PDFFunction.parseArray({ + xref: this.xref, + isEvalSupported: this.isEvalSupported, + fnObj: fnObj + }); + } + }]); + + return PDFFunctionFactory; +}(); + +exports.PDFFunctionFactory = PDFFunctionFactory; + +function toNumberArray(arr) { + if (!Array.isArray(arr)) { + return null; + } + + var length = arr.length; + + for (var i = 0; i < length; i++) { + if (typeof arr[i] !== 'number') { + var result = new Array(length); + + for (var _i = 0; _i < length; _i++) { + result[_i] = +arr[_i]; + } + + return result; + } + } + + return arr; +} + +var PDFFunction = function PDFFunctionClosure() { + var CONSTRUCT_SAMPLED = 0; + var CONSTRUCT_INTERPOLATED = 2; + var CONSTRUCT_STICHED = 3; + var CONSTRUCT_POSTSCRIPT = 4; + return { + getSampleArray: function getSampleArray(size, outputSize, bps, stream) { + var i, ii; + var length = 1; + + for (i = 0, ii = size.length; i < ii; i++) { + length *= size[i]; + } + + length *= outputSize; + var array = new Array(length); + var codeSize = 0; + var codeBuf = 0; + var sampleMul = 1.0 / (Math.pow(2.0, bps) - 1); + var strBytes = stream.getBytes((length * bps + 7) / 8); + var strIdx = 0; + + for (i = 0; i < length; i++) { + while (codeSize < bps) { + codeBuf <<= 8; + codeBuf |= strBytes[strIdx++]; + codeSize += 8; + } + + codeSize -= bps; + array[i] = (codeBuf >> codeSize) * sampleMul; + codeBuf &= (1 << codeSize) - 1; + } + + return array; + }, + getIR: function getIR(_ref2) { + var xref = _ref2.xref, + isEvalSupported = _ref2.isEvalSupported, + fn = _ref2.fn; + var dict = fn.dict; + + if (!dict) { + dict = fn; + } + + var types = [this.constructSampled, null, this.constructInterpolated, this.constructStiched, this.constructPostScript]; + var typeNum = dict.get('FunctionType'); + var typeFn = types[typeNum]; + + if (!typeFn) { + throw new _util.FormatError('Unknown type of function'); + } + + return typeFn.call(this, { + xref: xref, + isEvalSupported: isEvalSupported, + fn: fn, + dict: dict + }); + }, + fromIR: function fromIR(_ref3) { + var xref = _ref3.xref, + isEvalSupported = _ref3.isEvalSupported, + IR = _ref3.IR; + var type = IR[0]; + + switch (type) { + case CONSTRUCT_SAMPLED: + return this.constructSampledFromIR({ + xref: xref, + isEvalSupported: isEvalSupported, + IR: IR + }); + + case CONSTRUCT_INTERPOLATED: + return this.constructInterpolatedFromIR({ + xref: xref, + isEvalSupported: isEvalSupported, + IR: IR + }); + + case CONSTRUCT_STICHED: + return this.constructStichedFromIR({ + xref: xref, + isEvalSupported: isEvalSupported, + IR: IR + }); + + default: + return this.constructPostScriptFromIR({ + xref: xref, + isEvalSupported: isEvalSupported, + IR: IR + }); + } + }, + parse: function parse(_ref4) { + var xref = _ref4.xref, + isEvalSupported = _ref4.isEvalSupported, + fn = _ref4.fn; + var IR = this.getIR({ + xref: xref, + isEvalSupported: isEvalSupported, + fn: fn + }); + return this.fromIR({ + xref: xref, + isEvalSupported: isEvalSupported, + IR: IR + }); + }, + parseArray: function parseArray(_ref5) { + var xref = _ref5.xref, + isEvalSupported = _ref5.isEvalSupported, + fnObj = _ref5.fnObj; + + if (!Array.isArray(fnObj)) { + return this.parse({ + xref: xref, + isEvalSupported: isEvalSupported, + fn: fnObj + }); + } + + var fnArray = []; + + for (var j = 0, jj = fnObj.length; j < jj; j++) { + fnArray.push(this.parse({ + xref: xref, + isEvalSupported: isEvalSupported, + fn: xref.fetchIfRef(fnObj[j]) + })); + } + + return function (src, srcOffset, dest, destOffset) { + for (var i = 0, ii = fnArray.length; i < ii; i++) { + fnArray[i](src, srcOffset, dest, destOffset + i); + } + }; + }, + constructSampled: function constructSampled(_ref6) { + var xref = _ref6.xref, + isEvalSupported = _ref6.isEvalSupported, + fn = _ref6.fn, + dict = _ref6.dict; + + function toMultiArray(arr) { + var inputLength = arr.length; + var out = []; + var index = 0; + + for (var i = 0; i < inputLength; i += 2) { + out[index] = [arr[i], arr[i + 1]]; + ++index; + } + + return out; + } + + var domain = toNumberArray(dict.getArray('Domain')); + var range = toNumberArray(dict.getArray('Range')); + + if (!domain || !range) { + throw new _util.FormatError('No domain or range'); + } + + var inputSize = domain.length / 2; + var outputSize = range.length / 2; + domain = toMultiArray(domain); + range = toMultiArray(range); + var size = toNumberArray(dict.getArray('Size')); + var bps = dict.get('BitsPerSample'); + var order = dict.get('Order') || 1; + + if (order !== 1) { + (0, _util.info)('No support for cubic spline interpolation: ' + order); + } + + var encode = toNumberArray(dict.getArray('Encode')); + + if (!encode) { + encode = []; + + for (var i = 0; i < inputSize; ++i) { + encode.push([0, size[i] - 1]); + } + } else { + encode = toMultiArray(encode); + } + + var decode = toNumberArray(dict.getArray('Decode')); + + if (!decode) { + decode = range; + } else { + decode = toMultiArray(decode); + } + + var samples = this.getSampleArray(size, outputSize, bps, fn); + return [CONSTRUCT_SAMPLED, inputSize, domain, encode, decode, samples, size, outputSize, Math.pow(2, bps) - 1, range]; + }, + constructSampledFromIR: function constructSampledFromIR(_ref7) { + var xref = _ref7.xref, + isEvalSupported = _ref7.isEvalSupported, + IR = _ref7.IR; + + function interpolate(x, xmin, xmax, ymin, ymax) { + return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin)); + } + + return function constructSampledFromIRResult(src, srcOffset, dest, destOffset) { + var m = IR[1]; + var domain = IR[2]; + var encode = IR[3]; + var decode = IR[4]; + var samples = IR[5]; + var size = IR[6]; + var n = IR[7]; + var range = IR[9]; + var cubeVertices = 1 << m; + var cubeN = new Float64Array(cubeVertices); + var cubeVertex = new Uint32Array(cubeVertices); + var i, j; + + for (j = 0; j < cubeVertices; j++) { + cubeN[j] = 1; + } + + var k = n, + pos = 1; + + for (i = 0; i < m; ++i) { + var domain_2i = domain[i][0]; + var domain_2i_1 = domain[i][1]; + var xi = Math.min(Math.max(src[srcOffset + i], domain_2i), domain_2i_1); + var e = interpolate(xi, domain_2i, domain_2i_1, encode[i][0], encode[i][1]); + var size_i = size[i]; + e = Math.min(Math.max(e, 0), size_i - 1); + var e0 = e < size_i - 1 ? Math.floor(e) : e - 1; + var n0 = e0 + 1 - e; + var n1 = e - e0; + var offset0 = e0 * k; + var offset1 = offset0 + k; + + for (j = 0; j < cubeVertices; j++) { + if (j & pos) { + cubeN[j] *= n1; + cubeVertex[j] += offset1; + } else { + cubeN[j] *= n0; + cubeVertex[j] += offset0; + } + } + + k *= size_i; + pos <<= 1; + } + + for (j = 0; j < n; ++j) { + var rj = 0; + + for (i = 0; i < cubeVertices; i++) { + rj += samples[cubeVertex[i] + j] * cubeN[i]; + } + + rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]); + dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]); + } + }; + }, + constructInterpolated: function constructInterpolated(_ref8) { + var xref = _ref8.xref, + isEvalSupported = _ref8.isEvalSupported, + fn = _ref8.fn, + dict = _ref8.dict; + var c0 = toNumberArray(dict.getArray('C0')) || [0]; + var c1 = toNumberArray(dict.getArray('C1')) || [1]; + var n = dict.get('N'); + var length = c0.length; + var diff = []; + + for (var i = 0; i < length; ++i) { + diff.push(c1[i] - c0[i]); + } + + return [CONSTRUCT_INTERPOLATED, c0, diff, n]; + }, + constructInterpolatedFromIR: function constructInterpolatedFromIR(_ref9) { + var xref = _ref9.xref, + isEvalSupported = _ref9.isEvalSupported, + IR = _ref9.IR; + var c0 = IR[1]; + var diff = IR[2]; + var n = IR[3]; + var length = diff.length; + return function constructInterpolatedFromIRResult(src, srcOffset, dest, destOffset) { + var x = n === 1 ? src[srcOffset] : Math.pow(src[srcOffset], n); + + for (var j = 0; j < length; ++j) { + dest[destOffset + j] = c0[j] + x * diff[j]; + } + }; + }, + constructStiched: function constructStiched(_ref10) { + var xref = _ref10.xref, + isEvalSupported = _ref10.isEvalSupported, + fn = _ref10.fn, + dict = _ref10.dict; + var domain = toNumberArray(dict.getArray('Domain')); + + if (!domain) { + throw new _util.FormatError('No domain'); + } + + var inputSize = domain.length / 2; + + if (inputSize !== 1) { + throw new _util.FormatError('Bad domain for stiched function'); + } + + var fnRefs = dict.get('Functions'); + var fns = []; + + for (var i = 0, ii = fnRefs.length; i < ii; ++i) { + fns.push(this.parse({ + xref: xref, + isEvalSupported: isEvalSupported, + fn: xref.fetchIfRef(fnRefs[i]) + })); + } + + var bounds = toNumberArray(dict.getArray('Bounds')); + var encode = toNumberArray(dict.getArray('Encode')); + return [CONSTRUCT_STICHED, domain, bounds, encode, fns]; + }, + constructStichedFromIR: function constructStichedFromIR(_ref11) { + var xref = _ref11.xref, + isEvalSupported = _ref11.isEvalSupported, + IR = _ref11.IR; + var domain = IR[1]; + var bounds = IR[2]; + var encode = IR[3]; + var fns = IR[4]; + var tmpBuf = new Float32Array(1); + return function constructStichedFromIRResult(src, srcOffset, dest, destOffset) { + var clip = function constructStichedFromIRClip(v, min, max) { + if (v > max) { + v = max; + } else if (v < min) { + v = min; + } + + return v; + }; + + var v = clip(src[srcOffset], domain[0], domain[1]); + + for (var i = 0, ii = bounds.length; i < ii; ++i) { + if (v < bounds[i]) { + break; + } + } + + var dmin = domain[0]; + + if (i > 0) { + dmin = bounds[i - 1]; + } + + var dmax = domain[1]; + + if (i < bounds.length) { + dmax = bounds[i]; + } + + var rmin = encode[2 * i]; + var rmax = encode[2 * i + 1]; + tmpBuf[0] = dmin === dmax ? rmin : rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin); + fns[i](tmpBuf, 0, dest, destOffset); + }; + }, + constructPostScript: function constructPostScript(_ref12) { + var xref = _ref12.xref, + isEvalSupported = _ref12.isEvalSupported, + fn = _ref12.fn, + dict = _ref12.dict; + var domain = toNumberArray(dict.getArray('Domain')); + var range = toNumberArray(dict.getArray('Range')); + + if (!domain) { + throw new _util.FormatError('No domain.'); + } + + if (!range) { + throw new _util.FormatError('No range.'); + } + + var lexer = new _ps_parser.PostScriptLexer(fn); + var parser = new _ps_parser.PostScriptParser(lexer); + var code = parser.parse(); + return [CONSTRUCT_POSTSCRIPT, domain, range, code]; + }, + constructPostScriptFromIR: function constructPostScriptFromIR(_ref13) { + var xref = _ref13.xref, + isEvalSupported = _ref13.isEvalSupported, + IR = _ref13.IR; + var domain = IR[1]; + var range = IR[2]; + var code = IR[3]; + + if (isEvalSupported && IsEvalSupportedCached.value) { + var compiled = new PostScriptCompiler().compile(code, domain, range); + + if (compiled) { + return new Function('src', 'srcOffset', 'dest', 'destOffset', compiled); + } + } + + (0, _util.info)('Unable to compile PS function'); + var numOutputs = range.length >> 1; + var numInputs = domain.length >> 1; + var evaluator = new PostScriptEvaluator(code); + var cache = Object.create(null); + var MAX_CACHE_SIZE = 2048 * 4; + var cache_available = MAX_CACHE_SIZE; + var tmpBuf = new Float32Array(numInputs); + return function constructPostScriptFromIRResult(src, srcOffset, dest, destOffset) { + var i, value; + var key = ''; + var input = tmpBuf; + + for (i = 0; i < numInputs; i++) { + value = src[srcOffset + i]; + input[i] = value; + key += value + '_'; + } + + var cachedValue = cache[key]; + + if (cachedValue !== undefined) { + dest.set(cachedValue, destOffset); + return; + } + + var output = new Float32Array(numOutputs); + var stack = evaluator.execute(input); + var stackIndex = stack.length - numOutputs; + + for (i = 0; i < numOutputs; i++) { + value = stack[stackIndex + i]; + var bound = range[i * 2]; + + if (value < bound) { + value = bound; + } else { + bound = range[i * 2 + 1]; + + if (value > bound) { + value = bound; + } + } + + output[i] = value; + } + + if (cache_available > 0) { + cache_available--; + cache[key] = output; + } + + dest.set(output, destOffset); + }; + } + }; +}(); + +function isPDFFunction(v) { + var fnDict; + + if (_typeof(v) !== 'object') { + return false; + } else if ((0, _primitives.isDict)(v)) { + fnDict = v; + } else if ((0, _primitives.isStream)(v)) { + fnDict = v.dict; + } else { + return false; + } + + return fnDict.has('FunctionType'); +} + +var PostScriptStack = function PostScriptStackClosure() { + var MAX_STACK_SIZE = 100; + + function PostScriptStack(initialStack) { + this.stack = !initialStack ? [] : Array.prototype.slice.call(initialStack, 0); + } + + PostScriptStack.prototype = { + push: function PostScriptStack_push(value) { + if (this.stack.length >= MAX_STACK_SIZE) { + throw new Error('PostScript function stack overflow.'); + } + + this.stack.push(value); + }, + pop: function PostScriptStack_pop() { + if (this.stack.length <= 0) { + throw new Error('PostScript function stack underflow.'); + } + + return this.stack.pop(); + }, + copy: function PostScriptStack_copy(n) { + if (this.stack.length + n >= MAX_STACK_SIZE) { + throw new Error('PostScript function stack overflow.'); + } + + var stack = this.stack; + + for (var i = stack.length - n, j = n - 1; j >= 0; j--, i++) { + stack.push(stack[i]); + } + }, + index: function PostScriptStack_index(n) { + this.push(this.stack[this.stack.length - n - 1]); + }, + roll: function PostScriptStack_roll(n, p) { + var stack = this.stack; + var l = stack.length - n; + var r = stack.length - 1, + c = l + (p - Math.floor(p / n) * n), + i, + j, + t; + + for (i = l, j = r; i < j; i++, j--) { + t = stack[i]; + stack[i] = stack[j]; + stack[j] = t; + } + + for (i = l, j = c - 1; i < j; i++, j--) { + t = stack[i]; + stack[i] = stack[j]; + stack[j] = t; + } + + for (i = c, j = r; i < j; i++, j--) { + t = stack[i]; + stack[i] = stack[j]; + stack[j] = t; + } + } + }; + return PostScriptStack; +}(); + +var PostScriptEvaluator = function PostScriptEvaluatorClosure() { + function PostScriptEvaluator(operators) { + this.operators = operators; + } + + PostScriptEvaluator.prototype = { + execute: function PostScriptEvaluator_execute(initialStack) { + var stack = new PostScriptStack(initialStack); + var counter = 0; + var operators = this.operators; + var length = operators.length; + var operator, a, b; + + while (counter < length) { + operator = operators[counter++]; + + if (typeof operator === 'number') { + stack.push(operator); + continue; + } + + switch (operator) { + case 'jz': + b = stack.pop(); + a = stack.pop(); + + if (!a) { + counter = b; + } + + break; + + case 'j': + a = stack.pop(); + counter = a; + break; + + case 'abs': + a = stack.pop(); + stack.push(Math.abs(a)); + break; + + case 'add': + b = stack.pop(); + a = stack.pop(); + stack.push(a + b); + break; + + case 'and': + b = stack.pop(); + a = stack.pop(); + + if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) { + stack.push(a && b); + } else { + stack.push(a & b); + } + + break; + + case 'atan': + a = stack.pop(); + stack.push(Math.atan(a)); + break; + + case 'bitshift': + b = stack.pop(); + a = stack.pop(); + + if (a > 0) { + stack.push(a << b); + } else { + stack.push(a >> b); + } + + break; + + case 'ceiling': + a = stack.pop(); + stack.push(Math.ceil(a)); + break; + + case 'copy': + a = stack.pop(); + stack.copy(a); + break; + + case 'cos': + a = stack.pop(); + stack.push(Math.cos(a)); + break; + + case 'cvi': + a = stack.pop() | 0; + stack.push(a); + break; + + case 'cvr': + break; + + case 'div': + b = stack.pop(); + a = stack.pop(); + stack.push(a / b); + break; + + case 'dup': + stack.copy(1); + break; + + case 'eq': + b = stack.pop(); + a = stack.pop(); + stack.push(a === b); + break; + + case 'exch': + stack.roll(2, 1); + break; + + case 'exp': + b = stack.pop(); + a = stack.pop(); + stack.push(Math.pow(a, b)); + break; + + case 'false': + stack.push(false); + break; + + case 'floor': + a = stack.pop(); + stack.push(Math.floor(a)); + break; + + case 'ge': + b = stack.pop(); + a = stack.pop(); + stack.push(a >= b); + break; + + case 'gt': + b = stack.pop(); + a = stack.pop(); + stack.push(a > b); + break; + + case 'idiv': + b = stack.pop(); + a = stack.pop(); + stack.push(a / b | 0); + break; + + case 'index': + a = stack.pop(); + stack.index(a); + break; + + case 'le': + b = stack.pop(); + a = stack.pop(); + stack.push(a <= b); + break; + + case 'ln': + a = stack.pop(); + stack.push(Math.log(a)); + break; + + case 'log': + a = stack.pop(); + stack.push(Math.log(a) / Math.LN10); + break; + + case 'lt': + b = stack.pop(); + a = stack.pop(); + stack.push(a < b); + break; + + case 'mod': + b = stack.pop(); + a = stack.pop(); + stack.push(a % b); + break; + + case 'mul': + b = stack.pop(); + a = stack.pop(); + stack.push(a * b); + break; + + case 'ne': + b = stack.pop(); + a = stack.pop(); + stack.push(a !== b); + break; + + case 'neg': + a = stack.pop(); + stack.push(-a); + break; + + case 'not': + a = stack.pop(); + + if ((0, _util.isBool)(a)) { + stack.push(!a); + } else { + stack.push(~a); + } + + break; + + case 'or': + b = stack.pop(); + a = stack.pop(); + + if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) { + stack.push(a || b); + } else { + stack.push(a | b); + } + + break; + + case 'pop': + stack.pop(); + break; + + case 'roll': + b = stack.pop(); + a = stack.pop(); + stack.roll(a, b); + break; + + case 'round': + a = stack.pop(); + stack.push(Math.round(a)); + break; + + case 'sin': + a = stack.pop(); + stack.push(Math.sin(a)); + break; + + case 'sqrt': + a = stack.pop(); + stack.push(Math.sqrt(a)); + break; + + case 'sub': + b = stack.pop(); + a = stack.pop(); + stack.push(a - b); + break; + + case 'true': + stack.push(true); + break; + + case 'truncate': + a = stack.pop(); + a = a < 0 ? Math.ceil(a) : Math.floor(a); + stack.push(a); + break; + + case 'xor': + b = stack.pop(); + a = stack.pop(); + + if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) { + stack.push(a !== b); + } else { + stack.push(a ^ b); + } + + break; + + default: + throw new _util.FormatError("Unknown operator ".concat(operator)); + } + } + + return stack.stack; + } + }; + return PostScriptEvaluator; +}(); + +exports.PostScriptEvaluator = PostScriptEvaluator; + +var PostScriptCompiler = function PostScriptCompilerClosure() { + function AstNode(type) { + this.type = type; + } + + AstNode.prototype.visit = function (visitor) { + (0, _util.unreachable)('abstract method'); + }; + + function AstArgument(index, min, max) { + AstNode.call(this, 'args'); + this.index = index; + this.min = min; + this.max = max; + } + + AstArgument.prototype = Object.create(AstNode.prototype); + + AstArgument.prototype.visit = function (visitor) { + visitor.visitArgument(this); + }; + + function AstLiteral(number) { + AstNode.call(this, 'literal'); + this.number = number; + this.min = number; + this.max = number; + } + + AstLiteral.prototype = Object.create(AstNode.prototype); + + AstLiteral.prototype.visit = function (visitor) { + visitor.visitLiteral(this); + }; + + function AstBinaryOperation(op, arg1, arg2, min, max) { + AstNode.call(this, 'binary'); + this.op = op; + this.arg1 = arg1; + this.arg2 = arg2; + this.min = min; + this.max = max; + } + + AstBinaryOperation.prototype = Object.create(AstNode.prototype); + + AstBinaryOperation.prototype.visit = function (visitor) { + visitor.visitBinaryOperation(this); + }; + + function AstMin(arg, max) { + AstNode.call(this, 'max'); + this.arg = arg; + this.min = arg.min; + this.max = max; + } + + AstMin.prototype = Object.create(AstNode.prototype); + + AstMin.prototype.visit = function (visitor) { + visitor.visitMin(this); + }; + + function AstVariable(index, min, max) { + AstNode.call(this, 'var'); + this.index = index; + this.min = min; + this.max = max; + } + + AstVariable.prototype = Object.create(AstNode.prototype); + + AstVariable.prototype.visit = function (visitor) { + visitor.visitVariable(this); + }; + + function AstVariableDefinition(variable, arg) { + AstNode.call(this, 'definition'); + this.variable = variable; + this.arg = arg; + } + + AstVariableDefinition.prototype = Object.create(AstNode.prototype); + + AstVariableDefinition.prototype.visit = function (visitor) { + visitor.visitVariableDefinition(this); + }; + + function ExpressionBuilderVisitor() { + this.parts = []; + } + + ExpressionBuilderVisitor.prototype = { + visitArgument: function visitArgument(arg) { + this.parts.push('Math.max(', arg.min, ', Math.min(', arg.max, ', src[srcOffset + ', arg.index, ']))'); + }, + visitVariable: function visitVariable(variable) { + this.parts.push('v', variable.index); + }, + visitLiteral: function visitLiteral(literal) { + this.parts.push(literal.number); + }, + visitBinaryOperation: function visitBinaryOperation(operation) { + this.parts.push('('); + operation.arg1.visit(this); + this.parts.push(' ', operation.op, ' '); + operation.arg2.visit(this); + this.parts.push(')'); + }, + visitVariableDefinition: function visitVariableDefinition(definition) { + this.parts.push('var '); + definition.variable.visit(this); + this.parts.push(' = '); + definition.arg.visit(this); + this.parts.push(';'); + }, + visitMin: function visitMin(max) { + this.parts.push('Math.min('); + max.arg.visit(this); + this.parts.push(', ', max.max, ')'); + }, + toString: function toString() { + return this.parts.join(''); + } + }; + + function buildAddOperation(num1, num2) { + if (num2.type === 'literal' && num2.number === 0) { + return num1; + } + + if (num1.type === 'literal' && num1.number === 0) { + return num2; + } + + if (num2.type === 'literal' && num1.type === 'literal') { + return new AstLiteral(num1.number + num2.number); + } + + return new AstBinaryOperation('+', num1, num2, num1.min + num2.min, num1.max + num2.max); + } + + function buildMulOperation(num1, num2) { + if (num2.type === 'literal') { + if (num2.number === 0) { + return new AstLiteral(0); + } else if (num2.number === 1) { + return num1; + } else if (num1.type === 'literal') { + return new AstLiteral(num1.number * num2.number); + } + } + + if (num1.type === 'literal') { + if (num1.number === 0) { + return new AstLiteral(0); + } else if (num1.number === 1) { + return num2; + } + } + + var min = Math.min(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max); + var max = Math.max(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max); + return new AstBinaryOperation('*', num1, num2, min, max); + } + + function buildSubOperation(num1, num2) { + if (num2.type === 'literal') { + if (num2.number === 0) { + return num1; + } else if (num1.type === 'literal') { + return new AstLiteral(num1.number - num2.number); + } + } + + if (num2.type === 'binary' && num2.op === '-' && num1.type === 'literal' && num1.number === 1 && num2.arg1.type === 'literal' && num2.arg1.number === 1) { + return num2.arg2; + } + + return new AstBinaryOperation('-', num1, num2, num1.min - num2.max, num1.max - num2.min); + } + + function buildMinOperation(num1, max) { + if (num1.min >= max) { + return new AstLiteral(max); + } else if (num1.max <= max) { + return num1; + } + + return new AstMin(num1, max); + } + + function PostScriptCompiler() {} + + PostScriptCompiler.prototype = { + compile: function PostScriptCompiler_compile(code, domain, range) { + var stack = []; + var i, ii; + var instructions = []; + var inputSize = domain.length >> 1, + outputSize = range.length >> 1; + var lastRegister = 0; + var n, j; + var num1, num2, ast1, ast2, tmpVar, item; + + for (i = 0; i < inputSize; i++) { + stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1])); + } + + for (i = 0, ii = code.length; i < ii; i++) { + item = code[i]; + + if (typeof item === 'number') { + stack.push(new AstLiteral(item)); + continue; + } + + switch (item) { + case 'add': + if (stack.length < 2) { + return null; + } + + num2 = stack.pop(); + num1 = stack.pop(); + stack.push(buildAddOperation(num1, num2)); + break; + + case 'cvr': + if (stack.length < 1) { + return null; + } + + break; + + case 'mul': + if (stack.length < 2) { + return null; + } + + num2 = stack.pop(); + num1 = stack.pop(); + stack.push(buildMulOperation(num1, num2)); + break; + + case 'sub': + if (stack.length < 2) { + return null; + } + + num2 = stack.pop(); + num1 = stack.pop(); + stack.push(buildSubOperation(num1, num2)); + break; + + case 'exch': + if (stack.length < 2) { + return null; + } + + ast1 = stack.pop(); + ast2 = stack.pop(); + stack.push(ast1, ast2); + break; + + case 'pop': + if (stack.length < 1) { + return null; + } + + stack.pop(); + break; + + case 'index': + if (stack.length < 1) { + return null; + } + + num1 = stack.pop(); + + if (num1.type !== 'literal') { + return null; + } + + n = num1.number; + + if (n < 0 || !Number.isInteger(n) || stack.length < n) { + return null; + } + + ast1 = stack[stack.length - n - 1]; + + if (ast1.type === 'literal' || ast1.type === 'var') { + stack.push(ast1); + break; + } + + tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max); + stack[stack.length - n - 1] = tmpVar; + stack.push(tmpVar); + instructions.push(new AstVariableDefinition(tmpVar, ast1)); + break; + + case 'dup': + if (stack.length < 1) { + return null; + } + + if (typeof code[i + 1] === 'number' && code[i + 2] === 'gt' && code[i + 3] === i + 7 && code[i + 4] === 'jz' && code[i + 5] === 'pop' && code[i + 6] === code[i + 1]) { + num1 = stack.pop(); + stack.push(buildMinOperation(num1, code[i + 1])); + i += 6; + break; + } + + ast1 = stack[stack.length - 1]; + + if (ast1.type === 'literal' || ast1.type === 'var') { + stack.push(ast1); + break; + } + + tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max); + stack[stack.length - 1] = tmpVar; + stack.push(tmpVar); + instructions.push(new AstVariableDefinition(tmpVar, ast1)); + break; + + case 'roll': + if (stack.length < 2) { + return null; + } + + num2 = stack.pop(); + num1 = stack.pop(); + + if (num2.type !== 'literal' || num1.type !== 'literal') { + return null; + } + + j = num2.number; + n = num1.number; + + if (n <= 0 || !Number.isInteger(n) || !Number.isInteger(j) || stack.length < n) { + return null; + } + + j = (j % n + n) % n; + + if (j === 0) { + break; + } + + Array.prototype.push.apply(stack, stack.splice(stack.length - n, n - j)); + break; + + default: + return null; + } + } + + if (stack.length !== outputSize) { + return null; + } + + var result = []; + instructions.forEach(function (instruction) { + var statementBuilder = new ExpressionBuilderVisitor(); + instruction.visit(statementBuilder); + result.push(statementBuilder.toString()); + }); + stack.forEach(function (expr, i) { + var statementBuilder = new ExpressionBuilderVisitor(); + expr.visit(statementBuilder); + var min = range[i * 2], + max = range[i * 2 + 1]; + var out = [statementBuilder.toString()]; + + if (min > expr.min) { + out.unshift('Math.max(', min, ', '); + out.push(')'); + } + + if (max < expr.max) { + out.unshift('Math.min(', max, ', '); + out.push(')'); + } + + out.unshift('dest[destOffset + ', i, '] = '); + out.push(';'); + result.push(out.join('')); + }); + return result.join('\n'); + } + }; + return PostScriptCompiler; +}(); + +exports.PostScriptCompiler = PostScriptCompiler; + +/***/ }), +/* 186 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PostScriptParser = exports.PostScriptLexer = void 0; + +var _util = __w_pdfjs_require__(6); + +var _primitives = __w_pdfjs_require__(155); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var PostScriptParser = +/*#__PURE__*/ +function () { + function PostScriptParser(lexer) { + _classCallCheck(this, PostScriptParser); + + this.lexer = lexer; + this.operators = []; + this.token = null; + this.prev = null; + } + + _createClass(PostScriptParser, [{ + key: "nextToken", + value: function nextToken() { + this.prev = this.token; + this.token = this.lexer.getToken(); + } + }, { + key: "accept", + value: function accept(type) { + if (this.token.type === type) { + this.nextToken(); + return true; + } + + return false; + } + }, { + key: "expect", + value: function expect(type) { + if (this.accept(type)) { + return true; + } + + throw new _util.FormatError("Unexpected symbol: found ".concat(this.token.type, " expected ").concat(type, ".")); + } + }, { + key: "parse", + value: function parse() { + this.nextToken(); + this.expect(PostScriptTokenTypes.LBRACE); + this.parseBlock(); + this.expect(PostScriptTokenTypes.RBRACE); + return this.operators; + } + }, { + key: "parseBlock", + value: function parseBlock() { + while (true) { + if (this.accept(PostScriptTokenTypes.NUMBER)) { + this.operators.push(this.prev.value); + } else if (this.accept(PostScriptTokenTypes.OPERATOR)) { + this.operators.push(this.prev.value); + } else if (this.accept(PostScriptTokenTypes.LBRACE)) { + this.parseCondition(); + } else { + return; + } + } + } + }, { + key: "parseCondition", + value: function parseCondition() { + var conditionLocation = this.operators.length; + this.operators.push(null, null); + this.parseBlock(); + this.expect(PostScriptTokenTypes.RBRACE); + + if (this.accept(PostScriptTokenTypes.IF)) { + this.operators[conditionLocation] = this.operators.length; + this.operators[conditionLocation + 1] = 'jz'; + } else if (this.accept(PostScriptTokenTypes.LBRACE)) { + var jumpLocation = this.operators.length; + this.operators.push(null, null); + var endOfTrue = this.operators.length; + this.parseBlock(); + this.expect(PostScriptTokenTypes.RBRACE); + this.expect(PostScriptTokenTypes.IFELSE); + this.operators[jumpLocation] = this.operators.length; + this.operators[jumpLocation + 1] = 'j'; + this.operators[conditionLocation] = endOfTrue; + this.operators[conditionLocation + 1] = 'jz'; + } else { + throw new _util.FormatError('PS Function: error parsing conditional.'); + } + } + }]); + + return PostScriptParser; +}(); + +exports.PostScriptParser = PostScriptParser; +var PostScriptTokenTypes = { + LBRACE: 0, + RBRACE: 1, + NUMBER: 2, + OPERATOR: 3, + IF: 4, + IFELSE: 5 +}; + +var PostScriptToken = function PostScriptTokenClosure() { + var opCache = Object.create(null); + + var PostScriptToken = + /*#__PURE__*/ + function () { + function PostScriptToken(type, value) { + _classCallCheck(this, PostScriptToken); + + this.type = type; + this.value = value; + } + + _createClass(PostScriptToken, null, [{ + key: "getOperator", + value: function getOperator(op) { + var opValue = opCache[op]; + + if (opValue) { + return opValue; + } + + return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op); + } + }, { + key: "LBRACE", + get: function get() { + return (0, _util.shadow)(this, 'LBRACE', new PostScriptToken(PostScriptTokenTypes.LBRACE, '{')); + } + }, { + key: "RBRACE", + get: function get() { + return (0, _util.shadow)(this, 'RBRACE', new PostScriptToken(PostScriptTokenTypes.RBRACE, '}')); + } + }, { + key: "IF", + get: function get() { + return (0, _util.shadow)(this, 'IF', new PostScriptToken(PostScriptTokenTypes.IF, 'IF')); + } + }, { + key: "IFELSE", + get: function get() { + return (0, _util.shadow)(this, 'IFELSE', new PostScriptToken(PostScriptTokenTypes.IFELSE, 'IFELSE')); + } + }]); + + return PostScriptToken; + }(); + + return PostScriptToken; +}(); + +var PostScriptLexer = +/*#__PURE__*/ +function () { + function PostScriptLexer(stream) { + _classCallCheck(this, PostScriptLexer); + + this.stream = stream; + this.nextChar(); + this.strBuf = []; + } + + _createClass(PostScriptLexer, [{ + key: "nextChar", + value: function nextChar() { + return this.currentChar = this.stream.getByte(); + } + }, { + key: "getToken", + value: function getToken() { + var comment = false; + var ch = this.currentChar; + + while (true) { + if (ch < 0) { + return _primitives.EOF; + } + + if (comment) { + if (ch === 0x0A || ch === 0x0D) { + comment = false; + } + } else if (ch === 0x25) { + comment = true; + } else if (!(0, _util.isSpace)(ch)) { + break; + } + + ch = this.nextChar(); + } + + switch (ch | 0) { + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x2B: + case 0x2D: + case 0x2E: + return new PostScriptToken(PostScriptTokenTypes.NUMBER, this.getNumber()); + + case 0x7B: + this.nextChar(); + return PostScriptToken.LBRACE; + + case 0x7D: + this.nextChar(); + return PostScriptToken.RBRACE; + } + + var strBuf = this.strBuf; + strBuf.length = 0; + strBuf[0] = String.fromCharCode(ch); + + while ((ch = this.nextChar()) >= 0 && (ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A)) { + strBuf.push(String.fromCharCode(ch)); + } + + var str = strBuf.join(''); + + switch (str.toLowerCase()) { + case 'if': + return PostScriptToken.IF; + + case 'ifelse': + return PostScriptToken.IFELSE; + + default: + return PostScriptToken.getOperator(str); + } + } + }, { + key: "getNumber", + value: function getNumber() { + var ch = this.currentChar; + var strBuf = this.strBuf; + strBuf.length = 0; + strBuf[0] = String.fromCharCode(ch); + + while ((ch = this.nextChar()) >= 0) { + if (ch >= 0x30 && ch <= 0x39 || ch === 0x2D || ch === 0x2E) { + strBuf.push(String.fromCharCode(ch)); + } else { + break; + } + } + + var value = parseFloat(strBuf.join('')); + + if (isNaN(value)) { + throw new _util.FormatError("Invalid floating point number: ".concat(value)); + } + + return value; + } + }]); + + return PostScriptLexer; +}(); + +exports.PostScriptLexer = PostScriptLexer; + +/***/ }), +/* 187 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.MurmurHash3_64 = void 0; + +var _util = __w_pdfjs_require__(6); + +var MurmurHash3_64 = function MurmurHash3_64Closure(seed) { + var MASK_HIGH = 0xffff0000; + var MASK_LOW = 0xffff; + + function MurmurHash3_64(seed) { + var SEED = 0xc3d2e1f0; + this.h1 = seed ? seed & 0xffffffff : SEED; + this.h2 = seed ? seed & 0xffffffff : SEED; + } + + MurmurHash3_64.prototype = { + update: function MurmurHash3_64_update(input) { + var data, length; + + if ((0, _util.isString)(input)) { + data = new Uint8Array(input.length * 2); + length = 0; + + for (var i = 0, ii = input.length; i < ii; i++) { + var code = input.charCodeAt(i); + + if (code <= 0xff) { + data[length++] = code; + } else { + data[length++] = code >>> 8; + data[length++] = code & 0xff; + } + } + } else if ((0, _util.isArrayBuffer)(input)) { + data = input; + length = data.byteLength; + } else { + throw new Error('Wrong data format in MurmurHash3_64_update. ' + 'Input must be a string or array.'); + } + + var blockCounts = length >> 2; + var tailLength = length - blockCounts * 4; + var dataUint32 = new Uint32Array(data.buffer, 0, blockCounts); + var k1 = 0; + var k2 = 0; + var h1 = this.h1; + var h2 = this.h2; + var C1 = 0xcc9e2d51; + var C2 = 0x1b873593; + var C1_LOW = C1 & MASK_LOW; + var C2_LOW = C2 & MASK_LOW; + + for (var _i = 0; _i < blockCounts; _i++) { + if (_i & 1) { + k1 = dataUint32[_i]; + k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW; + k1 = k1 << 15 | k1 >>> 17; + k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW; + h1 ^= k1; + h1 = h1 << 13 | h1 >>> 19; + h1 = h1 * 5 + 0xe6546b64; + } else { + k2 = dataUint32[_i]; + k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW; + k2 = k2 << 15 | k2 >>> 17; + k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW; + h2 ^= k2; + h2 = h2 << 13 | h2 >>> 19; + h2 = h2 * 5 + 0xe6546b64; + } + } + + k1 = 0; + + switch (tailLength) { + case 3: + k1 ^= data[blockCounts * 4 + 2] << 16; + + case 2: + k1 ^= data[blockCounts * 4 + 1] << 8; + + case 1: + k1 ^= data[blockCounts * 4]; + k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW; + k1 = k1 << 15 | k1 >>> 17; + k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW; + + if (blockCounts & 1) { + h1 ^= k1; + } else { + h2 ^= k1; + } + + } + + this.h1 = h1; + this.h2 = h2; + return this; + }, + hexdigest: function MurmurHash3_64_hexdigest() { + var h1 = this.h1; + var h2 = this.h2; + h1 ^= h2 >>> 1; + h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW; + h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16; + h1 ^= h2 >>> 1; + h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW; + h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16; + h1 ^= h2 >>> 1; + + for (var i = 0, arr = [h1, h2], str = ''; i < arr.length; i++) { + var hex = (arr[i] >>> 0).toString(16); + + while (hex.length < 8) { + hex = '0' + hex; + } + + str += hex; + } + + return str; + } + }; + return MurmurHash3_64; +}(); + +exports.MurmurHash3_64 = MurmurHash3_64; + +/***/ }), +/* 188 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PDFImage = void 0; + +var _util = __w_pdfjs_require__(6); + +var _primitives = __w_pdfjs_require__(155); + +var _colorspace = __w_pdfjs_require__(168); + +var _stream = __w_pdfjs_require__(157); + +var _jpeg_stream = __w_pdfjs_require__(163); + +var _jpx = __w_pdfjs_require__(166); + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } + +function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +var PDFImage = function PDFImageClosure() { + function handleImageData(image, nativeDecoder) { + if (nativeDecoder && nativeDecoder.canDecode(image)) { + return nativeDecoder.decode(image).catch(function (reason) { + (0, _util.warn)('Native image decoding failed -- trying to recover: ' + (reason && reason.message)); + return image; + }); + } + + return Promise.resolve(image); + } + + function decodeAndClamp(value, addend, coefficient, max) { + value = addend + value * coefficient; + return value < 0 ? 0 : value > max ? max : value; + } + + function resizeImageMask(src, bpc, w1, h1, w2, h2) { + var length = w2 * h2; + var dest = bpc <= 8 ? new Uint8Array(length) : bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length); + var xRatio = w1 / w2; + var yRatio = h1 / h2; + var i, + j, + py, + newIndex = 0, + oldIndex; + var xScaled = new Uint16Array(w2); + var w1Scanline = w1; + + for (i = 0; i < w2; i++) { + xScaled[i] = Math.floor(i * xRatio); + } + + for (i = 0; i < h2; i++) { + py = Math.floor(i * yRatio) * w1Scanline; + + for (j = 0; j < w2; j++) { + oldIndex = py + xScaled[j]; + dest[newIndex++] = src[oldIndex]; + } + } + + return dest; + } + + function PDFImage(_ref) { + var xref = _ref.xref, + res = _ref.res, + image = _ref.image, + _ref$isInline = _ref.isInline, + isInline = _ref$isInline === void 0 ? false : _ref$isInline, + _ref$smask = _ref.smask, + smask = _ref$smask === void 0 ? null : _ref$smask, + _ref$mask = _ref.mask, + mask = _ref$mask === void 0 ? null : _ref$mask, + _ref$isMask = _ref.isMask, + isMask = _ref$isMask === void 0 ? false : _ref$isMask, + pdfFunctionFactory = _ref.pdfFunctionFactory; + this.image = image; + var dict = image.dict; + var filter = dict.get('Filter'); + + if ((0, _primitives.isName)(filter)) { + switch (filter.name) { + case 'JPXDecode': + var jpxImage = new _jpx.JpxImage(); + jpxImage.parseImageProperties(image.stream); + image.stream.reset(); + image.width = jpxImage.width; + image.height = jpxImage.height; + image.bitsPerComponent = jpxImage.bitsPerComponent; + image.numComps = jpxImage.componentsCount; + break; + + case 'JBIG2Decode': + image.bitsPerComponent = 1; + image.numComps = 1; + break; + } + } + + var width = dict.get('Width', 'W'); + var height = dict.get('Height', 'H'); + + if (Number.isInteger(image.width) && image.width > 0 && Number.isInteger(image.height) && image.height > 0 && (image.width !== width || image.height !== height)) { + (0, _util.warn)('PDFImage - using the Width/Height of the image data, ' + 'rather than the image dictionary.'); + width = image.width; + height = image.height; + } + + if (width < 1 || height < 1) { + throw new _util.FormatError("Invalid image width: ".concat(width, " or ") + "height: ".concat(height)); + } + + this.width = width; + this.height = height; + this.interpolate = dict.get('Interpolate', 'I') || false; + this.imageMask = dict.get('ImageMask', 'IM') || false; + this.matte = dict.get('Matte') || false; + var bitsPerComponent = image.bitsPerComponent; + + if (!bitsPerComponent) { + bitsPerComponent = dict.get('BitsPerComponent', 'BPC'); + + if (!bitsPerComponent) { + if (this.imageMask) { + bitsPerComponent = 1; + } else { + throw new _util.FormatError("Bits per component missing in image: ".concat(this.imageMask)); + } + } + } + + this.bpc = bitsPerComponent; + + if (!this.imageMask) { + var colorSpace = dict.get('ColorSpace', 'CS'); + + if (!colorSpace) { + (0, _util.info)('JPX images (which do not require color spaces)'); + + switch (image.numComps) { + case 1: + colorSpace = _primitives.Name.get('DeviceGray'); + break; + + case 3: + colorSpace = _primitives.Name.get('DeviceRGB'); + break; + + case 4: + colorSpace = _primitives.Name.get('DeviceCMYK'); + break; + + default: + throw new Error("JPX images with ".concat(image.numComps, " ") + 'color components not supported.'); + } + } + + var resources = isInline ? res : null; + this.colorSpace = _colorspace.ColorSpace.parse(colorSpace, xref, resources, pdfFunctionFactory); + this.numComps = this.colorSpace.numComps; + } + + this.decode = dict.getArray('Decode', 'D'); + this.needsDecode = false; + + if (this.decode && (this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode, bitsPerComponent) || isMask && !_colorspace.ColorSpace.isDefaultDecode(this.decode, 1))) { + this.needsDecode = true; + var max = (1 << bitsPerComponent) - 1; + this.decodeCoefficients = []; + this.decodeAddends = []; + var isIndexed = this.colorSpace && this.colorSpace.name === 'Indexed'; + + for (var i = 0, j = 0; i < this.decode.length; i += 2, ++j) { + var dmin = this.decode[i]; + var dmax = this.decode[i + 1]; + this.decodeCoefficients[j] = isIndexed ? (dmax - dmin) / max : dmax - dmin; + this.decodeAddends[j] = isIndexed ? dmin : max * dmin; + } + } + + if (smask) { + this.smask = new PDFImage({ + xref: xref, + res: res, + image: smask, + isInline: isInline, + pdfFunctionFactory: pdfFunctionFactory + }); + } else if (mask) { + if ((0, _primitives.isStream)(mask)) { + var maskDict = mask.dict, + imageMask = maskDict.get('ImageMask', 'IM'); + + if (!imageMask) { + (0, _util.warn)('Ignoring /Mask in image without /ImageMask.'); + } else { + this.mask = new PDFImage({ + xref: xref, + res: res, + image: mask, + isInline: isInline, + isMask: true, + pdfFunctionFactory: pdfFunctionFactory + }); + } + } else { + this.mask = mask; + } + } + } + + PDFImage.buildImage = function (_ref2) { + var handler = _ref2.handler, + xref = _ref2.xref, + res = _ref2.res, + image = _ref2.image, + _ref2$isInline = _ref2.isInline, + isInline = _ref2$isInline === void 0 ? false : _ref2$isInline, + _ref2$nativeDecoder = _ref2.nativeDecoder, + nativeDecoder = _ref2$nativeDecoder === void 0 ? null : _ref2$nativeDecoder, + pdfFunctionFactory = _ref2.pdfFunctionFactory; + var imagePromise = handleImageData(image, nativeDecoder); + var smaskPromise; + var maskPromise; + var smask = image.dict.get('SMask'); + var mask = image.dict.get('Mask'); + + if (smask) { + smaskPromise = handleImageData(smask, nativeDecoder); + maskPromise = Promise.resolve(null); + } else { + smaskPromise = Promise.resolve(null); + + if (mask) { + if ((0, _primitives.isStream)(mask)) { + maskPromise = handleImageData(mask, nativeDecoder); + } else if (Array.isArray(mask)) { + maskPromise = Promise.resolve(mask); + } else { + (0, _util.warn)('Unsupported mask format.'); + maskPromise = Promise.resolve(null); + } + } else { + maskPromise = Promise.resolve(null); + } + } + + return Promise.all([imagePromise, smaskPromise, maskPromise]).then(function (_ref3) { + var _ref4 = _slicedToArray(_ref3, 3), + imageData = _ref4[0], + smaskData = _ref4[1], + maskData = _ref4[2]; + + return new PDFImage({ + xref: xref, + res: res, + image: imageData, + isInline: isInline, + smask: smaskData, + mask: maskData, + pdfFunctionFactory: pdfFunctionFactory + }); + }); + }; + + PDFImage.createMask = function (_ref5) { + var imgArray = _ref5.imgArray, + width = _ref5.width, + height = _ref5.height, + imageIsFromDecodeStream = _ref5.imageIsFromDecodeStream, + inverseDecode = _ref5.inverseDecode; + var computedLength = (width + 7 >> 3) * height; + var actualLength = imgArray.byteLength; + var haveFullData = computedLength === actualLength; + var data, i; + + if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) { + data = imgArray; + } else if (!inverseDecode) { + data = new Uint8ClampedArray(actualLength); + data.set(imgArray); + } else { + data = new Uint8ClampedArray(computedLength); + data.set(imgArray); + + for (i = actualLength; i < computedLength; i++) { + data[i] = 0xff; + } + } + + if (inverseDecode) { + for (i = 0; i < actualLength; i++) { + data[i] ^= 0xFF; + } + } + + return { + data: data, + width: width, + height: height + }; + }; + + PDFImage.prototype = { + get drawWidth() { + return Math.max(this.width, this.smask && this.smask.width || 0, this.mask && this.mask.width || 0); + }, + + get drawHeight() { + return Math.max(this.height, this.smask && this.smask.height || 0, this.mask && this.mask.height || 0); + }, + + decodeBuffer: function decodeBuffer(buffer) { + var bpc = this.bpc; + var numComps = this.numComps; + var decodeAddends = this.decodeAddends; + var decodeCoefficients = this.decodeCoefficients; + var max = (1 << bpc) - 1; + var i, ii; + + if (bpc === 1) { + for (i = 0, ii = buffer.length; i < ii; i++) { + buffer[i] = +!buffer[i]; + } + + return; + } + + var index = 0; + + for (i = 0, ii = this.width * this.height; i < ii; i++) { + for (var j = 0; j < numComps; j++) { + buffer[index] = decodeAndClamp(buffer[index], decodeAddends[j], decodeCoefficients[j], max); + index++; + } + } + }, + getComponents: function getComponents(buffer) { + var bpc = this.bpc; + + if (bpc === 8) { + return buffer; + } + + var width = this.width; + var height = this.height; + var numComps = this.numComps; + var length = width * height * numComps; + var bufferPos = 0; + var output = bpc <= 8 ? new Uint8Array(length) : bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length); + var rowComps = width * numComps; + var max = (1 << bpc) - 1; + var i = 0, + ii, + buf; + + if (bpc === 1) { + var mask, loop1End, loop2End; + + for (var j = 0; j < height; j++) { + loop1End = i + (rowComps & ~7); + loop2End = i + rowComps; + + while (i < loop1End) { + buf = buffer[bufferPos++]; + output[i] = buf >> 7 & 1; + output[i + 1] = buf >> 6 & 1; + output[i + 2] = buf >> 5 & 1; + output[i + 3] = buf >> 4 & 1; + output[i + 4] = buf >> 3 & 1; + output[i + 5] = buf >> 2 & 1; + output[i + 6] = buf >> 1 & 1; + output[i + 7] = buf & 1; + i += 8; + } + + if (i < loop2End) { + buf = buffer[bufferPos++]; + mask = 128; + + while (i < loop2End) { + output[i++] = +!!(buf & mask); + mask >>= 1; + } + } + } + } else { + var bits = 0; + buf = 0; + + for (i = 0, ii = length; i < ii; ++i) { + if (i % rowComps === 0) { + buf = 0; + bits = 0; + } + + while (bits < bpc) { + buf = buf << 8 | buffer[bufferPos++]; + bits += 8; + } + + var remainingBits = bits - bpc; + var value = buf >> remainingBits; + output[i] = value < 0 ? 0 : value > max ? max : value; + buf = buf & (1 << remainingBits) - 1; + bits = remainingBits; + } + } + + return output; + }, + fillOpacity: function fillOpacity(rgbaBuf, width, height, actualHeight, image) { + var smask = this.smask; + var mask = this.mask; + var alphaBuf, sw, sh, i, ii, j; + + if (smask) { + sw = smask.width; + sh = smask.height; + alphaBuf = new Uint8ClampedArray(sw * sh); + smask.fillGrayBuffer(alphaBuf); + + if (sw !== width || sh !== height) { + alphaBuf = resizeImageMask(alphaBuf, smask.bpc, sw, sh, width, height); + } + } else if (mask) { + if (mask instanceof PDFImage) { + sw = mask.width; + sh = mask.height; + alphaBuf = new Uint8ClampedArray(sw * sh); + mask.numComps = 1; + mask.fillGrayBuffer(alphaBuf); + + for (i = 0, ii = sw * sh; i < ii; ++i) { + alphaBuf[i] = 255 - alphaBuf[i]; + } + + if (sw !== width || sh !== height) { + alphaBuf = resizeImageMask(alphaBuf, mask.bpc, sw, sh, width, height); + } + } else if (Array.isArray(mask)) { + alphaBuf = new Uint8ClampedArray(width * height); + var numComps = this.numComps; + + for (i = 0, ii = width * height; i < ii; ++i) { + var opacity = 0; + var imageOffset = i * numComps; + + for (j = 0; j < numComps; ++j) { + var color = image[imageOffset + j]; + var maskOffset = j * 2; + + if (color < mask[maskOffset] || color > mask[maskOffset + 1]) { + opacity = 255; + break; + } + } + + alphaBuf[i] = opacity; + } + } else { + throw new _util.FormatError('Unknown mask format.'); + } + } + + if (alphaBuf) { + for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) { + rgbaBuf[j] = alphaBuf[i]; + } + } else { + for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) { + rgbaBuf[j] = 255; + } + } + }, + undoPreblend: function undoPreblend(buffer, width, height) { + var matte = this.smask && this.smask.matte; + + if (!matte) { + return; + } + + var matteRgb = this.colorSpace.getRgb(matte, 0); + var matteR = matteRgb[0]; + var matteG = matteRgb[1]; + var matteB = matteRgb[2]; + var length = width * height * 4; + + for (var i = 0; i < length; i += 4) { + var alpha = buffer[i + 3]; + + if (alpha === 0) { + buffer[i] = 255; + buffer[i + 1] = 255; + buffer[i + 2] = 255; + continue; + } + + var k = 255 / alpha; + buffer[i] = (buffer[i] - matteR) * k + matteR; + buffer[i + 1] = (buffer[i + 1] - matteG) * k + matteG; + buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB; + } + }, + createImageData: function createImageData() { + var forceRGBA = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var drawWidth = this.drawWidth; + var drawHeight = this.drawHeight; + var imgData = { + width: drawWidth, + height: drawHeight, + kind: 0, + data: null + }; + var numComps = this.numComps; + var originalWidth = this.width; + var originalHeight = this.height; + var bpc = this.bpc; + var rowBytes = originalWidth * numComps * bpc + 7 >> 3; + var imgArray; + + if (!forceRGBA) { + var kind; + + if (this.colorSpace.name === 'DeviceGray' && bpc === 1) { + kind = _util.ImageKind.GRAYSCALE_1BPP; + } else if (this.colorSpace.name === 'DeviceRGB' && bpc === 8 && !this.needsDecode) { + kind = _util.ImageKind.RGB_24BPP; + } + + if (kind && !this.smask && !this.mask && drawWidth === originalWidth && drawHeight === originalHeight) { + imgData.kind = kind; + imgArray = this.getImageBytes(originalHeight * rowBytes); + + if (this.image instanceof _stream.DecodeStream) { + imgData.data = imgArray; + } else { + var newArray = new Uint8ClampedArray(imgArray.length); + newArray.set(imgArray); + imgData.data = newArray; + } + + if (this.needsDecode) { + (0, _util.assert)(kind === _util.ImageKind.GRAYSCALE_1BPP, 'PDFImage.createImageData: The image must be grayscale.'); + var buffer = imgData.data; + + for (var i = 0, ii = buffer.length; i < ii; i++) { + buffer[i] ^= 0xff; + } + } + + return imgData; + } + + if (this.image instanceof _jpeg_stream.JpegStream && !this.smask && !this.mask) { + var imageLength = originalHeight * rowBytes; + + switch (this.colorSpace.name) { + case 'DeviceGray': + imageLength *= 3; + + case 'DeviceRGB': + case 'DeviceCMYK': + imgData.kind = _util.ImageKind.RGB_24BPP; + imgData.data = this.getImageBytes(imageLength, drawWidth, drawHeight, true); + return imgData; + } + } + } + + imgArray = this.getImageBytes(originalHeight * rowBytes); + var actualHeight = 0 | imgArray.length / rowBytes * drawHeight / originalHeight; + var comps = this.getComponents(imgArray); + var alpha01, maybeUndoPreblend; + + if (!forceRGBA && !this.smask && !this.mask) { + imgData.kind = _util.ImageKind.RGB_24BPP; + imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 3); + alpha01 = 0; + maybeUndoPreblend = false; + } else { + imgData.kind = _util.ImageKind.RGBA_32BPP; + imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 4); + alpha01 = 1; + maybeUndoPreblend = true; + this.fillOpacity(imgData.data, drawWidth, drawHeight, actualHeight, comps); + } + + if (this.needsDecode) { + this.decodeBuffer(comps); + } + + this.colorSpace.fillRgb(imgData.data, originalWidth, originalHeight, drawWidth, drawHeight, actualHeight, bpc, comps, alpha01); + + if (maybeUndoPreblend) { + this.undoPreblend(imgData.data, drawWidth, actualHeight); + } + + return imgData; + }, + fillGrayBuffer: function fillGrayBuffer(buffer) { + var numComps = this.numComps; + + if (numComps !== 1) { + throw new _util.FormatError("Reading gray scale from a color image: ".concat(numComps)); + } + + var width = this.width; + var height = this.height; + var bpc = this.bpc; + var rowBytes = width * numComps * bpc + 7 >> 3; + var imgArray = this.getImageBytes(height * rowBytes); + var comps = this.getComponents(imgArray); + var i, length; + + if (bpc === 1) { + length = width * height; + + if (this.needsDecode) { + for (i = 0; i < length; ++i) { + buffer[i] = comps[i] - 1 & 255; + } + } else { + for (i = 0; i < length; ++i) { + buffer[i] = -comps[i] & 255; + } + } + + return; + } + + if (this.needsDecode) { + this.decodeBuffer(comps); + } + + length = width * height; + var scale = 255 / ((1 << bpc) - 1); + + for (i = 0; i < length; ++i) { + buffer[i] = scale * comps[i]; + } + }, + getImageBytes: function getImageBytes(length, drawWidth, drawHeight) { + var forceRGB = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + this.image.reset(); + this.image.drawWidth = drawWidth || this.width; + this.image.drawHeight = drawHeight || this.height; + this.image.forceRGB = !!forceRGB; + return this.image.getBytes(length, true); + } + }; + return PDFImage; +}(); + +exports.PDFImage = PDFImage; + +/***/ }), +/* 189 */ +/***/ (function(module, exports, __w_pdfjs_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.MessageHandler = MessageHandler; + +var _regenerator = _interopRequireDefault(__w_pdfjs_require__(2)); + +var _util = __w_pdfjs_require__(6); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function resolveCall(_x, _x2) { + return _resolveCall.apply(this, arguments); +} + +function _resolveCall() { + _resolveCall = _asyncToGenerator( + /*#__PURE__*/ + _regenerator.default.mark(function _callee(fn, args) { + var thisArg, + _args = arguments; + return _regenerator.default.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + thisArg = _args.length > 2 && _args[2] !== undefined ? _args[2] : null; + + if (fn) { + _context.next = 3; + break; + } + + return _context.abrupt("return"); + + case 3: + return _context.abrupt("return", fn.apply(thisArg, args)); + + case 4: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + return _resolveCall.apply(this, arguments); +} + +function wrapReason(reason) { + if (_typeof(reason) !== 'object') { + return reason; + } + + switch (reason.name) { + case 'AbortException': + return new _util.AbortException(reason.message); + + case 'MissingPDFException': + return new _util.MissingPDFException(reason.message); + + case 'UnexpectedResponseException': + return new _util.UnexpectedResponseException(reason.message, reason.status); + + default: + return new _util.UnknownErrorException(reason.message, reason.details); + } +} + +function makeReasonSerializable(reason) { + if (!(reason instanceof Error) || reason instanceof _util.AbortException || reason instanceof _util.MissingPDFException || reason instanceof _util.UnexpectedResponseException || reason instanceof _util.UnknownErrorException) { + return reason; + } + + return new _util.UnknownErrorException(reason.message, reason.toString()); +} + +function resolveOrReject(capability, success, reason) { + if (success) { + capability.resolve(); + } else { + capability.reject(reason); + } +} + +function finalize(promise) { + return Promise.resolve(promise).catch(function () {}); +} + +function MessageHandler(sourceName, targetName, comObj) { + var _this = this; + + this.sourceName = sourceName; + this.targetName = targetName; + this.comObj = comObj; + this.callbackId = 1; + this.streamId = 1; + this.postMessageTransfers = true; + this.streamSinks = Object.create(null); + this.streamControllers = Object.create(null); + var callbacksCapabilities = this.callbacksCapabilities = Object.create(null); + var ah = this.actionHandler = Object.create(null); + + this._onComObjOnMessage = function (event) { + var data = event.data; + + if (data.targetName !== _this.sourceName) { + return; + } + + if (data.stream) { + _this._processStreamMessage(data); + } else if (data.isReply) { + var callbackId = data.callbackId; + + if (data.callbackId in callbacksCapabilities) { + var callback = callbacksCapabilities[callbackId]; + delete callbacksCapabilities[callbackId]; + + if ('error' in data) { + callback.reject(wrapReason(data.error)); + } else { + callback.resolve(data.data); + } + } else { + throw new Error("Cannot resolve callback ".concat(callbackId)); + } + } else if (data.action in ah) { + var action = ah[data.action]; + + if (data.callbackId) { + var _sourceName = _this.sourceName; + var _targetName = data.sourceName; + Promise.resolve().then(function () { + return action[0].call(action[1], data.data); + }).then(function (result) { + comObj.postMessage({ + sourceName: _sourceName, + targetName: _targetName, + isReply: true, + callbackId: data.callbackId, + data: result + }); + }, function (reason) { + comObj.postMessage({ + sourceName: _sourceName, + targetName: _targetName, + isReply: true, + callbackId: data.callbackId, + error: makeReasonSerializable(reason) + }); + }); + } else if (data.streamId) { + _this._createStreamSink(data); + } else { + action[0].call(action[1], data.data); + } + } else { + throw new Error("Unknown action from worker: ".concat(data.action)); + } + }; + + comObj.addEventListener('message', this._onComObjOnMessage); +} + +MessageHandler.prototype = { + on: function on(actionName, handler, scope) { + var ah = this.actionHandler; + + if (ah[actionName]) { + throw new Error("There is already an actionName called \"".concat(actionName, "\"")); + } + + ah[actionName] = [handler, scope]; + }, + send: function send(actionName, data, transfers) { + var message = { + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + data: data + }; + this.postMessage(message, transfers); + }, + sendWithPromise: function sendWithPromise(actionName, data, transfers) { + var callbackId = this.callbackId++; + var message = { + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + data: data, + callbackId: callbackId + }; + var capability = (0, _util.createPromiseCapability)(); + this.callbacksCapabilities[callbackId] = capability; + + try { + this.postMessage(message, transfers); + } catch (e) { + capability.reject(e); + } + + return capability.promise; + }, + sendWithStream: function sendWithStream(actionName, data, queueingStrategy, transfers) { + var _this2 = this; + + var streamId = this.streamId++; + var sourceName = this.sourceName; + var targetName = this.targetName; + return new _util.ReadableStream({ + start: function start(controller) { + var startCapability = (0, _util.createPromiseCapability)(); + _this2.streamControllers[streamId] = { + controller: controller, + startCall: startCapability, + isClosed: false + }; + + _this2.postMessage({ + sourceName: sourceName, + targetName: targetName, + action: actionName, + streamId: streamId, + data: data, + desiredSize: controller.desiredSize + }); + + return startCapability.promise; + }, + pull: function pull(controller) { + var pullCapability = (0, _util.createPromiseCapability)(); + _this2.streamControllers[streamId].pullCall = pullCapability; + + _this2.postMessage({ + sourceName: sourceName, + targetName: targetName, + stream: 'pull', + streamId: streamId, + desiredSize: controller.desiredSize + }); + + return pullCapability.promise; + }, + cancel: function cancel(reason) { + var cancelCapability = (0, _util.createPromiseCapability)(); + _this2.streamControllers[streamId].cancelCall = cancelCapability; + _this2.streamControllers[streamId].isClosed = true; + + _this2.postMessage({ + sourceName: sourceName, + targetName: targetName, + stream: 'cancel', + reason: reason, + streamId: streamId + }); + + return cancelCapability.promise; + } + }, queueingStrategy); + }, + _createStreamSink: function _createStreamSink(data) { + var _this3 = this; + + var self = this; + var action = this.actionHandler[data.action]; + var streamId = data.streamId; + var desiredSize = data.desiredSize; + var sourceName = this.sourceName; + var targetName = data.sourceName; + var capability = (0, _util.createPromiseCapability)(); + + var sendStreamRequest = function sendStreamRequest(_ref) { + var stream = _ref.stream, + chunk = _ref.chunk, + transfers = _ref.transfers, + success = _ref.success, + reason = _ref.reason; + + _this3.postMessage({ + sourceName: sourceName, + targetName: targetName, + stream: stream, + streamId: streamId, + chunk: chunk, + success: success, + reason: reason + }, transfers); + }; + + var streamSink = { + enqueue: function enqueue(chunk) { + var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; + var transfers = arguments.length > 2 ? arguments[2] : undefined; + + if (this.isCancelled) { + return; + } + + var lastDesiredSize = this.desiredSize; + this.desiredSize -= size; + + if (lastDesiredSize > 0 && this.desiredSize <= 0) { + this.sinkCapability = (0, _util.createPromiseCapability)(); + this.ready = this.sinkCapability.promise; + } + + sendStreamRequest({ + stream: 'enqueue', + chunk: chunk, + transfers: transfers + }); + }, + close: function close() { + if (this.isCancelled) { + return; + } + + this.isCancelled = true; + sendStreamRequest({ + stream: 'close' + }); + delete self.streamSinks[streamId]; + }, + error: function error(reason) { + if (this.isCancelled) { + return; + } + + this.isCancelled = true; + sendStreamRequest({ + stream: 'error', + reason: reason + }); + }, + sinkCapability: capability, + onPull: null, + onCancel: null, + isCancelled: false, + desiredSize: desiredSize, + ready: null + }; + streamSink.sinkCapability.resolve(); + streamSink.ready = streamSink.sinkCapability.promise; + this.streamSinks[streamId] = streamSink; + resolveCall(action[0], [data.data, streamSink], action[1]).then(function () { + sendStreamRequest({ + stream: 'start_complete', + success: true + }); + }, function (reason) { + sendStreamRequest({ + stream: 'start_complete', + success: false, + reason: reason + }); + }); + }, + _processStreamMessage: function _processStreamMessage(data) { + var _this4 = this; + + var sourceName = this.sourceName; + var targetName = data.sourceName; + var streamId = data.streamId; + + var sendStreamResponse = function sendStreamResponse(_ref2) { + var stream = _ref2.stream, + success = _ref2.success, + reason = _ref2.reason; + + _this4.comObj.postMessage({ + sourceName: sourceName, + targetName: targetName, + stream: stream, + success: success, + streamId: streamId, + reason: reason + }); + }; + + var deleteStreamController = function deleteStreamController() { + Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) { + return capability && finalize(capability.promise); + })).then(function () { + delete _this4.streamControllers[data.streamId]; + }); + }; + + switch (data.stream) { + case 'start_complete': + resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason)); + break; + + case 'pull_complete': + resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason)); + break; + + case 'pull': + if (!this.streamSinks[data.streamId]) { + sendStreamResponse({ + stream: 'pull_complete', + success: true + }); + break; + } + + if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) { + this.streamSinks[data.streamId].sinkCapability.resolve(); + } + + this.streamSinks[data.streamId].desiredSize = data.desiredSize; + resolveCall(this.streamSinks[data.streamId].onPull).then(function () { + sendStreamResponse({ + stream: 'pull_complete', + success: true + }); + }, function (reason) { + sendStreamResponse({ + stream: 'pull_complete', + success: false, + reason: reason + }); + }); + break; + + case 'enqueue': + (0, _util.assert)(this.streamControllers[data.streamId], 'enqueue should have stream controller'); + + if (!this.streamControllers[data.streamId].isClosed) { + this.streamControllers[data.streamId].controller.enqueue(data.chunk); + } + + break; + + case 'close': + (0, _util.assert)(this.streamControllers[data.streamId], 'close should have stream controller'); + + if (this.streamControllers[data.streamId].isClosed) { + break; + } + + this.streamControllers[data.streamId].isClosed = true; + this.streamControllers[data.streamId].controller.close(); + deleteStreamController(); + break; + + case 'error': + (0, _util.assert)(this.streamControllers[data.streamId], 'error should have stream controller'); + this.streamControllers[data.streamId].controller.error(wrapReason(data.reason)); + deleteStreamController(); + break; + + case 'cancel_complete': + resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason)); + deleteStreamController(); + break; + + case 'cancel': + if (!this.streamSinks[data.streamId]) { + break; + } + + resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () { + sendStreamResponse({ + stream: 'cancel_complete', + success: true + }); + }, function (reason) { + sendStreamResponse({ + stream: 'cancel_complete', + success: false, + reason: reason + }); + }); + this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason)); + this.streamSinks[data.streamId].isCancelled = true; + delete this.streamSinks[data.streamId]; + break; + + default: + throw new Error('Unexpected stream case'); + } + }, + postMessage: function postMessage(message, transfers) { + if (transfers && this.postMessageTransfers) { + this.comObj.postMessage(message, transfers); + } else { + this.comObj.postMessage(message); + } + }, + destroy: function destroy() { + this.comObj.removeEventListener('message', this._onComObjOnMessage); + } +}; + +/***/ }) +/******/ ]); +}); +//# sourceMappingURL=pdf.worker.js.map \ No newline at end of file diff --git a/package.json b/package.json index 77eb0abcf..9fca2227f 100644 --- a/package.json +++ b/package.json @@ -195,9 +195,6 @@ "react-jsx-parser": "^1.15.0", "react-measure": "^2.2.4", "react-mosaic": "0.0.20", - "react-pdf": "^4.0.2", - "react-pdf-highlighter": "^2.1.2", - "react-pdf-js": "^4.0.2", "react-simple-dropdown": "^3.2.3", "react-split-pane": "^0.1.85", "react-table": "^6.9.2", diff --git a/src/Utils.ts b/src/Utils.ts index 65eb3cffd..2b00a6530 100644 --- a/src/Utils.ts +++ b/src/Utils.ts @@ -235,6 +235,21 @@ export function timenow() { return now.toLocaleDateString() + ' ' + h + ':' + m + ' ' + ampm; } +export function aggregateBounds(boundsList: { x: number, y: number, width: number, height: number }[]) { + return boundsList.reduce((bounds, b) => { + var [sptX, sptY] = [b.x, b.y]; + let [bptX, bptY] = [sptX + b.width, sptY + b.height]; + return { + x: Math.min(sptX, bounds.x), y: Math.min(sptY, bounds.y), + r: Math.max(bptX, bounds.r), b: Math.max(bptY, bounds.b) + }; + }, { x: Number.MAX_VALUE, y: Number.MAX_VALUE, r: -Number.MAX_VALUE, b: -Number.MAX_VALUE }); +} +export function intersectRect(r1: { left: number, top: number, width: number, height: number }, + r2: { left: number, top: number, width: number, height: number }) { + return !(r2.left > r1.left + r1.width || r2.left + r2.width < r1.left || r2.top > r1.top + r1.height || r2.top + r2.height < r1.top); +} + export function percent2frac(percent: string) { return Number(percent.substr(0, percent.length - 1)) / 100; } @@ -292,4 +307,34 @@ export function PostToServer(relativeRoute: string, body: any) { body: body }; return requestPromise.post(options); +} + +const easeInOutQuad = (currentTime: number, start: number, change: number, duration: number) => { + let newCurrentTime = currentTime / (duration / 2); + + if (newCurrentTime < 1) { + return (change / 2) * newCurrentTime * newCurrentTime + start; + } + + newCurrentTime -= 1; + return (-change / 2) * (newCurrentTime * (newCurrentTime - 2) - 1) + start; +}; + +export default function smoothScroll(duration: number, element: HTMLElement, to: number) { + const start = element.scrollTop; + const change = to - start; + const startDate = new Date().getTime(); + + const animateScroll = () => { + const currentDate = new Date().getTime(); + const currentTime = currentDate - startDate; + element.scrollTop = easeInOutQuad(currentTime, start, change, duration); + + if (currentTime < duration) { + requestAnimationFrame(animateScroll); + } else { + element.scrollTop = to; + } + }; + animateScroll(); } \ No newline at end of file diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index 2fa0d2dcb..392dca373 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -95,12 +95,13 @@ export namespace Docs { export namespace Prototypes { - type LayoutSource = { LayoutString: () => string }; + type LayoutSource = { LayoutString: (ext?: string) => string }; type CollectionLayoutSource = { LayoutString: (fieldStr: string, fieldExt?: string) => string }; type CollectionViewType = [CollectionLayoutSource, string, string?]; type PrototypeTemplate = { layout: { view: LayoutSource, + ext?: string, // optional extension field for layout source collectionView?: CollectionViewType }, options?: Partial @@ -144,7 +145,7 @@ export namespace Docs { options: { height: 32 } }], [DocumentType.PDF, { - layout: { view: PDFBox, collectionView: [CollectionPDFView, data, anno] as CollectionViewType }, + layout: { view: PDFBox, ext: anno }, options: { nativeWidth: 1200, curPage: 1 } }], [DocumentType.ICON, { @@ -254,7 +255,7 @@ export namespace Docs { // synthesize the default options, the type and title from computed values and // whatever options pertain to this specific prototype let options = { title: title, type: type, baseProto: true, ...defaultOptions, ...(template.options || {}) }; - let primary = layout.view.LayoutString(); + let primary = layout.view.LayoutString(layout.ext); let collectionView = layout.collectionView; if (collectionView) { options.layout = collectionView[0].LayoutString(collectionView[1], collectionView[2]); @@ -638,7 +639,6 @@ export namespace DocUtils { }); } export function MakeLink(source: Doc, target: Doc, targetContext?: Doc, title: string = "", description: string = "", sourceContext?: Doc, id?: string, anchored1?: boolean) { - if (LinkManager.Instance.doesLinkExist(source, target)) return undefined; let sv = DocumentManager.Instance.getDocumentView(source); if (sv && sv.props.ContainingCollectionDoc === target) return; if (target === CurrentUserUtils.UserDocument) return undefined; @@ -651,7 +651,6 @@ export namespace DocUtils { linkDocProto.sourceContext = sourceContext; linkDocProto.title = title === "" ? source.title + " to " + target.title : title; linkDocProto.linkDescription = description; - linkDocProto.type = DocumentType.LINK; linkDocProto.anchor1 = source; linkDocProto.anchor1Page = source.curPage; @@ -665,6 +664,7 @@ export namespace DocUtils { Doc.GetProto(source).links = ComputedField.MakeFunction("links(this)"); Doc.GetProto(target).links = ComputedField.MakeFunction("links(this)"); + }, "make link"); return linkDocProto; } diff --git a/src/client/goldenLayout.js b/src/client/goldenLayout.js index ad78139c1..29b750720 100644 --- a/src/client/goldenLayout.js +++ b/src/client/goldenLayout.js @@ -377,7 +377,7 @@ this._nOriginalY = coordinates.y; this._oDocument.on('mousemove touchmove', this._fMove); - this._oDocument.one('mouseup touchend', this._fUp); + this._oDocument.on('mouseup touchend', this._fUp); this._timeout = setTimeout(lm.utils.fnBind(this._startDrag, this), this._nDelay); } diff --git a/src/client/util/DocumentManager.ts b/src/client/util/DocumentManager.ts index a3c7429b9..c048125c5 100644 --- a/src/client/util/DocumentManager.ts +++ b/src/client/util/DocumentManager.ts @@ -132,9 +132,7 @@ export class DocumentManager { let doc = Doc.GetProto(docDelegate); const contextDoc = await Cast(doc.annotationOn, Doc); if (contextDoc) { - const page = NumCast(doc.page, linkPage || 0); - const curPage = NumCast(contextDoc.curPage, page); - if (page !== curPage) contextDoc.curPage = page; + contextDoc.scrollY = NumCast(doc.y) - NumCast(contextDoc.height) / 2; } let docView: DocumentView | null; @@ -180,7 +178,7 @@ export class DocumentManager { (dockFunc || CollectionDockingView.AddRightSplit)(contextDoc, undefined); setTimeout(() => { this.jumpToDocument(docDelegate, willZoom, forceDockFunc, dockFunc, linkPage); - }, 10); + }, 1000); } } } @@ -188,13 +186,8 @@ export class DocumentManager { @action zoomIntoScale = (docDelegate: Doc, scale: number) => { - let doc = Doc.GetProto(docDelegate); - - let docView: DocumentView | null; - docView = DocumentManager.Instance.getDocumentView(doc); - if (docView) { - docView.props.zoomToScale(scale); - } + let docView = DocumentManager.Instance.getDocumentView(Doc.GetProto(docDelegate)); + docView && docView.props.zoomToScale(scale); } getScaleOfDocView = (docDelegate: Doc) => { diff --git a/src/client/util/DragManager.ts b/src/client/util/DragManager.ts index 56496c99b..ddc8fb62c 100644 --- a/src/client/util/DragManager.ts +++ b/src/client/util/DragManager.ts @@ -349,8 +349,8 @@ export namespace DragManager { let xs: number[] = []; let ys: number[] = []; - const docs: Doc[] = - dragData instanceof DocumentDragData ? dragData.draggedDocuments : dragData instanceof AnnotationDragData ? [dragData.dragDocument] : []; + const docs = dragData instanceof DocumentDragData ? dragData.draggedDocuments : + dragData instanceof AnnotationDragData ? [dragData.dragDocument] : []; let dragElements = eles.map(ele => { const w = ele.offsetWidth, h = ele.offsetHeight; @@ -379,22 +379,20 @@ export namespace DragManager { dragElement.style.width = `${rect.width / scaleX}px`; dragElement.style.height = `${rect.height / scaleY}px`; - // bcz: if PDFs are rendered with svg's, then this code isn't needed - // bcz: PDFs don't show up if you clone them when rendered using a canvas. - // however, PDF's have a thumbnail field that contains an image of their canvas. - // So we replace the pdf's canvas with the image thumbnail - // if (docs.length) { - // var pdfBox = dragElement.getElementsByClassName("pdfBox-cont")[0] as HTMLElement; - // let thumbnail = docs[0].GetT(KeyStore.Thumbnail, ImageField); - // if (pdfBox && pdfBox.childElementCount && thumbnail) { - // let img = new Image(); - // img.src = thumbnail.toString(); - // img.style.position = "absolute"; - // img.style.width = `${rect.width / scaleX}px`; - // img.style.height = `${rect.height / scaleY}px`; - // pdfBox.replaceChild(img, pdfBox.children[0]) - // } - // } + if (docs.length) { + var pdfBox = dragElement.getElementsByTagName("canvas"); + var pdfBoxSrc = ele.getElementsByTagName("canvas"); + Array.from(pdfBox).map((pb, i) => pb.getContext('2d')!.drawImage(pdfBoxSrc[i], 0, 0)); + var pdfView = dragElement.getElementsByClassName("pdfViewer-viewer"); + var pdfViewSrc = ele.getElementsByClassName("pdfViewer-viewer"); + let tops = Array.from(pdfViewSrc).map(p => p.scrollTop); + let oldopacity = dragElement.style.opacity; + dragElement.style.opacity = "0"; + setTimeout(() => { + dragElement.style.opacity = oldopacity; + Array.from(pdfView).map((v, i) => v.scrollTo({ top: tops[i] })); + }, 0); + } let set = dragElement.getElementsByTagName('*'); if (dragElement.hasAttribute("style")) (dragElement as any).style.pointerEvents = "none"; // tslint:disable-next-line: prefer-for-of @@ -418,8 +416,8 @@ export namespace DragManager { hideSource = options.hideSource(); } } - eles.map(ele => (ele.hidden = hideSource) && - (ele.parentElement && ele.parentElement.className.indexOf("collectionFreeFormDocumentView") !== -1 && (ele.parentElement.hidden = hideSource))); + + eles.map(ele => ele.hidden = hideSource); let lastX = downX; let lastY = downY; @@ -447,12 +445,9 @@ export namespace DragManager { ); }; - let hideDragElements = () => { + let hideDragShowOriginalElements = () => { dragElements.map(dragElement => dragElement.parentNode === dragDiv && dragDiv.removeChild(dragElement)); - eles.map(ele => { - ele.hidden = false; - (ele.parentElement && ele.parentElement.className.indexOf("collectionFreeFormDocumentView") !== -1 && (ele.parentElement.hidden = false)); - }); + eles.map(ele => ele.hidden = false); }; let endDrag = () => { document.removeEventListener("pointermove", moveHandler, true); @@ -463,12 +458,12 @@ export namespace DragManager { }; AbortDrag = () => { - hideDragElements(); + hideDragShowOriginalElements(); SelectionManager.SetIsDragging(false); endDrag(); }; const upHandler = (e: PointerEvent) => { - hideDragElements(); + hideDragShowOriginalElements(); dispatchDrag(eles, e, dragData, options, finishDrag); SelectionManager.SetIsDragging(false); endDrag(); diff --git a/src/client/util/ProsemirrorExampleTransfer.ts b/src/client/util/ProsemirrorExampleTransfer.ts index 3e3d3155c..aab437176 100644 --- a/src/client/util/ProsemirrorExampleTransfer.ts +++ b/src/client/util/ProsemirrorExampleTransfer.ts @@ -11,6 +11,20 @@ const mac = typeof navigator !== "undefined" ? /Mac/.test(navigator.platform) : export type KeyMap = { [key: string]: any }; +export let updateBullets = (tx2: Transaction, schema: Schema) => { + let fontSize: number | undefined = undefined; + tx2.doc.descendants((node: any, offset: any, index: any) => { + if (node.type === schema.nodes.ordered_list || node.type === schema.nodes.list_item) { + let path = (tx2.doc.resolve(offset) as any).path; + let depth = Array.from(path).reduce((p: number, c: any) => p + (c.hasOwnProperty("type") && c.type === schema.nodes.ordered_list ? 1 : 0), 0); + if (node.type === schema.nodes.ordered_list) depth++; + fontSize = depth === 1 && node.attrs.setFontSize ? Number(node.attrs.setFontSize) : fontSize; + let fsize = fontSize && node.type === schema.nodes.ordered_list ? Math.max(6, fontSize - (depth - 1) * 4) : undefined; + tx2.setNodeMarkup(offset, node.type, { ...node.attrs, mapStyle: node.attrs.mapStyle, bulletStyle: depth, inheritedFontSize: fsize }, node.marks); + } + }); + return tx2; +}; export default function buildKeymap>(schema: S, mapKeys?: KeyMap): KeyMap { let keys: { [key: string]: any } = {}, type; @@ -93,16 +107,6 @@ export default function buildKeymap>(schema: S, mapKeys?: bind("Mod-s", TooltipTextMenu.insertStar); - let updateBullets = (tx2: Transaction) => { - tx2.doc.descendants((node: any, offset: any, index: any) => { - if (node.type === schema.nodes.ordered_list || node.type === schema.nodes.list_item) { - let path = (tx2.doc.resolve(offset) as any).path; - let depth = Array.from(path).reduce((p: number, c: any) => p + (c.hasOwnProperty("type") && c.type === schema.nodes.ordered_list ? 1 : 0), 0); - if (node.type === schema.nodes.ordered_list) depth++; - tx2.setNodeMarkup(offset, node.type, { ...node.attrs, mapStyle: node.attrs.mapStyle, bulletStyle: depth }, node.marks); - } - }); - }; bind("Tab", (state: EditorState, dispatch: (tx: Transaction) => void) => { @@ -110,18 +114,18 @@ export default function buildKeymap>(schema: S, mapKeys?: var range = ref.$from.blockRange(ref.$to); var marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks()); if (!sinkListItem(schema.nodes.list_item)(state, (tx2: Transaction) => { - updateBullets(tx2); - marks && tx2.ensureMarks([...marks]); - marks && tx2.setStoredMarks([...marks]); - dispatch(tx2); + let tx3 = updateBullets(tx2, schema); + marks && tx3.ensureMarks([...marks]); + marks && tx3.setStoredMarks([...marks]); + dispatch(tx3); })) { // couldn't sink into an existing list, so wrap in a new one let newstate = state.applyTransaction(state.tr.setSelection(TextSelection.create(state.doc, range!.start, range!.end))); if (!wrapInList(schema.nodes.ordered_list)(newstate.state, (tx2: Transaction) => { - updateBullets(tx2); + let tx3 = updateBullets(tx2, schema); // when promoting to a list, assume list will format things so don't copy the stored marks. - marks && tx2.ensureMarks([...marks]); - marks && tx2.setStoredMarks([...marks]); - dispatch(tx2); + marks && tx3.ensureMarks([...marks]); + marks && tx3.setStoredMarks([...marks]); + dispatch(tx3); })) { console.log("bullet promote fail"); } @@ -132,10 +136,10 @@ export default function buildKeymap>(schema: S, mapKeys?: var marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks()); if (!liftListItem(schema.nodes.list_item)(state.tr, (tx2: Transaction) => { - updateBullets(tx2); - marks && tx2.ensureMarks([...marks]); - marks && tx2.setStoredMarks([...marks]); - dispatch(tx2); + let tx3 = updateBullets(tx2, schema); + marks && tx3.ensureMarks([...marks]); + marks && tx3.setStoredMarks([...marks]); + dispatch(tx3); })) { console.log("bullet demote fail"); } diff --git a/src/client/util/RichTextSchema.tsx b/src/client/util/RichTextSchema.tsx index ba4b92a25..710d55605 100644 --- a/src/client/util/RichTextSchema.tsx +++ b/src/client/util/RichTextSchema.tsx @@ -198,6 +198,8 @@ export const nodes: { [index: string]: NodeSpec } = { attrs: { bulletStyle: { default: 0 }, mapStyle: { default: "decimal" }, + setFontSize: { default: undefined }, + inheritedFontSize: { default: undefined }, visibility: { default: true } }, toDOM(node: Node) { @@ -205,8 +207,9 @@ export const nodes: { [index: string]: NodeSpec } = { const decMap = bs ? "decimal" + bs : ""; const multiMap = bs === 1 ? "decimal1" : bs === 2 ? "upper-alpha" : bs === 3 ? "lower-roman" : bs === 4 ? "lower-alpha" : ""; let map = node.attrs.mapStyle === "decimal" ? decMap : multiMap; - return node.attrs.visibility ? ['ol', { class: `${map}-ol`, style: `list-style: none;` }, 0] : - ['ol', { class: `${map}-ol`, style: `list-style: none;` }]; + let fsize = node.attrs.setFontSize ? node.attrs.setFontSize : node.attrs.inheritedFontSize; + return node.attrs.visibility ? ['ol', { class: `${map}-ol`, style: `list-style: none;font-size: ${fsize}` }, 0] : + ['ol', { class: `${map}-ol`, style: `list-style: none; font-size: ${fsize}` }]; } }, @@ -253,7 +256,7 @@ export const marks: { [index: string]: MarkSpec } = { href: {}, location: { default: null }, title: { default: null }, - docref: { default: false } + docref: { default: false } // flags whether the linked text comes from a document within Dash. If so, an attribution label is appended after the text }, inclusive: false, parseDOM: [{ diff --git a/src/client/util/SelectionManager.ts b/src/client/util/SelectionManager.ts index 4c97a1056..a02a270ee 100644 --- a/src/client/util/SelectionManager.ts +++ b/src/client/util/SelectionManager.ts @@ -88,20 +88,4 @@ export namespace SelectionManager { export function SelectedDocuments(): Array { return manager.SelectedDocuments.slice(); } - export function ViewsSortedHorizontally(): DocumentView[] { - let sorted = SelectionManager.SelectedDocuments().slice().sort((doc1, doc2) => { - if (NumCast(doc1.props.Document.x) > NumCast(doc2.props.Document.x)) return 1; - if (NumCast(doc1.props.Document.x) < NumCast(doc2.props.Document.x)) return -1; - return 0; - }); - return sorted; - } - export function ViewsSortedVertically(): DocumentView[] { - let sorted = SelectionManager.SelectedDocuments().slice().sort((doc1, doc2) => { - if (NumCast(doc1.props.Document.y) > NumCast(doc2.props.Document.y)) return 1; - if (NumCast(doc1.props.Document.y) < NumCast(doc2.props.Document.y)) return -1; - return 0; - }); - return sorted; - } } diff --git a/src/client/util/TooltipTextMenu.tsx b/src/client/util/TooltipTextMenu.tsx index b6de048e4..a83a3949d 100644 --- a/src/client/util/TooltipTextMenu.tsx +++ b/src/client/util/TooltipTextMenu.tsx @@ -19,6 +19,7 @@ import { LinkManager } from "./LinkManager"; import { schema } from "./RichTextSchema"; import "./TooltipTextMenu.scss"; import { Cast, NumCast } from '../../new_fields/Types'; +import { updateBullets } from './ProsemirrorExampleTransfer'; const { toggleMark, setBlockType } = require("prosemirror-commands"); const { openPrompt, TextField } = require("./ProsemirrorCopy/prompt.js"); @@ -302,12 +303,17 @@ export class TooltipTextMenu { { handlers: { dragComplete: action(() => { - let linkDoc = dragData.linkDocument; - let proto = Doc.GetProto(linkDoc); - if (proto && docView) { - proto.sourceContext = docView.props.ContainingCollectionDoc; + if (dragData.linkDocument) { + let linkDoc = dragData.linkDocument; + let proto = Doc.GetProto(linkDoc); + if (proto && docView) { + proto.sourceContext = docView.props.ContainingCollectionDoc; + } + let text = this.makeLink(linkDoc, ctrlKey ? "onRight" : "inTab"); + if (linkDoc instanceof Doc && linkDoc.anchor2 instanceof Doc) { + proto.title = text === "" ? proto.title : text + " to " + linkDoc.anchor2.title; // TODODO open to more descriptive descriptions of following in text link + } } - linkDoc instanceof Doc && this.makeLink(Utils.prepend("/doc/" + linkDoc[Id]), ctrlKey ? "onRight" : "inTab"); }), }, hideSource: false @@ -389,17 +395,24 @@ export class TooltipTextMenu { } } - makeLinkWithState = (state: EditorState, target: string, location: string) => { - let link = state.schema.mark(state.schema.marks.link, { href: target, location: location }); - } + // makeLinkWithState = (state: EditorState, target: string, location: string) => { + // let link = state.schema.mark(state.schema.marks.link, { href: target, location: location }); + // } - makeLink = (target: string, location: string) => { + makeLink = (targetDoc: Doc, location: string): string => { + let target = Utils.prepend("/doc/" + targetDoc[Id]); let node = this.view.state.selection.$from.nodeAfter; - let link = this.view.state.schema.mark(this.view.state.schema.marks.link, { href: target, location: location }); + let link = this.view.state.schema.mark(this.view.state.schema.marks.link, { href: target, location: location, guid: targetDoc[Id] }); this.view.dispatch(this.view.state.tr.removeMark(this.view.state.selection.from, this.view.state.selection.to, this.view.state.schema.marks.link)); this.view.dispatch(this.view.state.tr.addMark(this.view.state.selection.from, this.view.state.selection.to, link)); node = this.view.state.selection.$from.nodeAfter; link = node && node.marks.find(m => m.type.name === "link"); + if (node) { + if (node.text) { + return node.text; + } + } + return ""; } deleteLink = () => { @@ -506,10 +519,11 @@ export class TooltipTextMenu { } } //actually apply font - return toggleMark(markType)(view.state, view.dispatch, view); - } - else { - return; + if ((view.state.selection as any).node && (view.state.selection as any).node.type === view.state.schema.nodes.ordered_list) { + view.dispatch(updateBullets(view.state.tr.setNodeMarkup(view.state.selection.from, (view.state.selection as any).node.type, + { ...(view.state.selection as NodeSelection).node.attrs, setFontSize: Number(markType.name.replace(/p/, "")) }), view.state.schema)); + } + else toggleMark(markType)(view.state, view.dispatch, view); } } diff --git a/src/client/util/prosemirrorPatches.js b/src/client/util/prosemirrorPatches.js index 188e3e1c5..269423482 100644 --- a/src/client/util/prosemirrorPatches.js +++ b/src/client/util/prosemirrorPatches.js @@ -82,7 +82,7 @@ function sinkListItem(itemType) { if (dispatch) { var nestedBefore = nodeBefore.lastChild && nodeBefore.lastChild.type == parent.type; var inner = prosemirrorModel.Fragment.from(nestedBefore ? itemType.create() : null); - let slice = new prosemirrorModel.Slice(prosemirrorModel.Fragment.from(itemType.create(null, prosemirrorModel.Fragment.from(parent.type.create(parent.attrs, inner)))), + let slice = new prosemirrorModel.Slice(prosemirrorModel.Fragment.from(itemType.create(null, prosemirrorModel.Fragment.from(parent.type.create({ ...parent.attrs, fontSize: parent.attrs.fontSize ? parent.attrs.fontSize - 4 : undefined }, inner)))), nestedBefore ? 3 : 1, 0); var before = range.start, after = range.end; dispatch(state.tr.step(new prosemirrorTransform.ReplaceAroundStep(before - (nestedBefore ? 3 : 1), after, diff --git a/src/client/views/DocumentButtonBar.tsx b/src/client/views/DocumentButtonBar.tsx index b482e3298..9ca54f738 100644 --- a/src/client/views/DocumentButtonBar.tsx +++ b/src/client/views/DocumentButtonBar.tsx @@ -23,6 +23,7 @@ import React = require("react"); import { DocumentView } from './nodes/DocumentView'; import { ParentDocSelector } from './collections/ParentDocumentSelector'; import { CollectionDockingView } from './collections/CollectionDockingView'; +import { DocumentDecorations } from './DocumentDecorations'; const higflyout = require("@hig/flyout"); export const { anchorPoints } = higflyout; export const Flyout = higflyout.default; @@ -225,7 +226,7 @@ export class DocumentButtonBar extends React.Component<{ views: DocumentView[], return (
    { - DocumentDecorations.hasPushedHack = false; + DocumentButtonBar.hasPushedHack = false; this.targetDoc[Pushes] = NumCast(this.targetDoc[Pushes]) + 1; }}> @@ -259,7 +260,7 @@ export class DocumentButtonBar extends React.Component<{ views: DocumentView[], window.open(`https://docs.google.com/document/d/${dataDoc[GoogleRef]}/edit`); } else { this.clearPullColor(); - DocumentDecorations.hasPulledHack = false; + DocumentButtonBar.hasPulledHack = false; this.targetDoc[Pulls] = NumCast(this.targetDoc[Pulls]) + 1; dataDoc.unchanged && runInAction(() => this.isAnimatingFetch = true); } diff --git a/src/client/views/DocumentDecorations.tsx b/src/client/views/DocumentDecorations.tsx index 7ec316bf9..944ae586c 100644 --- a/src/client/views/DocumentDecorations.tsx +++ b/src/client/views/DocumentDecorations.tsx @@ -515,8 +515,8 @@ export class DocumentDecorations extends React.Component<{}, { value: string }> doc.x = (doc.x || 0) + dX * (actualdW - width); doc.y = (doc.y || 0) + dY * (actualdH - height); let proto = doc.isTemplate ? doc : Doc.GetProto(element.props.Document); // bcz: 'doc' didn't work here... - let fixedAspect = e.ctrlKey || (!BoolCast(doc.ignoreAspect) && nwidth && nheight); - if (fixedAspect && e.ctrlKey && BoolCast(doc.ignoreAspect)) { + let fixedAspect = e.ctrlKey || (!doc.ignoreAspect && nwidth && nheight); + if (fixedAspect && e.ctrlKey && doc.ignoreAspect) { doc.ignoreAspect = false; proto.nativeWidth = nwidth = doc.width || 0; proto.nativeHeight = nheight = doc.height || 0; @@ -531,7 +531,7 @@ export class DocumentDecorations extends React.Component<{}, { value: string }> Doc.SetInPlace(element.props.Document, "nativeWidth", actualdW / (doc.width || 1) * (doc.nativeWidth || 0), true); } doc.width = actualdW; - if (fixedAspect) doc.height = nheight / nwidth * doc.width; + if (fixedAspect && !doc.fitWidth) doc.height = nheight / nwidth * doc.width; else doc.height = actualdH; } else { @@ -539,7 +539,7 @@ export class DocumentDecorations extends React.Component<{}, { value: string }> Doc.SetInPlace(element.props.Document, "nativeHeight", actualdH / (doc.height || 1) * (doc.nativeHeight || 0), true); } doc.height = actualdH; - if (fixedAspect) doc.width = nwidth / nheight * doc.height; + if (fixedAspect && !doc.fitWidth) doc.width = nwidth / nheight * doc.height; else doc.width = actualdW; } } else { @@ -617,7 +617,7 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
    { field instanceof Doc ? this.openWorkspace(field) : - this.createNewWorkspace(CurrentUserUtils.MainDocId) + this.createNewWorkspace(CurrentUserUtils.MainDocId); }); } } @@ -375,8 +375,9 @@ export class MainView extends React.Component { } flyoutWidthFunc = () => this.flyoutWidth; addDocTabFunc = (doc: Doc, data: Opt, where: string) => { - if (where === "close") + if (where === "close") { return CollectionDockingView.CloseRightSplit(doc); + } if (doc.dockingConfig) { this.openWorkspace(doc); return true; @@ -508,6 +509,7 @@ export class MainView extends React.Component {
  • +
; @@ -523,12 +525,8 @@ export class MainView extends React.Component { /* @TODO this should really be moved into a moveable toolbar component, but for now let's put it here to meet the deadline */ @computed get miscButtons() { - let logoutRef = React.createRef(); - return [ this.isSearchVisible ?
: null, -
-
]; } @@ -568,7 +566,7 @@ export class MainView extends React.Component { let next = () => PresBox.CurrentPresentation.next(); let back = () => PresBox.CurrentPresentation.back(); let startOrResetPres = () => PresBox.CurrentPresentation.startOrResetPres(); - let closePresMode = action(() => { PresBox.CurrentPresentation.presMode = false; this.addDocTabFunc(PresBox.CurrentPresentation.props.Document); }); + let closePresMode = action(() => { PresBox.CurrentPresentation.presMode = false; this.addDocTabFunc(PresBox.CurrentPresentation.props.Document, undefined, "onRight"); }); return !PresBox.CurrentPresentation || !PresBox.CurrentPresentation.presMode ? (null) : ; } diff --git a/src/client/views/TemplateMenu.tsx b/src/client/views/TemplateMenu.tsx index e4ef8313d..9e5e62e03 100644 --- a/src/client/views/TemplateMenu.tsx +++ b/src/client/views/TemplateMenu.tsx @@ -117,13 +117,13 @@ export class TemplateMenu extends React.Component { @action toggleChrome = (): void => { this.props.docs.map(dv => { - let layout = dv.Document.layout instanceof Doc ? dv.Document.layout as Doc : dv.Document; + let layout = dv.Document.layout instanceof Doc ? dv.Document.layout : dv.Document; layout.chromeStatus = (layout.chromeStatus !== "disabled" ? "disabled" : "enabled"); }); } render() { - let layout = this.props.docs[0].Document.layout instanceof Doc ? this.props.docs[0].Document.layout as Doc : this.props.docs[0].Document; + let layout = this.props.docs[0].Document.layout instanceof Doc ? this.props.docs[0].Document.layout : this.props.docs[0].Document; let templateMenu: Array = []; this.props.templates.forEach((checked, template) => templateMenu.push()); diff --git a/src/client/views/animationtimeline/Keyframe.tsx b/src/client/views/animationtimeline/Keyframe.tsx index 7197f4b49..66ad6a76d 100644 --- a/src/client/views/animationtimeline/Keyframe.tsx +++ b/src/client/views/animationtimeline/Keyframe.tsx @@ -8,7 +8,6 @@ import { Doc, DocListCast, DocListCastAsync } from "../../../new_fields/Doc"; import { Cast, NumCast } from "../../../new_fields/Types"; import { List } from "../../../new_fields/List"; import { createSchema, defaultSpec, makeInterface, listSpec } from "../../../new_fields/Schema"; -import { FlyoutProps } from "./Timeline"; import { Transform } from "../../util/Transform"; import { InkField, StrokeData } from "../../../new_fields/InkField"; import { TimelineMenu } from "./TimelineMenu"; @@ -138,48 +137,13 @@ export class Keyframe extends React.Component { @observable private _mouseToggled = false; @observable private _doubleClickEnabled = false; - @computed - private get regiondata() { - let index = this.regions.indexOf(this.props.RegionData); - return RegionData(this.regions[index] as Doc); - } - - @computed - private get regions() { - return Cast(this.props.node.regions, listSpec(Doc)) as List; - } - - @computed - private get firstKeyframe() { - let first: (Doc | undefined) = undefined; - DocListCast(this.regiondata.keyframes!).forEach(kf => { - if (kf.type !== KeyframeFunc.KeyframeType.fade) { - if (!first || first && NumCast(kf.time) < NumCast(first.time)) { - first = kf; - } - } - }); - return first; - } - - @computed - private get lastKeyframe() { - let last: (Doc | undefined) = undefined; - DocListCast(this.regiondata.keyframes!).forEach(kf => { - if (kf.type !== KeyframeFunc.KeyframeType.fade) { - if (!last || last && NumCast(kf.time) > NumCast(last.time)) { - last = kf; - } - } - }); - return last; - } - - @computed - private get keyframes(){ - return DocListCast(this.regiondata.keyframes); - } - + @computed private get regiondata() { return RegionData(this.regions[this.regions.indexOf(this.props.RegionData)] as Doc);} + @computed private get regions() { return Cast(this.props.node.regions, listSpec(Doc)) as List;} + @computed private get keyframes(){ return DocListCast(this.regiondata.keyframes); } + @computed private get pixelPosition(){ return KeyframeFunc.convertPixelTime(this.regiondata.position, "mili", "pixel", this.props.tickSpacing, this.props.tickIncrement);} + @computed private get pixelDuration(){ return KeyframeFunc.convertPixelTime(this.regiondata.duration, "mili", "pixel", this.props.tickSpacing, this.props.tickIncrement); } + @computed private get pixelFadeIn() { return KeyframeFunc.convertPixelTime(this.regiondata.fadeIn, "mili", "pixel", this.props.tickSpacing, this.props.tickIncrement); } + @computed private get pixelFadeOut(){ return KeyframeFunc.convertPixelTime(this.regiondata.fadeOut, "mili", "pixel", this.props.tickSpacing, this.props.tickIncrement); } @computed private get inks() { if (this.props.collection.data_ext) { @@ -191,38 +155,18 @@ export class Keyframe extends React.Component { } } - @computed - private get pixelPosition(){ - return KeyframeFunc.convertPixelTime(this.regiondata.position, "mili", "pixel", this.props.tickSpacing, this.props.tickIncrement); - } - - @computed - private get pixelDuration(){ - return KeyframeFunc.convertPixelTime(this.regiondata.duration, "mili", "pixel", this.props.tickSpacing, this.props.tickIncrement); - } - - @computed - private get pixelFadeIn() { - return KeyframeFunc.convertPixelTime(this.regiondata.fadeIn, "mili", "pixel", this.props.tickSpacing, this.props.tickIncrement); - } - - @computed - private get pixelFadeOut(){ - return KeyframeFunc.convertPixelTime(this.regiondata.fadeOut, "mili", "pixel", this.props.tickSpacing, this.props.tickIncrement); - } - - async componentWillMount() { - if (!this.regiondata.keyframes) { - this.regiondata.keyframes = new List(); - } - let fadeIn = await this.makeKeyData(this.regiondata.position + this.regiondata.fadeIn, KeyframeFunc.KeyframeType.fade)!; - let fadeOut = await this.makeKeyData(this.regiondata.position + this.regiondata.duration - this.regiondata.fadeOut, KeyframeFunc.KeyframeType.fade)!; - let start = await this.makeKeyData(this.regiondata.position, KeyframeFunc.KeyframeType.fade)!; - let finish = await this.makeKeyData(this.regiondata.position + this.regiondata.duration, KeyframeFunc.KeyframeType.fade)!; - (fadeIn.key! as Doc).opacity = 1; - (fadeOut.key! as Doc).opacity = 1; - (start.key! as Doc).opacity = 0.1; - (finish.key! as Doc).opacity = 0.1; + componentWillMount() { + runInAction(async () => { + if (!this.regiondata.keyframes) this.regiondata.keyframes = new List(); + let fadeIn = await this.makeKeyData(this.regiondata.position + this.regiondata.fadeIn, KeyframeFunc.KeyframeType.fade)!; + let fadeOut = await this.makeKeyData(this.regiondata.position + this.regiondata.duration - this.regiondata.fadeOut, KeyframeFunc.KeyframeType.fade)!; + let start = await this.makeKeyData(this.regiondata.position, KeyframeFunc.KeyframeType.fade)!; + let finish = await this.makeKeyData(this.regiondata.position + this.regiondata.duration, KeyframeFunc.KeyframeType.fade)!; + (fadeIn.key! as Doc).opacity = 1; + (fadeOut.key! as Doc).opacity = 1; + (start.key! as Doc).opacity = 0.1; + (finish.key! as Doc).opacity = 0.1; + }); } @action @@ -336,7 +280,7 @@ export class Keyframe extends React.Component { let bar = this._bar.current!; let offset = KeyframeFunc.convertPixelTime(Math.round((e.clientX - bar.getBoundingClientRect().left) * this.props.transform.Scale), "mili", "time", this.props.tickSpacing, this.props.tickIncrement); let leftRegion = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.left, this.regiondata, this.regions); - let firstkf: (Doc | undefined) = this.firstKeyframe; + let firstkf: (Doc | undefined) = this.keyframes[0]; if (firstkf && this.regiondata.position + this.regiondata.fadeIn + offset >= NumCast(firstkf!.time)) { let dif = NumCast(firstkf!.time) - (this.pixelPosition + this.pixelFadeIn); this.regiondata.position = NumCast(firstkf!.time) - this.regiondata.fadeIn; @@ -364,8 +308,8 @@ export class Keyframe extends React.Component { let bar = this._bar.current!; let offset = KeyframeFunc.convertPixelTime(Math.round((e.clientX - bar.getBoundingClientRect().right) * this.props.transform.Scale), "mili", "time", this.props.tickSpacing, this.props.tickIncrement); let rightRegion = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.right, this.regiondata, this.regions); - if (this.lastKeyframe! && this.regiondata.position + this.regiondata.duration - this.regiondata.fadeOut + offset <= NumCast((this.lastKeyframe! as Doc).time)) { - let dif = this.regiondata.position + this.regiondata.duration - this.regiondata.fadeOut - NumCast((this.lastKeyframe! as Doc).time); + if (this.regiondata.position + this.regiondata.duration - this.regiondata.fadeOut + offset <= NumCast((this.keyframes[this.keyframes.length - 1]).time)) { + let dif = this.regiondata.position + this.regiondata.duration - this.regiondata.fadeOut - NumCast((this.keyframes[this.keyframes.length - 1]).time); this.regiondata.duration -= dif; } else if (this.regiondata.duration + offset < this.regiondata.fadeIn + this.regiondata.fadeOut) { // nokeyframes, just fades this.regiondata.duration = this.regiondata.fadeIn + this.regiondata.fadeOut; @@ -532,6 +476,7 @@ export class Keyframe extends React.Component { e.stopPropagation(); let div = ref.current!; div.style.opacity = "1"; + Doc.BrushDoc(this.props.node); } onContainerOut = (e: React.PointerEvent, ref: React.RefObject) => { @@ -539,6 +484,7 @@ export class Keyframe extends React.Component { e.stopPropagation(); let div = ref.current!; div.style.opacity = "0"; + Doc.UnBrushDoc(this.props.node); } @@ -623,7 +569,6 @@ export class Keyframe extends React.Component { } } render() { - console.log("RERENDERING"); return (
; -} - - @observer export class Timeline extends React.Component { @@ -35,26 +24,23 @@ export class Timeline extends React.Component { private readonly MAX_CONTAINER_HEIGHT: number = 800; private readonly DEFAULT_TICK_INCREMENT: number = 1000; - @observable private _isMinimized = false; - @observable private _tickSpacing = this.DEFAULT_TICK_SPACING; - @observable private _tickIncrement = this.DEFAULT_TICK_INCREMENT; - @observable private _scrubberbox = React.createRef(); - @observable private _scrubber = React.createRef(); @observable private _trackbox = React.createRef(); @observable private _titleContainer = React.createRef(); @observable private _timelineContainer = React.createRef(); - @observable private _timelineWrapper = React.createRef(); @observable private _infoContainer = React.createRef(); + @observable private _roundToggleRef = React.createRef(); + @observable private _roundToggleContainerRef = React.createRef(); @observable private _currentBarX: number = 0; @observable private _windSpeed: number = 1; @observable private _isPlaying: boolean = false; //scrubber playing - @observable private _isFrozen: boolean = true; //timeline freeze @observable private _totalLength: number = 0; @observable private _visibleLength: number = 0; @observable private _visibleStart: number = 0; - @observable private _containerHeight: number = this.DEFAULT_CONTAINER_HEIGHT; + @observable private _containerHeight: number = this.DEFAULT_CONTAINER_HEIGHT; + @observable private _tickSpacing = this.DEFAULT_TICK_SPACING; + @observable private _tickIncrement = this.DEFAULT_TICK_INCREMENT; @observable private _time = 100000; //DEFAULT @observable private _ticks: number[] = []; @observable private _playButton = faPlayCircle; @@ -273,39 +259,7 @@ export class Timeline extends React.Component { } } - @action - onTimelineDown = (e: React.PointerEvent) => { - e.preventDefault(); - if (e.nativeEvent.which === 1 && !this._isFrozen) { - document.addEventListener("pointermove", this.onTimelineMove); - document.addEventListener("pointerup", () => { document.removeEventListener("pointermove", this.onTimelineMove); }); - } - } - @action - onTimelineMove = (e: PointerEvent) => { - e.preventDefault(); - e.stopPropagation(); - let timelineContainer = this._timelineWrapper.current!; - let left = parseFloat(timelineContainer.style.left!); - let top = parseFloat(timelineContainer.style.top!); - timelineContainer.style.left = `${left + e.movementX}px`; - timelineContainer.style.top = `${top + e.movementY}px`; - } - - @action - minimize = (e: React.MouseEvent) => { - e.preventDefault(); - e.stopPropagation(); - let timelineContainer = this._timelineContainer.current!; - if (this._isMinimized) { - this._isMinimized = false; - timelineContainer.style.visibility = "visible"; - } else { - this._isMinimized = true; - timelineContainer.style.visibility = "hidden"; - } - } @action toReadTime = (time: number): string => { @@ -321,21 +275,6 @@ export class Timeline extends React.Component { timelineContextMenu = (e:MouseEvent): void => { let subitems: ContextMenuProps[] = []; - let timelineContainer = this._timelineWrapper.current!; - subitems.push({ - description: "Pin to Top", event: action(() => { - if (!this._isFrozen) { - timelineContainer.style.left = "0px"; - timelineContainer.style.top = "0px"; - timelineContainer.style.transition = "none"; - } - }), icon: faArrowUp - }); - subitems.push({ - description: this._isFrozen ? "Unfreeze Timeline" : "Freeze Timeline", event: action(() => { - this._isFrozen = !this._isFrozen; - }), icon: "thumbtack" - }); subitems.push({ description: this._timelineVisible ? "Hide Timeline" : "Show Timeline", event: action(() => { this._timelineVisible = !this._timelineVisible; @@ -358,7 +297,8 @@ export class Timeline extends React.Component { let currPixel = KeyframeFunc.convertPixelTime(prevTime, "mili", "pixel", this._tickSpacing, this._tickIncrement); let currCurrent = KeyframeFunc.convertPixelTime(prevCurrent, "mili", "pixel", this._tickSpacing, this._tickIncrement); this._infoContainer.current!.scrollLeft = currPixel - offset; - this._visibleStart = currPixel - offset; + this._visibleStart = currPixel - offset > 0 ? currPixel - offset : 0; + this._visibleStart += this._visibleLength + this._visibleStart > this._totalLength ? this._totalLength - (this._visibleStart + this._visibleLength) :0; this.changeCurrentBarX(currCurrent); } @@ -393,44 +333,70 @@ export class Timeline extends React.Component { private timelineToolBox = (scale:number) => { let size = 50 * scale; //50 is default - return ( + return ( +
-
-
-
- +
+
+
+ +
+
+
); } + + @action + private toggleChecked = (e:React.PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + let roundToggle = this._roundToggleRef.current!; + let roundToggleContainer = this._roundToggleContainerRef.current!; + if (BoolCast(this.props.Document.isAnimating)){ + roundToggle.style.transform = "translate(0px, 0px)"; + roundToggle.style.animationName = "turnoff"; + roundToggleContainer.style.animationName = "turnoff"; + + this.props.Document.isAnimating = false; + } else { + roundToggle.style.transform = "translate(45px, 0px)"; + roundToggle.style.animationName = "turnon"; + roundToggleContainer.style.animationName = "turnon"; + this.props.Document.isAnimating = true; + } + } render() { return ( -
-
- -
- {this.timelineToolBox(0.5)} -
-
- {this._ticks.map(element => { - if(element % this._tickIncrement === 0) return

{this.toReadTime(element)}

; - })} +
+
+
+
+
+
+ {this._ticks.map(element => { + if(element % this._tickIncrement === 0) return

{this.toReadTime(element)}

; + })} +
+
+
+
+
+ {DocListCast(this.children).map(doc => )} +
-
-
+
+ {DocListCast(this.children).map(doc =>
{Doc.BrushDoc(doc);}} onPointerOut={() => {Doc.UnBrushDoc(doc);}}>

{doc.title}

)}
-
- {DocListCast(this.children).map(doc => )} +
+
-
- {DocListCast(this.children).map(doc =>

{doc.title}

)} -
-
- -
+ { this.timelineToolBox(1) }
- {BoolCast(this.props.Document.isAnimating) ?
: this.timelineToolBox(1) } + +
); } diff --git a/src/client/views/animationtimeline/TimelineMenu.tsx b/src/client/views/animationtimeline/TimelineMenu.tsx index f3b985297..59c25596e 100644 --- a/src/client/views/animationtimeline/TimelineMenu.tsx +++ b/src/client/views/animationtimeline/TimelineMenu.tsx @@ -4,6 +4,7 @@ import {observer} from "mobx-react"; import "./TimelineMenu.scss"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faChartLine, faRoad, faClipboard, faPen, faTrash, faTable } from "@fortawesome/free-solid-svg-icons"; +import { Utils } from "../../../Utils"; @observer @@ -40,7 +41,7 @@ export class TimelineMenu extends React.Component { if (type === "input"){ let inputRef = React.createRef(); let text = ""; - this._currentMenu.push(
{ + this._currentMenu.push(
{ e.stopPropagation(); text = e.target.value; }} onKeyDown={(e) => { @@ -52,23 +53,23 @@ export class TimelineMenu extends React.Component { }}/>
); } else if (type === "button") { let buttonRef = React.createRef(); - this._currentMenu.push(

{ + this._currentMenu.push(

{ e.preventDefault(); e.stopPropagation(); event(e); this.closeMenu(); }}>{title}

); - } + } } @action addMenu = (title:string) => { - this._currentMenu.unshift(

{title}

); + this._currentMenu.unshift(

{title}

); } render() { return ( -
+
{this._currentMenu}
); diff --git a/src/client/views/animationtimeline/Track.tsx b/src/client/views/animationtimeline/Track.tsx index c68d9bb3a..3ec410216 100644 --- a/src/client/views/animationtimeline/Track.tsx +++ b/src/client/views/animationtimeline/Track.tsx @@ -32,18 +32,24 @@ export class Track extends React.Component { @observable private _onKeyframe: (Doc | undefined) = undefined; @observable private _onRegionData: (Doc | undefined) = undefined; @observable private _storedState: (Doc | undefined) = undefined; - - @computed - private get regions() { - return Cast(this.props.node.regions, listSpec(Doc)) as List; - } + @observable private filterList = [ + "regions", + "cursors", + "hidden", + "nativeHeight", + "nativeWidth", + "schemaColumns", + "baseLayout", + "backgroundLayout", + "layout", + ]; + + @computed private get regions() { return Cast(this.props.node.regions, listSpec(Doc)) as List;} componentWillMount() { - if (!this.props.node.regions) { - this.props.node.regions = new List(); - } - - + runInAction(() => { + if (!this.props.node.regions) this.props.node.regions = new List(); + }); } componentDidMount() { @@ -54,11 +60,11 @@ export class Track extends React.Component { this.props.node.hidden = false; this.props.node.opacity = 1; }); - } componentWillUnmount() { runInAction(() => { + //disposing reactions if (this._currentBarXReaction) this._currentBarXReaction(); if (this._timelineVisibleReaction) this._timelineVisibleReaction(); }); @@ -166,17 +172,7 @@ export class Track extends React.Component { }); } - private filterList = [ - "regions", - "cursors", - "hidden", - "nativeHeight", - "nativeWidth", - "schemaColumns", - "baseLayout", - "backgroundLayout", - "layout", - ]; + @action private filterKeys = (keys: string[]): string[] => { @@ -294,7 +290,7 @@ export class Track extends React.Component { return (
-
+
{Doc.BrushDoc(this.props.node);}}onPointerOut={() => {Doc.UnBrushDoc(this.props.node);}}> {DocListCast(this.regions).map((region) => { return ; })} diff --git a/src/client/views/collections/CollectionBaseView.tsx b/src/client/views/collections/CollectionBaseView.tsx index 56d12bd84..0168c466f 100644 --- a/src/client/views/collections/CollectionBaseView.tsx +++ b/src/client/views/collections/CollectionBaseView.tsx @@ -20,7 +20,8 @@ export enum CollectionViewType { Docking, Tree, Stacking, - Masonry + Masonry, + Pivot, } export namespace CollectionViewType { @@ -32,7 +33,8 @@ export namespace CollectionViewType { ["docking", CollectionViewType.Docking], ["tree", CollectionViewType.Tree], ["stacking", CollectionViewType.Stacking], - ["masonry", CollectionViewType.Masonry] + ["masonry", CollectionViewType.Masonry], + ["pivot", CollectionViewType.Pivot] ]); export const valueOf = (value: string) => { diff --git a/src/client/views/collections/CollectionDockingView.scss b/src/client/views/collections/CollectionDockingView.scss index 0e7e0afa7..6f5abd05b 100644 --- a/src/client/views/collections/CollectionDockingView.scss +++ b/src/client/views/collections/CollectionDockingView.scss @@ -1,8 +1,5 @@ @import "../../views/globalCssVariables.scss"; -.collectiondockingview-content { - height: 100%; -} .lm_active .messageCounter{ color:white; background: #999999; @@ -21,7 +18,7 @@ .collectiondockingview-container { width: 100%; - height: 100%; + height:100%; border-style: solid; border-width: $COLLECTION_BORDER_WIDTH; position: absolute; diff --git a/src/client/views/collections/CollectionDockingView.tsx b/src/client/views/collections/CollectionDockingView.tsx index 8fcba99e3..b047e77a8 100644 --- a/src/client/views/collections/CollectionDockingView.tsx +++ b/src/client/views/collections/CollectionDockingView.tsx @@ -9,7 +9,7 @@ import * as ReactDOM from 'react-dom'; import Measure from "react-measure"; import * as GoldenLayout from "../../../client/goldenLayout"; import { DateField } from '../../../new_fields/DateField'; -import { Doc, DocListCast, Field, Opt } from "../../../new_fields/Doc"; +import { Doc, DocListCast, Field, Opt, WidthSym, HeightSym } from "../../../new_fields/Doc"; import { Id } from '../../../new_fields/FieldSymbols'; import { List } from '../../../new_fields/List'; import { FieldId } from "../../../new_fields/RefField"; @@ -30,7 +30,9 @@ import "./CollectionDockingView.scss"; import { SubCollectionViewProps } from "./CollectionSubView"; import React = require("react"); import { ButtonSelector } from './ParentDocumentSelector'; +import { DocumentType } from '../../documents/DocumentTypes'; library.add(faFile); +const _global = (window /* browser */ || global /* node */) as any; @observer export class CollectionDockingView extends React.Component { @@ -533,12 +535,11 @@ interface DockedFrameProps { } @observer export class DockedFrameRenderer extends React.Component { - _mainCont: HTMLDivElement | undefined = undefined; + _mainCont: HTMLDivElement | null = null; @observable private _panelWidth = 0; @observable private _panelHeight = 0; @observable private _document: Opt; @observable private _dataDoc: Opt; - @observable private _isActive: boolean = false; get _stack(): any { @@ -576,6 +577,13 @@ export class DockedFrameRenderer extends React.Component { } componentDidMount() { + let observer = new _global.ResizeObserver(action((entries: any) => { + for (let entry of entries) { + this._panelWidth = entry.contentRect.width; + this._panelHeight = entry.contentRect.height; + } + })); + observer.observe(this.props.glContainer._element[0]); this.props.glContainer.layoutManager.on("activeContentItemChanged", this.onActiveContentItemChanged); this.props.glContainer.on("tab", this.onActiveContentItemChanged); this.onActiveContentItemChanged(); @@ -594,13 +602,21 @@ export class DockedFrameRenderer extends React.Component { } } - panelWidth = () => this._document!.ignoreAspect ? this._panelWidth : Math.min(this._panelWidth, Math.max(NumCast(this._document!.width), this.nativeWidth())); - panelHeight = () => this._document!.ignoreAspect ? this._panelHeight : Math.min(this._panelHeight, Math.max(NumCast(this._document!.height), NumCast(this._document!.nativeHeight, this._panelHeight))); + panelWidth = () => this._document!.ignoreAspect || this._document!.fitWidth ? this._panelWidth : Math.min(this._panelWidth, Math.max(NumCast(this._document!.width), this.nativeWidth())); + panelHeight = () => this._document!.ignoreAspect || this._document!.fitWidth ? this._panelHeight : Math.min(this._panelHeight, Math.max(NumCast(this._document!.height), this.nativeHeight())); - nativeWidth = () => !this._document!.ignoreAspect ? NumCast(this._document!.nativeWidth) || this._panelWidth : 0; - nativeHeight = () => !this._document!.ignoreAspect ? NumCast(this._document!.nativeHeight) || this._panelHeight : 0; + nativeWidth = () => !this._document!.ignoreAspect && !this._document!.fitWidth ? NumCast(this._document!.nativeWidth) || this._panelWidth : 0; + nativeHeight = () => !this._document!.ignoreAspect && !this._document!.fitWidth ? NumCast(this._document!.nativeHeight) || this._panelHeight : 0; contentScaling = () => { + if (this._document!.type === DocumentType.PDF) { + if ((this._document && this._document.fitWidth) || + this._panelHeight / NumCast(this._document!.nativeHeight) > this._panelWidth / NumCast(this._document!.nativeWidth)) { + return this._panelWidth / NumCast(this._document!.nativeWidth); + } else { + return this._panelHeight / NumCast(this._document!.nativeHeight); + } + } const nativeH = this.nativeHeight(); const nativeW = this.nativeWidth(); if (!nativeW || !nativeH) return 1; @@ -619,6 +635,7 @@ export class DockedFrameRenderer extends React.Component { get previewPanelCenteringOffset() { return this.nativeWidth() && !BoolCast(this._document!.ignoreAspect) ? (this._panelWidth - this.nativeWidth() / this.ScreenToLocalTransform().Scale) / 2 : 0; } addDocTab = (doc: Doc, dataDoc: Opt, location: string) => { + SelectionManager.DeselectAll(); if (doc.dockingConfig) { MainView.Instance.openWorkspace(doc); return true; @@ -630,13 +647,10 @@ export class DockedFrameRenderer extends React.Component { return CollectionDockingView.Instance.AddTab(this._stack, doc, dataDoc); } } - @computed get docView() { - if (!this._document) { - return (null); - } - let resolvedDataDoc = this._document.layout instanceof Doc ? this._document : this._dataDoc; - return { getScale={returnOne} />; } - @computed get content() { - return ( -
{ - this._mainCont = ref; - if (ref) { - this._panelWidth = Number(getComputedStyle(ref).width!.replace("px", "")); - this._panelHeight = Number(getComputedStyle(ref).height!.replace("px", "")); - } - })} - style={{ transform: `translate(${this.previewPanelCenteringOffset}px, 0px)` }}> - {this.docView} -
); - } - render() { - if (!this._isActive || !this._document) return null; - let theContent = this.content; - return !this._document ? (null) : - { this._panelWidth = r.offset.width; this._panelHeight = r.offset.height; })}> - {({ measureRef }) =>
- {theContent} -
} -
; + return (!this._isActive || !this._document) ? (null) : + (
this._mainCont = ref} + style={{ + transform: `translate(${this.previewPanelCenteringOffset}px, 0px)`, + height: this._document && this._document.fitWidth ? undefined : "100%" + }}> + {this.docView(this._document)} +
); } } \ No newline at end of file diff --git a/src/client/views/collections/CollectionPDFView.scss b/src/client/views/collections/CollectionPDFView.scss index 50201bae8..62ec8a5be 100644 --- a/src/client/views/collections/CollectionPDFView.scss +++ b/src/client/views/collections/CollectionPDFView.scss @@ -1,26 +1,4 @@ -.collectionPdfView-buttonTray { - top: 15px; - left: 20px; - position: relative; - transform-origin: left top; - position: absolute; -} -.collectionPdfView-thumb { - width: 25px; - height: 25px; - transform-origin: left top; - position: absolute; - background: darkgray; -} - -.collectionPdfView-slider { - width: 25px; - height: 25px; - transform-origin: left top; - position: absolute; - background: lightgray; -} .collectionPdfView-cont { width: 100%; @@ -29,28 +7,5 @@ top: 0; left: 0; z-index: -1; + overflow: hidden !important; } - -.collectionPdfView-cont-dragging { - span { - user-select: none; - } -} - -.collectionPdfView-backward { - color: white; - font-size: 24px; - top: 0px; - left: 0px; - position: absolute; - background-color: rgba(50, 50, 50, 0.2); -} - -.collectionPdfView-forward { - color: white; - font-size: 24px; - top: 0px; - left: 45px; - position: absolute; - background-color: rgba(50, 50, 50, 0.2); -} \ No newline at end of file diff --git a/src/client/views/collections/CollectionPDFView.tsx b/src/client/views/collections/CollectionPDFView.tsx index 8eda4d9ee..cc8142ec0 100644 --- a/src/client/views/collections/CollectionPDFView.tsx +++ b/src/client/views/collections/CollectionPDFView.tsx @@ -1,10 +1,9 @@ -import { computed } from "mobx"; +import { trace } from "mobx"; import { observer } from "mobx-react"; import { Id } from "../../../new_fields/FieldSymbols"; import { emptyFunction } from "../../../Utils"; import { ContextMenu } from "../ContextMenu"; import { FieldView, FieldViewProps } from "../nodes/FieldView"; -import { PDFBox } from "../nodes/PDFBox"; import { CollectionBaseView, CollectionRenderProps, CollectionViewType } from "./CollectionBaseView"; import { CollectionFreeFormView } from "./collectionFreeForm/CollectionFreeFormView"; import "./CollectionPDFView.scss"; @@ -17,35 +16,18 @@ export class CollectionPDFView extends React.Component { return FieldView.LayoutString(CollectionPDFView, fieldKey, fieldExt); } - private _pdfBox?: PDFBox; - private _buttonTray: React.RefObject = React.createRef(); - - @computed - get uIButtons() { - return ( -
- - -
- ); - } - onContextMenu = (e: React.MouseEvent): void => { if (!e.isPropagationStopped() && this.props.Document[Id] !== "mainDoc") { // need to test this because GoldenLayout causes a parallel hierarchy in the React DOM for its children and the main document view7 ContextMenu.Instance.addItem({ description: "PDFOptions", event: emptyFunction, icon: "file-pdf" }); } } - setPdfBox = (pdfBox: PDFBox) => { this._pdfBox = pdfBox; }; - subView = (_type: CollectionViewType, renderProps: CollectionRenderProps) => { - return (<> - - {renderProps.active() ? this.uIButtons : (null)} - ); + return (); } render() { + trace(); return ( {this.subView} diff --git a/src/client/views/collections/CollectionSchemaCells.tsx b/src/client/views/collections/CollectionSchemaCells.tsx index 4dac27e60..179e44266 100644 --- a/src/client/views/collections/CollectionSchemaCells.tsx +++ b/src/client/views/collections/CollectionSchemaCells.tsx @@ -34,7 +34,7 @@ export interface CellProps { row: number; col: number; rowProps: CellInfo; - CollectionView: CollectionView | CollectionPDFView | CollectionVideoView; + CollectionView: Opt; ContainingCollection: Opt; Document: Doc; fieldKey: string; @@ -151,7 +151,7 @@ export class CollectionSchemaCell extends React.Component { fieldExt: "", ruleProvider: undefined, ContainingCollectionView: this.props.CollectionView, - ContainingCollectionDoc: this.props.CollectionView.props.Document, + ContainingCollectionDoc: this.props.CollectionView && this.props.CollectionView.props.Document, isSelected: returnFalse, select: emptyFunction, renderDepth: this.props.renderDepth + 1, @@ -301,7 +301,7 @@ export class CollectionSchemaCheckboxCell extends CollectionSchemaCell { render() { let reference = React.createRef(); let onItemDown = (e: React.PointerEvent) => { - (!this.props.CollectionView.props.isSelected() ? undefined : + (!this.props.CollectionView || !this.props.CollectionView.props.isSelected() ? undefined : SetupDrag(reference, () => this._document, this.props.moveDocument, this.props.Document.schemaDoc ? "copy" : undefined)(e)); }; return ( diff --git a/src/client/views/collections/CollectionSchemaView.tsx b/src/client/views/collections/CollectionSchemaView.tsx index 7bd2a1971..8d931f812 100644 --- a/src/client/views/collections/CollectionSchemaView.tsx +++ b/src/client/views/collections/CollectionSchemaView.tsx @@ -246,7 +246,7 @@ export interface SchemaTableProps { PanelHeight: () => number; PanelWidth: () => number; childDocs?: Doc[]; - CollectionView: CollectionView | CollectionPDFView | CollectionVideoView; + CollectionView: Opt; ContainingCollectionView: Opt; ContainingCollectionDoc: Opt; fieldKey: string; @@ -804,7 +804,7 @@ export class SchemaTable extends React.Component { csv.substring(0, csv.length - 1); let dbName = StrCast(this.props.Document.title); let res = await Gateway.Instance.PostSchema(csv, dbName); - if (self.props.CollectionView.props.addDocument) { + if (self.props.CollectionView && self.props.CollectionView.props.addDocument) { let schemaDoc = await Docs.Create.DBDocument("https://www.cs.brown.edu/" + dbName, { title: dbName }, { dbDoc: self.props.Document }); if (schemaDoc) { //self.props.CollectionView.props.addDocument(schemaDoc, false); diff --git a/src/client/views/collections/CollectionStackingView.tsx b/src/client/views/collections/CollectionStackingView.tsx index ccf131797..45de0fefa 100644 --- a/src/client/views/collections/CollectionStackingView.tsx +++ b/src/client/views/collections/CollectionStackingView.tsx @@ -42,7 +42,7 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) { @computed get gridGap() { return NumCast(this.props.Document.gridGap, 10); } @computed get isStackingView() { return BoolCast(this.props.Document.singleColumn, true); } @computed get numGroupColumns() { return this.isStackingView ? Math.max(1, this.Sections.size + (this.showAddAGroup ? 1 : 0)) : 1; } - @computed get showAddAGroup() { return (this.sectionFilter && (this.props.CollectionView.props.Document.chromeStatus !== 'view-mode' && this.props.CollectionView.props.Document.chromeStatus !== 'disabled')); } + @computed get showAddAGroup() { return (this.sectionFilter && this.props.ContainingCollectionDoc && (this.props.ContainingCollectionDoc.chromeStatus !== 'view-mode' && this.props.ContainingCollectionDoc.chromeStatus !== 'disabled')); } @computed get columnWidth() { return Math.min(this.props.PanelWidth() / (this.props as any).ContentScaling() - 2 * this.xMargin, this.isStackingView ? Number.MAX_VALUE : NumCast(this.props.Document.columnWidth, 250)); @@ -160,13 +160,13 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) { if (!d) return 0; let nw = NumCast(d.nativeWidth); let nh = NumCast(d.nativeHeight); - if (!d.ignoreAspect && nw && nh) { + if (!d.ignoreAspect && !d.fitWidth && nw && nh) { let aspect = nw && nh ? nh / nw : 1; let wid = this.columnWidth / (this.isStackingView ? this.numGroupColumns : 1); if (!(d.nativeWidth && !d.ignoreAspect && this.props.Document.fillColumn)) wid = Math.min(d[WidthSym](), wid); return wid * aspect; } - return d[HeightSym](); + return d.fitWidth ? Math.min(this.props.PanelHeight() - 2 * this.yMargin, d[HeightSym]()) : d[HeightSym](); } columnDividerDown = (e: React.PointerEvent) => { @@ -347,7 +347,7 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) { } onToggle = (checked: Boolean) => { - this.props.CollectionView.props.Document.chromeStatus = checked ? "collapsed" : "view-mode"; + this.props.ContainingCollectionDoc && (this.props.ContainingCollectionDoc.chromeStatus = checked ? "collapsed" : "view-mode"); } onContextMenu = (e: React.MouseEvent): void => { @@ -391,10 +391,10 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) { style={{ width: this.columnWidth / this.numGroupColumns - 10, marginTop: 10 }}>
} - {this.props.CollectionView.props.Document.chromeStatus !== 'disabled' ? : null} diff --git a/src/client/views/collections/CollectionStackingViewFieldColumn.tsx b/src/client/views/collections/CollectionStackingViewFieldColumn.tsx index b3b7b40dd..240adf428 100644 --- a/src/client/views/collections/CollectionStackingViewFieldColumn.tsx +++ b/src/client/views/collections/CollectionStackingViewFieldColumn.tsx @@ -266,7 +266,7 @@ export class CollectionStackingViewFieldColumn extends React.Component {/* the default bucket (no key value) has a tooltip that describes what it is. Further, it does not have a color and cannot be deleted. */} @@ -297,7 +297,7 @@ export class CollectionStackingViewFieldColumn extends React.Component : (null); for (let i = 0; i < cols; i++) templatecols += `${style.columnWidth / style.numGroupColumns}px `; return ( -
{headingView}
- {(this.props.parent.props.CollectionView.props.Document.chromeStatus !== 'view-mode' && this.props.parent.props.CollectionView.props.Document.chromeStatus !== 'disabled') ? + {(this.props.parent.props.ContainingCollectionDoc && this.props.parent.props.ContainingCollectionDoc.chromeStatus !== 'view-mode' && this.props.parent.props.ContainingCollectionDoc.chromeStatus !== 'disabled') ?
diff --git a/src/client/views/collections/CollectionSubView.tsx b/src/client/views/collections/CollectionSubView.tsx index c11dd6150..069269b06 100644 --- a/src/client/views/collections/CollectionSubView.tsx +++ b/src/client/views/collections/CollectionSubView.tsx @@ -1,12 +1,12 @@ import { action, computed, IReactionDisposer, reaction } from "mobx"; import * as rp from 'request-promise'; import CursorField from "../../../new_fields/CursorField"; -import { Doc, DocListCast } from "../../../new_fields/Doc"; +import { Doc, DocListCast, Opt } from "../../../new_fields/Doc"; import { Id } from "../../../new_fields/FieldSymbols"; import { List } from "../../../new_fields/List"; import { listSpec } from "../../../new_fields/Schema"; import { ScriptField } from "../../../new_fields/ScriptField"; -import { BoolCast, Cast } from "../../../new_fields/Types"; +import { Cast } from "../../../new_fields/Types"; import { CurrentUserUtils } from "../../../server/authentication/models/current_user_utils"; import { RouteStore } from "../../../server/RouteStore"; import { Utils } from "../../../Utils"; @@ -30,10 +30,11 @@ export interface CollectionViewProps extends FieldViewProps { PanelWidth: () => number; PanelHeight: () => number; chromeCollapsed: boolean; + setPreviewCursor?: (func: (x: number, y: number, drag: boolean) => void) => void; } export interface SubCollectionViewProps extends CollectionViewProps { - CollectionView: CollectionView | CollectionPDFView | CollectionVideoView; + CollectionView: Opt; ruleProvider: Doc | undefined; } diff --git a/src/client/views/collections/CollectionView.tsx b/src/client/views/collections/CollectionView.tsx index 5f4742834..d3072ff1e 100644 --- a/src/client/views/collections/CollectionView.tsx +++ b/src/client/views/collections/CollectionView.tsx @@ -18,6 +18,7 @@ import { CollectionSchemaView } from "./CollectionSchemaView"; import { CollectionStackingView } from './CollectionStackingView'; import { CollectionTreeView } from "./CollectionTreeView"; import { CollectionViewBaseChrome } from './CollectionViewChromes'; +import { AddCustomFreeFormLayout } from './collectionFreeForm/CollectionFreeFormLayoutEngines'; export const COLLECTION_BORDER_WIDTH = 2; library.add(faTh, faTree, faSquare, faProjectDiagram, faSignature, faThList, faFingerprint, faColumns, faEllipsisV, faImage, faEye as any, faCopy); @@ -59,8 +60,10 @@ export class CollectionView extends React.Component { case CollectionViewType.Tree: return (); case CollectionViewType.Stacking: { this.props.Document.singleColumn = true; return (); } case CollectionViewType.Masonry: { this.props.Document.singleColumn = false; return (); } + case CollectionViewType.Pivot: { this.props.Document.freeformLayoutEngine = "pivot"; return (); } case CollectionViewType.Freeform: default: + this.props.Document.freeformLayoutEngine = undefined; return (); } return (null); @@ -89,7 +92,7 @@ export class CollectionView extends React.Component { if (!this.isAnnotationOverlay && !e.isPropagationStopped() && this.props.Document[Id] !== CurrentUserUtils.MainDocId) { // need to test this because GoldenLayout causes a parallel hierarchy in the React DOM for its children and the main document view7 let existingVm = ContextMenu.Instance.findByDescription("View Modes..."); let subItems: ContextMenuProps[] = existingVm && "subitems" in existingVm ? existingVm.subitems : []; - subItems.push({ description: "Freeform", event: () => { this.props.Document.viewType = CollectionViewType.Freeform; delete this.props.Document.usePivotLayout; }, icon: "signature" }); + subItems.push({ description: "Freeform", event: () => { this.props.Document.viewType = CollectionViewType.Freeform; }, icon: "signature" }); if (CollectionBaseView.InSafeMode()) { ContextMenu.Instance.addItem({ description: "Test Freeform", event: () => this.props.Document.viewType = CollectionViewType.Invalid, icon: "project-diagram" }); } @@ -103,10 +106,10 @@ export class CollectionView extends React.Component { }, icon: "ellipsis-v" }); subItems.push({ description: "Masonry", event: () => this.props.Document.viewType = CollectionViewType.Masonry, icon: "columns" }); + subItems.push({ description: "Pivot", event: () => this.props.Document.viewType = CollectionViewType.Pivot, icon: "columns" }); switch (this.props.Document.viewType) { case CollectionViewType.Freeform: { - subItems.push({ description: "Custom", icon: "fingerprint", event: CollectionFreeFormView.AddCustomLayout(this.props.Document, this.props.fieldKey) }); - subItems.push({ description: "Pivot", icon: "copy", event: () => this.props.Document.usePivotLayout = true }); + subItems.push({ description: "Custom", icon: "fingerprint", event: AddCustomFreeFormLayout(this.props.Document, this.props.fieldKey) }); break; } } diff --git a/src/client/views/collections/CollectionViewChromes.tsx b/src/client/views/collections/CollectionViewChromes.tsx index 20786f690..cefa9eebc 100644 --- a/src/client/views/collections/CollectionViewChromes.tsx +++ b/src/client/views/collections/CollectionViewChromes.tsx @@ -260,7 +260,7 @@ export class CollectionViewBaseChrome extends React.Component { - if (!this.document.usePivotLayout) { + if (StrCast(this.document.freeformLayoutEngine) !== "pivot") { return (null); } return (Tree View +
ViewDefResult[]) { + let layoutPoolData: Map<{ layout: Doc, data?: Doc }, any> = new Map(); + const pivotAxisWidth = NumCast(pivotDoc.pivotWidth, 200); + const pivotColumnGroups = new Map, Doc[]>(); + + for (const doc of childDocs) { + const val = doc[StrCast(pivotDoc.pivotField, "title")]; + if (val) { + !pivotColumnGroups.get(val) && pivotColumnGroups.set(val, []); + pivotColumnGroups.get(val)!.push(doc); + } + } + + const minSize = Array.from(pivotColumnGroups.entries()).reduce((min, pair) => Math.min(min, pair[1].length), Infinity); + const numCols = NumCast(pivotDoc.pivotNumColumns, Math.ceil(Math.sqrt(minSize))); + const docMap = new Map(); + const groupNames: PivotData[] = []; + + let x = 0; + pivotColumnGroups.forEach((val, key) => { + let y = 0; + let xCount = 0; + groupNames.push({ + type: "text", + text: String(key), + x, + y: pivotAxisWidth + 50, + width: pivotAxisWidth * 1.25 * numCols, + height: 100, + fontSize: NumCast(pivotDoc.pivotFontSize, 10) + }); + for (const doc of val) { + docMap.set(doc, { + x: x + xCount * pivotAxisWidth * 1.25, + y: -y, + width: pivotAxisWidth, + height: doc.nativeWidth ? (NumCast(doc.nativeHeight) / NumCast(doc.nativeWidth)) * pivotAxisWidth : pivotAxisWidth + }); + xCount++; + if (xCount >= numCols) { + xCount = 0; + y += pivotAxisWidth * 1.25; + } + } + x += pivotAxisWidth * 1.25 * (numCols + 1); + }); + + childPairs.map(pair => { + let defaultPosition = { + x: NumCast(pair.layout.x), + y: NumCast(pair.layout.y), + z: NumCast(pair.layout.z), + width: NumCast(pair.layout.width), + height: NumCast(pair.layout.height) + }; + const pos = docMap.get(pair.layout) || defaultPosition; + layoutPoolData.set(pair, { transition: "transform 1s", ...pos }); + }); + return { map: layoutPoolData, elements: viewDefsToJSX(groupNames) }; +} + +export function AddCustomFreeFormLayout(doc: Doc, dataKey: string): () => void { + return () => { + let addOverlay = (key: "arrangeScript" | "arrangeInit", options: OverlayElementOptions, params?: Record, requiredType?: string) => { + let overlayDisposer: () => void = emptyFunction; // filled in below after we have a reference to the scriptingBox + const scriptField = Cast(doc[key], ScriptField); + let scriptingBox = overlayDisposer()} // don't get rid of the function wrapper-- we don't want to use the current value of overlayDiposer, but the one set below + onSave={(text, onError) => { + const script = CompileScript(text, { params, requiredType, typecheck: false }); + if (!script.compiled) { + onError(script.errors.map(error => error.messageText).join("\n")); + } else { + doc[key] = new ScriptField(script); + overlayDisposer(); + } + }} />; + overlayDisposer = OverlayView.Instance.addWindow(scriptingBox, options); + }; + addOverlay("arrangeInit", { x: 400, y: 100, width: 400, height: 300, title: "Layout Initialization" }, { collection: "Doc", docs: "Doc[]" }, undefined); + addOverlay("arrangeScript", { x: 400, y: 500, width: 400, height: 300, title: "Layout Script" }, { doc: "Doc", index: "number", collection: "Doc", state: "any", docs: "Doc[]" }, "{x: number, y: number, width?: number, height?: number}"); + }; +} diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index 5157d0c75..c6e8d7cf7 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -1,22 +1,23 @@ import { library } from "@fortawesome/fontawesome-svg-core"; import { faEye } from "@fortawesome/free-regular-svg-icons"; import { faBraille, faChalkboard, faCompass, faCompressArrowsAlt, faExpandArrowsAlt, faPaintBrush, faTable, faUpload } from "@fortawesome/free-solid-svg-icons"; -import { action, computed, IReactionDisposer, observable, reaction, trace } from "mobx"; +import { action, computed, observable } from "mobx"; import { observer } from "mobx-react"; -import { Doc, DocListCastAsync, Field, FieldResult, HeightSym, Opt, WidthSym, DocListCast } from "../../../../new_fields/Doc"; +import { Doc, DocListCast, HeightSym, Opt, WidthSym } from "../../../../new_fields/Doc"; import { Id } from "../../../../new_fields/FieldSymbols"; import { InkField, StrokeData } from "../../../../new_fields/InkField"; import { createSchema, makeInterface } from "../../../../new_fields/Schema"; import { ScriptField } from "../../../../new_fields/ScriptField"; -import { BoolCast, Cast, FieldValue, NumCast, StrCast, PromiseValue, DateCast } from "../../../../new_fields/Types"; -import { emptyFunction, returnEmptyString, returnOne, Utils } from "../../../../Utils"; +import { BoolCast, Cast, DateCast, NumCast, StrCast } from "../../../../new_fields/Types"; +import { CurrentUserUtils } from "../../../../server/authentication/models/current_user_utils"; +import { aggregateBounds, emptyFunction, intersectRect, returnEmptyString, returnOne, Utils } from "../../../../Utils"; import { CognitiveServices } from "../../../cognitive_services/CognitiveServices"; +import { DocServer } from "../../../DocServer"; import { Docs } from "../../../documents/Documents"; import { DocumentType } from "../../../documents/DocumentTypes"; import { DocumentManager } from "../../../util/DocumentManager"; import { DragManager } from "../../../util/DragManager"; import { HistoryUtil } from "../../../util/History"; -import { CompileScript } from "../../../util/Scripting"; import { SelectionManager } from "../../../util/SelectionManager"; import { Transform } from "../../../util/Transform"; import { undoBatch, UndoManager } from "../../../util/UndoManager"; @@ -26,12 +27,12 @@ import { ContextMenuProps } from "../../ContextMenuItem"; import { InkingCanvas } from "../../InkingCanvas"; import { CollectionFreeFormDocumentView, positionSchema } from "../../nodes/CollectionFreeFormDocumentView"; import { DocumentContentsView } from "../../nodes/DocumentContentsView"; -import { DocumentViewProps, documentSchema } from "../../nodes/DocumentView"; +import { documentSchema, DocumentViewProps } from "../../nodes/DocumentView"; +import { FormattedTextBox } from "../../nodes/FormattedTextBox"; import { pageSchema } from "../../nodes/ImageBox"; -import { OverlayElementOptions, OverlayView } from "../../OverlayView"; import PDFMenu from "../../pdf/PDFMenu"; -import { ScriptBox } from "../../ScriptBox"; import { CollectionSubView } from "../CollectionSubView"; +import { computePivotLayout, ViewDefResult } from "./CollectionFreeFormLayoutEngines"; import { CollectionFreeFormLinksView } from "./CollectionFreeFormLinksView"; import { CollectionFreeFormRemoteCursors } from "./CollectionFreeFormRemoteCursors"; import "./CollectionFreeFormView.scss"; @@ -40,9 +41,6 @@ import React = require("react"); import v5 = require("uuid/v5"); import { Timeline } from "../../animationtimeline/Timeline"; import { number } from "prop-types"; -import { DocServer } from "../../../DocServer"; -import { FormattedTextBox } from "../../nodes/FormattedTextBox"; -import { CurrentUserUtils } from "../../../../server/authentication/models/current_user_utils"; library.add(faEye as any, faTable, faPaintBrush, faExpandArrowsAlt, faCompressArrowsAlt, faCompass, faUpload, faBraille, faChalkboard); @@ -54,132 +52,10 @@ export const panZoomSchema = createSchema({ arrangeInit: ScriptField, useClusters: "boolean", isRuleProvider: "boolean", - fitToBox: "boolean" + fitToBox: "boolean", + panTransformType: "string", }); -export interface ViewDefBounds { - x: number; - y: number; - z?: number; - width: number; - height: number; -} - -export interface ViewDefResult { - ele: JSX.Element; - bounds?: ViewDefBounds; -} - -export namespace PivotView { - - export interface PivotData { - type: string; - text: string; - x: number; - y: number; - width: number; - height: number; - fontSize: number; - } - - export const elements = (target: CollectionFreeFormView) => { - let collection = target.Document; - const field = StrCast(collection.pivotField) || "title"; - const width = NumCast(collection.pivotWidth) || 200; - const groups = new Map, Doc[]>(); - - for (const doc of target.childDocs) { - const val = doc[field]; - if (val === undefined) continue; - - const l = groups.get(val); - if (l) { - l.push(doc); - } else { - groups.set(val, [doc]); - } - } - - let minSize = Infinity; - - groups.forEach((val, key) => minSize = Math.min(minSize, val.length)); - - const numCols = NumCast(collection.pivotNumColumns) || Math.ceil(Math.sqrt(minSize)); - const fontSize = NumCast(collection.pivotFontSize); - - const docMap = new Map(); - const groupNames: PivotData[] = []; - - let x = 0; - groups.forEach((val, key) => { - let y = 0; - let xCount = 0; - groupNames.push({ - type: "text", - text: String(key), - x, - y: width + 50, - width: width * 1.25 * numCols, - height: 100, fontSize: fontSize - }); - for (const doc of val) { - docMap.set(doc, { - x: x + xCount * width * 1.25, - y: -y, - width, - height: width - }); - xCount++; - if (xCount >= numCols) { - xCount = 0; - y += width * 1.25; - } - } - x += width * 1.25 * (numCols + 1); - }); - - let elements = target.viewDefsToJSX(groupNames); - let docViews = target.childDocs.reduce((prev, doc) => { - let minim = BoolCast(doc.isMinimized); - if (minim === undefined || !minim) { - let defaultPosition = (): ViewDefBounds => { - return { - x: NumCast(doc.x), - y: NumCast(doc.y), - z: NumCast(doc.z), - width: NumCast(doc.width), - height: NumCast(doc.height) - }; - }; - const pos = docMap.get(doc) || defaultPosition(); - prev.push({ - ele: , - bounds: { - x: pos.x, - y: pos.y, - z: pos.z, - width: NumCast(pos.width), - height: NumCast(pos.height) - } - }); - } - return prev; - }, elements); - - return docViews; - }; - -} - type PanZoomDocument = makeInterface<[typeof panZoomSchema, typeof documentSchema, typeof positionSchema, typeof pageSchema]>; const PanZoomDocument = makeInterface(panZoomSchema, documentSchema, positionSchema, pageSchema); @@ -187,50 +63,26 @@ const PanZoomDocument = makeInterface(panZoomSchema, documentSchema, positionSch export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { private _lastX: number = 0; private _lastY: number = 0; - private get _pwidth() { return this.props.PanelWidth(); } - private get _pheight() { return this.props.PanelHeight(); } - private _timelineRef = React.createRef(); - private get parentScaling() { - return (this.props as any).ContentScaling && this.fitToBox && !this.isAnnotationOverlay ? (this.props as any).ContentScaling() : 1; - } - - ComputeContentBounds(boundsList: { x: number, y: number, width: number, height: number }[]) { - let bounds = boundsList.reduce((bounds, b) => { - var [sptX, sptY] = [b.x, b.y]; - let [bptX, bptY] = [sptX + NumCast(b.width, 1), sptY + NumCast(b.height, 1)]; - return { - x: Math.min(sptX, bounds.x), y: Math.min(sptY, bounds.y), - r: Math.max(bptX, bounds.r), b: Math.max(bptY, bounds.b) - }; - }, { x: Number.MAX_VALUE, y: Number.MAX_VALUE, r: -Number.MAX_VALUE, b: -Number.MAX_VALUE }); - return bounds; - } - - @computed get actualContentBounds() { - return this.fitToBox && !this.isAnnotationOverlay ? this.ComputeContentBounds(this.elements.filter(e => e.bounds && !e.bounds.z).map(e => e.bounds!)) : undefined; - } - - @computed get contentBounds() { - let bounds = this.actualContentBounds; - let res = { - panX: bounds ? (bounds.x + bounds.r) / 2 : this.Document.panX || 0, - panY: bounds ? (bounds.y + bounds.b) / 2 : this.Document.panY || 0, - scale: (bounds ? Math.min(this.props.PanelHeight() / (bounds.b - bounds.y), this.props.PanelWidth() / (bounds.r - bounds.x)) : this.Document.scale || 1) / this.parentScaling - }; - if (res.scale === 0) res.scale = 1; - return res; - } - - @computed get fitToBox() { return this.props.fitToBox || this.Document.fitToBox; } - @computed get nativeWidth() { return this.fitToBox ? 0 : this.Document.nativeWidth || 0; } - @computed get nativeHeight() { return this.fitToBox ? 0 : this.Document.nativeHeight || 0; } - public get isAnnotationOverlay() { return this.props.fieldExt ? true : false; } // fieldExt will be "" or "annotation". should maybe generalize this, or make it more specific (ie, 'annotation' instead of 'fieldExt') + private _clusterDistance: number = 75; + private _hitCluster = false; + @observable _clusterSets: (Doc[])[] = []; + @observable _timelineRef = React.createRef(); + + @computed get fitToContent() { return (this.props.fitToBox || this.Document.fitToBox) && !this.isAnnotationOverlay; } + @computed get parentScaling() { return this.props.ContentScaling && this.fitToContent && !this.isAnnotationOverlay ? this.props.ContentScaling() : 1; } + @computed get contentBounds() { return aggregateBounds(this.elements.filter(e => e.bounds && !e.bounds.z).map(e => e.bounds!)); } + @computed get nativeWidth() { return this.fitToContent ? 0 : this.Document.nativeWidth || 0; } + @computed get nativeHeight() { return this.fitToContent ? 0 : this.Document.nativeHeight || 0; } + private get isAnnotationOverlay() { return this.props.fieldExt ? true : false; } // fieldExt will be "" or "annotation". should maybe generalize this, or make it more specific (ie, 'annotation' instead of 'fieldExt') private get borderWidth() { return this.isAnnotationOverlay ? 0 : COLLECTION_BORDER_WIDTH; } - private panX = () => this.contentBounds.panX; - private panY = () => this.contentBounds.panY; - private zoomScaling = () => this.contentBounds.scale; - private centeringShiftX = () => !this.nativeWidth && !this.isAnnotationOverlay ? this._pwidth / 2 / this.parentScaling : 0; // shift so pan position is at center of window for non-overlay collections - private centeringShiftY = () => !this.nativeHeight && !this.isAnnotationOverlay ? this._pheight / 2 / this.parentScaling : 0;// shift so pan position is at center of window for non-overlay collections + private easing = () => this.props.Document.panTransformType === "Ease"; + private panX = () => this.fitToContent ? (this.contentBounds.x + this.contentBounds.r) / 2 : this.Document.panX || 0; + private panY = () => this.fitToContent ? (this.contentBounds.y + this.contentBounds.b) / 2 : this.Document.panY || 0; + private zoomScaling = () => (1 / this.parentScaling) * (this.fitToContent ? + Math.min(this.props.PanelHeight() / (this.contentBounds.b - this.contentBounds.y), this.props.PanelWidth() / (this.contentBounds.r - this.contentBounds.x)) : + this.Document.scale || 1); + private centeringShiftX = () => !this.nativeWidth && !this.isAnnotationOverlay ? this.props.PanelWidth() / 2 / this.parentScaling : 0; // shift so pan position is at center of window for non-overlay collections + private centeringShiftY = () => !this.nativeHeight && !this.isAnnotationOverlay ? this.props.PanelHeight() / 2 / this.parentScaling : 0;// shift so pan position is at center of window for non-overlay collections private getTransform = (): Transform => this.props.ScreenToLocalTransform().translate(-this.borderWidth + 1, -this.borderWidth + 1).translate(-this.centeringShiftX(), -this.centeringShiftY()).transform(this.getLocalTransform()); private getTransformOverlay = (): Transform => this.props.ScreenToLocalTransform().translate(-this.borderWidth + 1, -this.borderWidth + 1); private getContainerTransform = (): Transform => this.props.ScreenToLocalTransform().translate(-this.borderWidth, -this.borderWidth); @@ -248,47 +100,31 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { this.addDocument(newBox, false); } private addDocument = (newBox: Doc, allowDuplicates: boolean) => { - this.props.addDocument(newBox, false); - this.bringToFront(newBox); - this.updateCluster(newBox); - return true; + let added = this.props.addDocument(newBox, false); + added && this.bringToFront(newBox); + added && this.updateCluster(newBox); + return added; } private selectDocuments = (docs: Doc[]) => { SelectionManager.DeselectAll(); - docs.map(doc => DocumentManager.Instance.getDocumentView(doc)).filter(dv => dv).map(dv => - SelectionManager.SelectDoc(dv!, true)); + docs.map(doc => DocumentManager.Instance.getDocumentView(doc)).map(dv => dv && SelectionManager.SelectDoc(dv, true)); } + public isCurrent(doc: Doc) { return !this.props.Document.isMinimized && (Math.abs(NumCast(doc.page, -1) - NumCast(this.Document.curPage, -1)) < 1.5 || NumCast(doc.page, -1) === -1); } + public getActiveDocuments = () => { - const curPage = FieldValue(this.Document.curPage, -1); - return this.childLayoutPairs.filter(pair => { - var page = NumCast(pair.layout!.page, -1); - return page === curPage || page === -1; - }).map(pair => pair.layout); + return this.childLayoutPairs.filter(pair => this.isCurrent(pair.layout)).map(pair => pair.layout); } @computed get fieldExtensionDoc() { return Doc.fieldExtensionDoc(this.props.DataDoc || this.props.Document, this.props.fieldKey); } - intersectRect(r1: { left: number, top: number, width: number, height: number }, - r2: { left: number, top: number, width: number, height: number }) { - return !(r2.left > r1.left + r1.width || r2.left + r2.width < r1.left || r2.top > r1.top + r1.height || r2.top + r2.height < r1.top); - } - _clusterDistance = 75; - boundsOverlap(doc: Doc, doc2: Doc) { - var x2 = NumCast(doc2.x) - this._clusterDistance; - var y2 = NumCast(doc2.y) - this._clusterDistance; - var w2 = NumCast(doc2.width) + this._clusterDistance; - var h2 = NumCast(doc2.height) + this._clusterDistance; - var x = NumCast(doc.x) - this._clusterDistance; - var y = NumCast(doc.y) - this._clusterDistance; - var w = NumCast(doc.width) + this._clusterDistance; - var h = NumCast(doc.height) + this._clusterDistance; - if (doc.z === doc2.z && this.intersectRect({ left: x, top: y, width: w, height: h }, { left: x2, top: y2, width: w2, height: h2 })) { - return true; - } - return false; + @action + onDrop = (e: React.DragEvent): void => { + var pt = this.getTransform().transformPoint(e.pageX, e.pageY); + super.onDrop(e, { x: pt[0], y: pt[1] }); } + @undoBatch @action drop = (e: Event, de: DragManager.DropEvent) => { @@ -304,7 +140,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { let y = (z ? ypo : yp) - de.data.offset[1]; let dropX = NumCast(de.data.droppedDocuments[0].x); let dropY = NumCast(de.data.droppedDocuments[0].y); - de.data.droppedDocuments.forEach(d => { + de.data.droppedDocuments.forEach(action((d: Doc) => { d.x = x + NumCast(d.x) - dropX; d.y = y + NumCast(d.y) - dropY; if (!NumCast(d.width)) { @@ -316,7 +152,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { d.height = nw && nh ? nh / nw * NumCast(d.width) : 300; } this.bringToFront(d); - }); + })); de.data.droppedDocuments.length === 1 && this.updateCluster(de.data.droppedDocuments[0]); } @@ -339,18 +175,18 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { return false; } - tryDragCluster(e: PointerEvent) { - let probe = this.getTransform().transformPoint(e.clientX, e.clientY); - let cluster = this.childLayoutPairs.map(pair => pair.layout).reduce((cluster, cd) => { + pickCluster(probe: number[]) { + return this.childLayoutPairs.map(pair => pair.layout).reduce((cluster, cd) => { let cx = NumCast(cd.x) - this._clusterDistance; let cy = NumCast(cd.y) - this._clusterDistance; let cw = NumCast(cd.width) + 2 * this._clusterDistance; let ch = NumCast(cd.height) + 2 * this._clusterDistance; - if (!cd.z && this.intersectRect({ left: cx, top: cy, width: cw, height: ch }, { left: probe[0], top: probe[1], width: 1, height: 1 })) { - return NumCast(cd.cluster); - } - return cluster; + return !cd.z && intersectRect({ left: cx, top: cy, width: cw, height: ch }, { left: probe[0], top: probe[1], width: 1, height: 1 }) ? + NumCast(cd.cluster) : cluster; }, -1); + } + tryDragCluster(e: PointerEvent) { + let cluster = this.pickCluster(this.getTransform().transformPoint(e.clientX, e.clientY)); if (cluster !== -1) { let eles = this.childLayoutPairs.map(pair => pair.layout).filter(cd => NumCast(cd.cluster) === cluster); @@ -375,36 +211,12 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { return false; } - @observable sets: (Doc[])[] = []; @undoBatch - @action updateClusters(useClusters: boolean) { - this.Document.useClusters = useClusters; - this.sets.length = 0; - this.childLayoutPairs.map(pair => pair.layout).map(c => { - let included = []; - for (let i = 0; i < this.sets.length; i++) { - for (let member of this.sets[i]) { - if (this.boundsOverlap(c, member)) { - included.push(i); - break; - } - } - } - if (included.length === 0) { - this.sets.push([c]); - } else if (included.length === 1) { - this.sets[included[0]].push(c); - } else { - this.sets[included[0]].push(c); - for (let s = 1; s < included.length; s++) { - this.sets[included[0]].push(...this.sets[included[s]]); - this.sets[included[s]].length = 0; - } - } - }); - this.sets.map((set, i) => set.map(member => member.cluster = i)); + this.props.Document.useClusters = useClusters; + this._clusterSets.length = 0; + this.childLayoutPairs.map(pair => pair.layout).map(c => this.updateCluster(c)); } @undoBatch @@ -412,28 +224,28 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { updateCluster(doc: Doc) { let childLayouts = this.childLayoutPairs.map(pair => pair.layout); if (this.props.Document.useClusters) { - this.sets.map(set => Doc.IndexOf(doc, set) !== -1 && set.splice(Doc.IndexOf(doc, set), 1)); + this._clusterSets.map(set => Doc.IndexOf(doc, set) !== -1 && set.splice(Doc.IndexOf(doc, set), 1)); let preferredInd = NumCast(doc.cluster); doc.cluster = -1; - this.sets.map((set, i) => set.map(member => { - if (doc.cluster === -1 && Doc.IndexOf(member, childLayouts) !== -1 && this.boundsOverlap(doc, member)) { + this._clusterSets.map((set, i) => set.map(member => { + if (doc.cluster === -1 && Doc.IndexOf(member, childLayouts) !== -1 && Doc.overlapping(doc, member, this._clusterDistance)) { doc.cluster = i; } })); - if (doc.cluster === -1 && preferredInd !== -1 && (!this.sets[preferredInd] || !this.sets[preferredInd].filter(member => Doc.IndexOf(member, childLayouts) !== -1).length)) { + if (doc.cluster === -1 && preferredInd !== -1 && (!this._clusterSets[preferredInd] || !this._clusterSets[preferredInd].filter(member => Doc.IndexOf(member, childLayouts) !== -1).length)) { doc.cluster = preferredInd; } - this.sets.map((set, i) => { + this._clusterSets.map((set, i) => { if (doc.cluster === -1 && !set.filter(member => Doc.IndexOf(member, childLayouts) !== -1).length) { doc.cluster = i; } }); if (doc.cluster === -1) { - doc.cluster = this.sets.length; - this.sets.push([doc]); + doc.cluster = this._clusterSets.length; + this._clusterSets.push([doc]); } else { - for (let i = this.sets.length; i <= doc.cluster; i++) !this.sets[i] && this.sets.push([]); - this.sets[doc.cluster].push(doc); + for (let i = this._clusterSets.length; i <= doc.cluster; i++) !this._clusterSets[i] && this._clusterSets.push([]); + this._clusterSets[doc.cluster].push(doc); } } } @@ -442,13 +254,13 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { let clusterColor = ""; let cluster = NumCast(doc.cluster); if (this.Document.useClusters) { - if (this.sets.length <= cluster) { + if (this._clusterSets.length <= cluster) { setTimeout(() => this.updateCluster(doc), 0); } else { // choose a cluster color from a palette let colors = ["#da42429e", "#31ea318c", "#8c4000", "#4a7ae2c4", "#d809ff", "#ff7601", "#1dffff", "yellow", "#1b8231f2", "#000000ad"]; clusterColor = colors[cluster % colors.length]; - let set = this.sets.length > cluster ? this.sets[cluster].filter(s => s.backgroundColor && (s.backgroundColor !== s.defaultBackgroundColor)) : undefined; + let set = this._clusterSets[cluster] && this._clusterSets[cluster].filter(s => s.backgroundColor && (s.backgroundColor !== s.defaultBackgroundColor)); // override the cluster color with an explicitly set color on a non-background document. then override that with an explicitly set color on a background document set && set.filter(s => !s.isBackground).map(s => clusterColor = StrCast(s.backgroundColor)); set && set.filter(s => s.isBackground).map(s => clusterColor = StrCast(s.backgroundColor)); @@ -459,6 +271,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { @action onPointerDown = (e: React.PointerEvent): void => { + this._hitCluster = this.props.Document.useClusters ? this.pickCluster(this.getTransform().transformPoint(e.clientX, e.clientY)) !== -1 : false; if (e.button === 0 && !e.shiftKey && !e.altKey && (!this.isAnnotationOverlay || this.zoomScaling() !== 1) && this.props.active()) { document.removeEventListener("pointermove", this.onPointerMove); document.removeEventListener("pointerup", this.onPointerUp); @@ -476,8 +289,8 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { @action onPointerMove = (e: PointerEvent): void => { - if (!e.cancelBubble) { - if (this.props.Document.useClusters && this.tryDragCluster(e)) { + if (!e.cancelBubble && !this.isAnnotationOverlay) { + if (this._hitCluster && this.tryDragCluster(e)) { e.stopPropagation(); // doesn't actually stop propagation since all our listeners are listening to events on 'document' however it does mark the event as cancelBubble=true which we test for in the move event handlers e.preventDefault(); document.removeEventListener("pointermove", this.onPointerMove); @@ -512,8 +325,8 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { } let cscale = this.props.ContainingCollectionDoc ? NumCast(this.props.ContainingCollectionDoc.scale) : 1; - let panelDim = this.props.ScreenToLocalTransform().transformDirection(this._pwidth / this.zoomScaling() * cscale, - this._pheight / this.zoomScaling() * cscale); + let panelDim = this.props.ScreenToLocalTransform().transformDirection(this.props.PanelWidth() / this.zoomScaling() * cscale, + this.props.PanelHeight() / this.zoomScaling() * cscale); if (ranges[0][0] - dx > (this.panX() + panelDim[0] / 2)) x = ranges[0][1] + panelDim[0] / 2; if (ranges[0][1] - dx < (this.panX() - panelDim[0] / 2)) x = ranges[0][0] - panelDim[0] / 2; if (ranges[1][0] - dy > (this.panY() + panelDim[1] / 2)) y = ranges[1][1] + panelDim[1] / 2; @@ -529,7 +342,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { @action onPointerWheel = (e: React.WheelEvent): void => { - if (BoolCast(this.props.Document.lockedPosition)) return; + if (this.props.Document.lockedPosition || this.isAnnotationOverlay) return; if (!e.ctrlKey && this.props.Document.scrollHeight !== undefined) { // things that can scroll vertically should do that instead of zooming e.stopPropagation(); } @@ -546,13 +359,12 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { let safeScale = Math.min(Math.max(0.15, localTransform.Scale), 40); this.props.Document.scale = Math.abs(safeScale); this.setPan(-localTransform.TranslateX / safeScale, -localTransform.TranslateY / safeScale); - e.preventDefault(); } } @action setPan(panX: number, panY: number) { - if (!BoolCast(this.props.Document.lockedPosition)) { + if (!this.props.Document.lockedPosition) { this.props.Document.panTransformType = "None"; var scale = this.getLocalTransform().inverse().Scale; const newPanX = Math.min((1 - 1 / scale) * this.nativeWidth, Math.max(0, panX)); @@ -562,12 +374,6 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { } } - @action - onDrop = (e: React.DragEvent): void => { - var pt = this.getTransform().transformPoint(e.pageX, e.pageY); - super.onDrop(e, { x: pt[0], y: pt[1] }); - } - bringToFront = (doc: Doc, sendToBack?: boolean) => { if (sendToBack || doc.isBackground) { doc.zIndex = 0; @@ -599,54 +405,45 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { } } SelectionManager.DeselectAll(); - const newPanX = NumCast(doc.x) + NumCast(doc.width) / 2; - const newPanY = NumCast(doc.y) + NumCast(doc.height) / 2; - const newState = HistoryUtil.getState(); - newState.initializers![this.Document[Id]] = { panX: newPanX, panY: newPanY }; - HistoryUtil.pushState(newState); - - let px = this.Document.panX; - let py = this.Document.panY; - let s = this.Document.scale; - this.setPan(newPanX, newPanY); - - this.props.Document.panTransformType = "Ease"; - this.props.focus(this.props.Document); - if (willZoom) { - this.setScaleToZoom(doc, scale); + if (this.props.Document.scrollHeight) { + let annotOn = Cast(doc.annotationOn, Doc) as Doc; + let offset = annotOn && (NumCast(annotOn.height) / 2); + this.props.Document.scrollY = NumCast(doc.y) - offset; + } else { + const newPanX = NumCast(doc.x) + NumCast(doc.width) / 2; + const newPanY = NumCast(doc.y) + NumCast(doc.height) / 2; + const newState = HistoryUtil.getState(); + newState.initializers![this.Document[Id]] = { panX: newPanX, panY: newPanY }; + HistoryUtil.pushState(newState); + + let savedState = { px: this.Document.panX, py: this.Document.panY, s: this.Document.scale, pt: this.Document.panTransformType }; + + this.setPan(newPanX, newPanY); + this.Document.panTransformType = "Ease"; + this.props.focus(this.props.Document); + willZoom && this.setScaleToZoom(doc, scale); + + afterFocus && setTimeout(() => { + if (afterFocus && afterFocus()) { + this.Document.panX = savedState.px; + this.Document.panY = savedState.py; + this.Document.scale = savedState.s; + this.Document.panTransformType = savedState.pt; + } + }, 1000); } - console.log("Focused " + this.Document.title + " " + s); - afterFocus && setTimeout(() => { - if (afterFocus && afterFocus()) { - console.log("UnFocused " + this.Document.title + " " + s); - this.Document.panX = px; - this.Document.panY = py; - this.Document.scale = s; - } - }, 1000); + } setScaleToZoom = (doc: Doc, scale: number = 0.5) => { - let p = this.props; - let PanelHeight = p.PanelHeight(); - let panelWidth = p.PanelWidth(); - - let docHeight = NumCast(doc.height); - let docWidth = NumCast(doc.width); - let targetHeight = scale * PanelHeight; - let targetWidth = scale * panelWidth; - - let maxScaleX: number = targetWidth / docWidth; - let maxScaleY: number = targetHeight / docHeight; - let maxApplicableScale = Math.min(maxScaleX, maxScaleY); - this.Document.scale = maxApplicableScale; + this.Document.scale = scale * Math.min(this.props.PanelWidth() / NumCast(doc.width), this.props.PanelHeight() / NumCast(doc.height)); } zoomToScale = (scale: number) => { this.Document.scale = scale; } - getScale = () => this.Document.scale ? this.Document.scale : 1; + getScale = () => this.Document.scale || 1; getChildDocumentViewProps(childLayout: Doc, childData?: Doc): DocumentViewProps { return { @@ -663,7 +460,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { PanelHeight: childLayout[HeightSym], ContentScaling: returnOne, ContainingCollectionView: this.props.CollectionView, - ContainingCollectionDoc: this.props.CollectionView.props.Document, + ContainingCollectionDoc: this.props.Document, focus: this.focusDocument, backgroundColor: this.getClusterColor, parentActive: this.props.active, @@ -690,7 +487,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { PanelHeight: layoutDoc[HeightSym], ContentScaling: returnOne, ContainingCollectionView: this.props.CollectionView, - ContainingCollectionDoc: this.props.CollectionView.props.Document, + ContainingCollectionDoc: this.props.ContainingCollectionDoc, focus: this.focusDocument, backgroundColor: returnEmptyString, parentActive: this.props.active, @@ -713,110 +510,109 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { } viewDefsToJSX = (views: any[]) => { - let elements: ViewDefResult[] = []; - if (Array.isArray(views)) { - elements = views.reduce((prev, ele) => { - const jsx = this.viewDefToJSX(ele); - jsx && prev.push(jsx); - return prev; - }, elements); - } - return elements; + return !Array.isArray(views) ? [] : views.filter(ele => this.viewDefToJSX(ele)).map(ele => this.viewDefToJSX(ele)!); } private viewDefToJSX(viewDef: any): Opt { if (viewDef.type === "text") { - const text = Cast(viewDef.text, "string"); + const text = Cast(viewDef.text, "string"); // don't use NumCast, StrCast, etc since we want to test for undefined below const x = Cast(viewDef.x, "number"); const y = Cast(viewDef.y, "number"); const z = Cast(viewDef.z, "number"); const width = Cast(viewDef.width, "number"); const height = Cast(viewDef.height, "number"); const fontSize = Cast(viewDef.fontSize, "number"); - if ([text, x, y, width, height].some(val => val === undefined)) { - return undefined; - } - - return { - ele:
{text}
, bounds: { x: x!, y: y!, z: z, width: width!, height: height! } - }; + return [text, x, y, width, height].some(val => val === undefined) ? undefined : + { + ele:
+ {text} +
, + bounds: { x: x!, y: y!, z: z, width: width!, height: height! } + }; } } - @computed.struct - get elements() { - if (this.Document.usePivotLayout) return PivotView.elements(this); - let curPage = FieldValue(this.Document.curPage, -1); - const initScript = this.Document.arrangeInit; - let state: any = undefined; - let pairs = this.childLayoutPairs; - let elements: ViewDefResult[] = []; - if (initScript) { - const initResult = initScript.script.run({ docs: pairs.map(pair => pair.layout), collection: this.Document }, console.log); - if (initResult.success) { - const result = initResult.result; - const { state: scriptState, views } = result; - state = scriptState; - elements = this.viewDefsToJSX(views); - } + lookupLayout = (doc: Doc, dataDoc?: Doc) => { + let data: any = undefined; + let computedElementData: { map: Map<{ layout: Doc, data?: Doc | undefined }, any>, elements: ViewDefResult[] }; + switch (this.Document.freeformLayoutEngine) { + case "pivot": computedElementData = this.doPivotLayout; break; + default: computedElementData = this.doFreeformLayout; break; } - let docviews = pairs.reduce((prev, pair) => { - var page = NumCast(pair.layout.page, -1); - if (!pair.layout.isMinimized && ((Math.abs(Math.round(page) - Math.round(curPage)) < 3) || page === -1)) { - const pos = this.getCalculatedPositions({ doc: pair.layout, index: prev.length, collection: this.Document, docs: pairs.map(pair => pair.layout), state }); - state = pos.state === undefined ? state : pos.state; - prev.push({ - ele: , - bounds: { x: pos.x || 0, y: pos.y || 0, z: pos.z, width: pos.width || 0, height: pos.height || 0 } - }); + computedElementData.map.forEach((value: any, key: { layout: Doc, data?: Doc }) => { + if (key.layout === doc && key.data === dataDoc) { + data = value; } - // } - return prev; - }, elements); + }); + return data && { x: data.x, y: data.y, z: data.z, width: data.width, height: data.height, transition: data.transition }; + } - return docviews; + @computed + get doPivotLayout() { + return computePivotLayout(this.props.Document, this.childDocs, + this.childLayoutPairs.filter(pair => this.isCurrent(pair.layout)), this.viewDefsToJSX); } - @computed.struct - get views() { - return this.elements.filter(ele => ele.bounds && !ele.bounds.z).map(ele => ele.ele); + @computed + get doFreeformLayout() { + let layoutPoolData: Map<{ layout: Doc, data?: Doc }, any> = new Map(); + let layoutDocs = this.childLayoutPairs.map(pair => pair.layout); + const initResult = this.Document.arrangeInit && this.Document.arrangeInit.script.run({ docs: layoutDocs, collection: this.Document }, console.log); + let state = initResult && initResult.success ? initResult.result.scriptState : undefined; + let elements = initResult && initResult.success ? this.viewDefsToJSX(initResult.result.views) : []; + + this.childLayoutPairs.filter(pair => this.isCurrent(pair.layout)).map((pair, i) => { + const pos = this.getCalculatedPositions({ doc: pair.layout, index: i, collection: this.Document, docs: layoutDocs, state }); + state = pos.state === undefined ? state : pos.state; + layoutPoolData.set(pair, pos); + }); + return { map: layoutPoolData, elements: elements }; } - @computed.struct - get overlayViews() { - return this.elements.filter(ele => ele.bounds && ele.bounds.z).map(ele => ele.ele); + + @computed + get doLayoutComputation() { + let computedElementData: { map: Map<{ layout: Doc, data?: Doc | undefined }, any>, elements: ViewDefResult[] }; + switch (this.Document.freeformLayoutEngine) { + case "pivot": computedElementData = this.doPivotLayout; break; + default: computedElementData = this.doFreeformLayout; break; + } + this.childLayoutPairs.filter(pair => this.isCurrent(pair.layout)).forEach(pair => + computedElementData.elements.push({ + ele: , + bounds: this.lookupLayout(pair.layout, pair.data) + })); + + return computedElementData; } + @computed.struct get elements() { return this.doLayoutComputation.elements; } + @computed.struct get views() { return this.elements.filter(ele => ele.bounds && !ele.bounds.z).map(ele => ele.ele); } + @computed.struct get overlayViews() { return this.elements.filter(ele => ele.bounds && ele.bounds.z).map(ele => ele.ele); } + @action onCursorMove = (e: React.PointerEvent) => { super.setCursorPosition(this.getTransform().transformPoint(e.clientX, e.clientY)); } - arrangeContents = async () => { - const docs = await DocListCastAsync(this.Document[this.props.fieldKey]); + layoutDocsInGrid = () => { UndoManager.RunInBatch(() => { - if (docs) { - let startX = this.Document.panX || 0; - let x = startX; - let y = this.Document.panY || 0; - let i = 0; - const width = Math.max(...docs.map(doc => NumCast(doc.width))); - const height = Math.max(...docs.map(doc => NumCast(doc.height))); - for (const doc of docs) { - doc.x = x; - doc.y = y; - x += width + 20; - if (++i === 6) { - i = 0; - x = startX; - y += height + 20; - } + const docs = DocListCast(this.Document[this.props.fieldKey]); + let startX = this.Document.panX || 0; + let x = startX; + let y = this.Document.panY || 0; + let i = 0; + const width = Math.max(...docs.map(doc => NumCast(doc.width))); + const height = Math.max(...docs.map(doc => NumCast(doc.height))); + for (const doc of docs) { + doc.x = x; + doc.y = y; + x += width + 20; + if (++i === 6) { + i = 0; + x = startX; + y += height + 20; } } }, "arrange contents"); @@ -852,10 +648,10 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { } this._timelineRef.current!.timelineContextMenu(e.nativeEvent); layoutItems.push({ description: "reset view", event: () => { this.props.Document.panX = this.props.Document.panY = 0; this.props.Document.scale = 1; }, icon: "compress-arrows-alt" }); - layoutItems.push({ description: `${this.fitToBox ? "Unset" : "Set"} Fit To Container`, event: async () => this.Document.fitToBox = !this.fitToBox, icon: !this.fitToBox ? "expand-arrows-alt" : "compress-arrows-alt" }); + layoutItems.push({ description: `${this.fitToContent ? "Unset" : "Set"} Fit To Container`, event: async () => this.Document.fitToBox = !this.fitToContent, icon: !this.fitToContent ? "expand-arrows-alt" : "compress-arrows-alt" }); layoutItems.push({ description: `${this.Document.useClusters ? "Uncluster" : "Use Clusters"}`, event: () => this.updateClusters(!this.Document.useClusters), icon: "braille" }); layoutItems.push({ description: `${this.Document.isRuleProvider ? "Stop Auto Format" : "Auto Format"}`, event: this.autoFormat, icon: "chalkboard" }); - layoutItems.push({ description: "Arrange contents in grid", event: this.arrangeContents, icon: "table" }); + layoutItems.push({ description: "Arrange contents in grid", event: this.layoutDocsInGrid, icon: "table" }); layoutItems.push({ description: "Analyze Strokes", event: this.analyzeStrokes, icon: "paint-brush" }); layoutItems.push({ description: "Jitter Rotation", event: action(() => this.props.Document.jitterRotation = 10), icon: "paint-brush" }); layoutItems.push({ @@ -910,54 +706,26 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { , ...this.views ] - - public static AddCustomLayout(doc: Doc, dataKey: string): () => void { - return () => { - let addOverlay = (key: "arrangeScript" | "arrangeInit", options: OverlayElementOptions, params?: Record, requiredType?: string) => { - let overlayDisposer: () => void = emptyFunction; - const script = Cast(doc[key], ScriptField); - let originalText: string | undefined = undefined; - if (script) originalText = script.script.originalScript; - // tslint:disable-next-line: no-unnecessary-callback-wrapper - let scriptingBox = overlayDisposer()} onSave={(text, onError) => { - const script = CompileScript(text, { - params, - requiredType, - typecheck: false - }); - if (!script.compiled) { - onError(script.errors.map(error => error.messageText).join("\n")); - return; - } - doc[key] = new ScriptField(script); - overlayDisposer(); - }} />; - overlayDisposer = OverlayView.Instance.addWindow(scriptingBox, options); - }; - addOverlay("arrangeInit", { x: 400, y: 100, width: 400, height: 300, title: "Layout Initialization" }, { collection: "Doc", docs: "Doc[]" }, undefined); - addOverlay("arrangeScript", { x: 400, y: 500, width: 400, height: 300, title: "Layout Script" }, { doc: "Doc", index: "number", collection: "Doc", state: "any", docs: "Doc[]" }, "{x: number, y: number, width?: number, height?: number}"); - }; - } render() { // update the actual dimensions of the collection so that they can inquired (e.g., by a minimap) - this.props.Document.fitX = this.actualContentBounds && this.actualContentBounds.x; - this.props.Document.fitY = this.actualContentBounds && this.actualContentBounds.y; - this.props.Document.fitW = this.actualContentBounds && (this.actualContentBounds.r - this.actualContentBounds.x); - this.props.Document.fitH = this.actualContentBounds && (this.actualContentBounds.b - this.actualContentBounds.y); + this.props.Document.fitX = this.contentBounds && this.contentBounds.x; + this.props.Document.fitY = this.contentBounds && this.contentBounds.y; + this.props.Document.fitW = this.contentBounds && (this.contentBounds.r - this.contentBounds.x); + this.props.Document.fitH = this.contentBounds && (this.contentBounds.b - this.contentBounds.y); // if fieldExt is set, then children will be stored in the extension document for the fieldKey. // otherwise, they are stored in fieldKey. All annotations to this document are stored in the extension document Doc.UpdateDocumentExtensionForField(this.props.DataDoc || this.props.Document, this.props.fieldKey); - const easing = () => this.props.Document.panTransformType === "Ease"; return (
+ addDocument={this.addDocument} removeDocument={this.props.removeDocument} addLiveTextDocument={this.addLiveTextBox} setPreviewCursor={this.props.setPreviewCursor} + getContainerTransform={this.getContainerTransform} getTransform={this.getTransform} isAnnotationOverlay={this.isAnnotationOverlay}> + easing={this.easing} zoomScaling={this.zoomScaling} panX={this.panX} panY={this.panY}> - + {this.childViews} @@ -974,23 +742,18 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { @observer class CollectionFreeFormOverlayView extends React.Component boolean }> { - @computed get overlayView() { - return (); - } render() { - return this.overlayView; + return ; } } @observer class CollectionFreeFormBackgroundView extends React.Component boolean }> { - @computed get backgroundView() { - return (); - } render() { - return this.props.Document.backgroundLayout ? this.backgroundView : (null); + return !this.props.Document.backgroundLayout ? (null) : + (); } } diff --git a/src/client/views/collections/collectionFreeForm/MarqueeView.tsx b/src/client/views/collections/collectionFreeForm/MarqueeView.tsx index bbea4a555..82193aefa 100644 --- a/src/client/views/collections/collectionFreeForm/MarqueeView.tsx +++ b/src/client/views/collections/collectionFreeForm/MarqueeView.tsx @@ -30,6 +30,8 @@ interface MarqueeViewProps { removeDocument: (doc: Doc) => boolean; addLiveTextDocument: (doc: Doc) => void; isSelected: () => boolean; + isAnnotationOverlay: boolean; + setPreviewCursor?: (func: (x: number, y: number, drag: boolean) => void) => void; } @observer @@ -43,6 +45,10 @@ export class MarqueeView extends React.Component @observable _visible: boolean = false; _commandExecuted = false; + componentDidMount() { + this.props.setPreviewCursor && this.props.setPreviewCursor(this.setPreviewCursor); + } + @action cleanupInteractions = (all: boolean = false) => { if (all) { @@ -145,15 +151,10 @@ export class MarqueeView extends React.Component } @action onPointerDown = (e: React.PointerEvent): void => { - this._downX = this._lastX = e.pageX; - this._downY = this._lastY = e.pageY; - this._commandExecuted = false; - PreviewCursor.Visible = false; - this.cleanupInteractions(true); + this._downX = this._lastX = e.clientX; + this._downY = this._lastY = e.clientY; if (e.button === 2 || (e.button === 0 && e.altKey)) { - document.addEventListener("pointermove", this.onPointerMove, true); - document.addEventListener("pointerup", this.onPointerUp, true); - document.addEventListener("keydown", this.marqueeCommand, true); + this.setPreviewCursor(e.clientX, e.clientY, true); if (e.altKey) { //e.stopPropagation(); // bcz: removed so that you can alt-click on button in a collection to switch link following behaviors. e.preventDefault(); @@ -176,6 +177,8 @@ export class MarqueeView extends React.Component e.stopPropagation(); e.preventDefault(); } + } else { + this.cleanupInteractions(true); // stop listening for events if another lower-level handle (e.g. another Marquee) has stopPropagated this } if (e.altKey) { e.preventDefault(); @@ -185,16 +188,13 @@ export class MarqueeView extends React.Component @action onPointerUp = (e: PointerEvent): void => { if (!this.props.container.props.active()) this.props.selectDocuments([this.props.container.props.Document]); - // console.log("pointer up!"); if (this._visible) { - // console.log("visible"); let mselect = this.marqueeSelect(); if (!e.shiftKey) { SelectionManager.DeselectAll(mselect.length ? undefined : this.props.container.props.Document); } this.props.selectDocuments(mselect.length ? mselect : [this.props.container.props.Document]); } - //console.log("invisible"); this.cleanupInteractions(true); if (e.altKey) { @@ -202,11 +202,28 @@ export class MarqueeView extends React.Component } } + setPreviewCursor = (x: number, y: number, drag: boolean) => { + if (drag) { + this._downX = this._lastX = x; + this._downY = this._lastY = y; + this._commandExecuted = false; + PreviewCursor.Visible = false; + this.cleanupInteractions(true); + document.addEventListener("pointermove", this.onPointerMove, true); + document.addEventListener("pointerup", this.onPointerUp, true); + document.addEventListener("keydown", this.marqueeCommand, true); + } else { + this._downX = x; + this._downY = y; + PreviewCursor.Show(x, y, this.onKeyPress, this.props.addLiveTextDocument, this.props.getTransform, this.props.addDocument); + } + } + @action onClick = (e: React.MouseEvent): void => { if (Math.abs(e.clientX - this._downX) < Utils.DRAG_THRESHOLD && Math.abs(e.clientY - this._downY) < Utils.DRAG_THRESHOLD) { - PreviewCursor.Show(e.clientX, e.clientY, this.onKeyPress, this.props.addLiveTextDocument, this.props.getTransform, this.props.addDocument); + this.setPreviewCursor(e.clientX, e.clientY, false); // let the DocumentView stopPropagation of this event when it selects this document } else { // why do we get a click event when the cursor have moved a big distance? // let's cut it off here so no one else has to deal with it. @@ -297,8 +314,8 @@ export class MarqueeView extends React.Component y: bounds.top, panX: 0, panY: 0, - backgroundColor: this.props.container.isAnnotationOverlay ? undefined : chosenColor, - defaultBackgroundColor: this.props.container.isAnnotationOverlay ? undefined : chosenColor, + backgroundColor: this.props.isAnnotationOverlay ? undefined : chosenColor, + defaultBackgroundColor: this.props.isAnnotationOverlay ? undefined : chosenColor, width: bounds.width, height: bounds.height, title: "a nested collection", diff --git a/src/client/views/linking/LinkFollowBox.tsx b/src/client/views/linking/LinkFollowBox.tsx index 81b0249dd..cad404d1f 100644 --- a/src/client/views/linking/LinkFollowBox.tsx +++ b/src/client/views/linking/LinkFollowBox.tsx @@ -18,6 +18,7 @@ import { DocServer } from "../../DocServer"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faTimes } from '@fortawesome/free-solid-svg-icons'; import { docs_v1 } from "googleapis"; +import { Utils } from "../../../Utils"; enum FollowModes { OPENTAB = "Open in Tab", @@ -242,6 +243,7 @@ export class LinkFollowBox extends React.Component { let proto = Doc.GetProto(LinkFollowBox.linkDoc); let targetContext = await Cast(proto.targetContext, Doc); let sourceContext = await Cast(proto.sourceContext, Doc); + let guid = StrCast(LinkFollowBox.linkDoc[Id]); const shouldZoom = options ? options.shouldZoom : false; let dockingFunc = (document: Doc) => { (this._addDocTab || this.props.addDocTab)(document, undefined, "inTab"); SelectionManager.DeselectAll(); }; @@ -251,6 +253,14 @@ export class LinkFollowBox extends React.Component { } else if (LinkFollowBox.destinationDoc === LinkFollowBox.linkDoc.anchor1 && sourceContext) { DocumentManager.Instance.jumpToDocument(jumpToDoc, shouldZoom, false, document => dockingFunc(sourceContext!)); + if (LinkFollowBox.sourceDoc && LinkFollowBox.destinationDoc) { + if (guid) { + let views = DocumentManager.Instance.getDocumentViews(jumpToDoc); + views.length && (views[0].props.Document.scrollToLinkID = guid); + } else { + jumpToDoc.linkHref = Utils.prepend("/doc/" + StrCast(LinkFollowBox.linkDoc[Id])); + } + } } else if (DocumentManager.Instance.getDocumentView(jumpToDoc)) { DocumentManager.Instance.jumpToDocument(jumpToDoc, shouldZoom, undefined, undefined, diff --git a/src/client/views/linking/LinkMenuItem.tsx b/src/client/views/linking/LinkMenuItem.tsx index 82fe3df23..835554ac0 100644 --- a/src/client/views/linking/LinkMenuItem.tsx +++ b/src/client/views/linking/LinkMenuItem.tsx @@ -28,9 +28,7 @@ interface LinkMenuItemProps { export class LinkMenuItem extends React.Component { private _drag = React.createRef(); @observable private _showMore: boolean = false; - @action toggleShowMore() { - this._showMore = !this._showMore; - } + @action toggleShowMore() { this._showMore = !this._showMore; } onEdit = (e: React.PointerEvent): void => { e.stopPropagation(); diff --git a/src/client/views/nodes/CollectionFreeFormDocumentView.tsx b/src/client/views/nodes/CollectionFreeFormDocumentView.tsx index fcf483659..dd063ec9d 100644 --- a/src/client/views/nodes/CollectionFreeFormDocumentView.tsx +++ b/src/client/views/nodes/CollectionFreeFormDocumentView.tsx @@ -12,6 +12,7 @@ import { Doc, WidthSym, HeightSym } from "../../../new_fields/Doc"; import { random } from "animejs"; export interface CollectionFreeFormDocumentViewProps extends DocumentViewProps { + dataProvider?: (doc: Doc, dataDoc?: Doc) => { x: number, y: number, width: number, height: number, z: number, transition?: string } | undefined; x?: number; y?: number; width?: number; @@ -32,14 +33,14 @@ export const PositionDocument = makeInterface(documentSchema, positionSchema); @observer export class CollectionFreeFormDocumentView extends DocComponent(PositionDocument) { _disposer: IReactionDisposer | undefined = undefined; - @computed get transform() { return `scale(${this.props.ContentScaling()}) translate(${this.X}px, ${this.Y}px) rotate(${random(-1, 1) * this.props.jitterRotation}deg)`; } - @computed get X() { return this._animPos !== undefined ? this._animPos[0] : this.renderScriptDim ? this.renderScriptDim.x : this.props.x !== undefined ? this.props.x : this.Document.x || 0; } - @computed get Y() { return this._animPos !== undefined ? this._animPos[1] : this.renderScriptDim ? this.renderScriptDim.y : this.props.y !== undefined ? this.props.y : this.Document.y || 0; } - @computed get width() { return this.renderScriptDim ? this.renderScriptDim.width : this.props.width !== undefined ? this.props.width : this.props.Document[WidthSym](); } - @computed get height() { return this.renderScriptDim ? this.renderScriptDim.height : this.props.height !== undefined ? this.props.height : this.props.Document[HeightSym](); } + get transform() { return `scale(${this.props.ContentScaling()}) translate(${this.X}px, ${this.Y}px) rotate(${random(-1, 1) * this.props.jitterRotation}deg)`; } + get X() { return this._animPos !== undefined ? this._animPos[0] : this.renderScriptDim ? this.renderScriptDim.x : this.props.x !== undefined ? this.props.x : this.dataProvider ? this.dataProvider.x : this.Document.x || 0; } + get Y() { return this._animPos !== undefined ? this._animPos[1] : this.renderScriptDim ? this.renderScriptDim.y : this.props.y !== undefined ? this.props.y : this.dataProvider ? this.dataProvider.y : this.Document.y || 0; } + get width() { return this.renderScriptDim ? this.renderScriptDim.width : this.props.width !== undefined ? this.props.width : this.props.dataProvider && this.dataProvider ? this.dataProvider.width : this.props.Document[WidthSym](); } + get height() { return this.renderScriptDim ? this.renderScriptDim.height : this.props.height !== undefined ? this.props.height : this.props.dataProvider && this.dataProvider ? this.dataProvider.height : this.props.Document[HeightSym](); } + @computed get dataProvider() { return this.props.dataProvider && this.props.dataProvider(this.props.Document, this.props.DataDoc) ? this.props.dataProvider(this.props.Document, this.props.DataDoc) : undefined; } @computed get nativeWidth() { return FieldValue(this.Document.nativeWidth, 0); } @computed get nativeHeight() { return FieldValue(this.Document.nativeHeight, 0); } - @computed get scaleToOverridingWidth() { return this.width / FieldValue(this.Document.width, this.width); } @computed get renderScriptDim() { if (this.Document.renderScript) { @@ -72,11 +73,12 @@ export class CollectionFreeFormDocumentView extends DocComponent this.props.PanelHeight(); getTransform = (): Transform => this.props.ScreenToLocalTransform() .translate(-this.X, -this.Y) - .scale(1 / this.contentScaling()).scale(1 / this.scaleToOverridingWidth) + .scale(1 / this.contentScaling()) borderRounding = () => { let ruleRounding = this.props.ruleProvider ? StrCast(this.props.ruleProvider["ruleRounding_" + this.Document.heading]) : undefined; - let br = StrCast(((this.layoutDoc.layout as Doc) || this.Document).borderRounding); + let ld = this.layoutDoc.layout instanceof Doc ? this.layoutDoc.layout : undefined; + let br = StrCast((ld || this.props.Document).borderRounding); br = !br && ruleRounding ? ruleRounding : br; if (br.endsWith("%")) { let nativeDim = Math.min(NumCast(this.layoutDoc.nativeWidth), NumCast(this.layoutDoc.nativeHeight)); @@ -98,6 +100,9 @@ export class CollectionFreeFormDocumentView extends DocComponent this.dataProvider ? this.dataProvider.width : this.panelWidth(); + finalPanelHeight = () => this.dataProvider ? this.dataProvider.height : this.panelHeight(); + render() { return (
); diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx index 2ac68fea3..ea669b23c 100644 --- a/src/client/views/nodes/DocumentView.tsx +++ b/src/client/views/nodes/DocumentView.tsx @@ -227,15 +227,18 @@ export class DocumentView extends DocComponent(Docu else if (linkedDocs.length) { SelectionManager.DeselectAll(); let first = linkedDocs.filter(d => Doc.AreProtosEqual(d.anchor1 as Doc, this.props.Document) && !d.anchor1anchored); + let second = linkedDocs.filter(d => Doc.AreProtosEqual(d.anchor2 as Doc, this.props.Document) && !d.anchor2anchored); let firstUnshown = first.filter(d => DocumentManager.Instance.getDocumentViews(d.anchor2 as Doc).length === 0); + let secondUnshown = second.filter(d => DocumentManager.Instance.getDocumentViews(d.anchor1 as Doc).length === 0); if (firstUnshown.length) first = [firstUnshown[0]]; - let linkedFwdDocs = first.length ? [first[0].anchor2 as Doc, first[0].anchor1 as Doc] : [expandedDocs[0], expandedDocs[0]]; + if (secondUnshown.length) second = [secondUnshown[0]]; + let linkedFwdDocs = first.length ? [first[0].anchor2 as Doc, first[0].anchor1 as Doc] : second.length ? [second[0].anchor1 as Doc, second[0].anchor1 as Doc] : undefined; // @TODO: shouldn't always follow target context let linkedFwdContextDocs = [first.length ? await (first[0].targetContext) as Doc : undefined, undefined]; let linkedFwdPage = [first.length ? NumCast(first[0].anchor2Page, undefined) : undefined, undefined]; - if (!linkedFwdDocs.some(l => l instanceof Promise)) { + if (linkedFwdDocs && !linkedFwdDocs.some(l => l instanceof Promise)) { let maxLocation = StrCast(linkedFwdDocs[0].maximizeLocation, "inTab"); let targetContext = !Doc.AreProtosEqual(linkedFwdContextDocs[altKey ? 1 : 0], this.props.ContainingCollectionDoc) ? linkedFwdContextDocs[altKey ? 1 : 0] : undefined; DocumentManager.Instance.jumpToDocument(linkedFwdDocs[altKey ? 1 : 0], ctrlKey, false, @@ -258,7 +261,7 @@ export class DocumentView extends DocComponent(Docu this._hitTemplateDrag = true; } } - if (this.active) e.stopPropagation(); // events stop at the lowest document that is active. + if (this.active && e.button === 0 && !this.Document.lockedPosition) e.stopPropagation(); // events stop at the lowest document that is active. if right dragging, we let it go through though to allow for context menu clicks. PointerMove callbacks should remove themselves if the move event gets stopPropagated by a lower-level handler (e.g, marquee drag); document.removeEventListener("pointermove", this.onPointerMove); document.removeEventListener("pointerup", this.onPointerUp); document.addEventListener("pointermove", this.onPointerMove); @@ -266,11 +269,11 @@ export class DocumentView extends DocComponent(Docu } onPointerMove = (e: PointerEvent): void => { if (e.cancelBubble && this.active) { - document.removeEventListener("pointermove", this.onPointerMove); + document.removeEventListener("pointermove", this.onPointerMove); // stop listening to pointerMove if something else has stopPropagated it (e.g., the MarqueeView) } - else if (!e.cancelBubble && this.active) { + else if (!e.cancelBubble && (SelectionManager.IsSelected(this) || this.props.parentActive()) && !this.Document.lockedPosition) { if (Math.abs(this._downX - e.clientX) > 3 || Math.abs(this._downY - e.clientY) > 3) { - if (!e.altKey && !this.topMost && e.buttons === 1 && !BoolCast(this.Document.lockedPosition)) { + if (!e.altKey && !this.topMost && e.buttons === 1) { document.removeEventListener("pointermove", this.onPointerMove); document.removeEventListener("pointerup", this.onPointerUp); this.startDragging(this._downX, this._downY, e.ctrlKey || e.altKey ? "alias" : undefined, this._hitTemplateDrag); @@ -300,7 +303,7 @@ export class DocumentView extends DocComponent(Docu await swapViews(this.props.Document, "", "layoutNative"); let options = { title: "data", width: (this.Document.width || 0), x: -(this.Document.width || 0) / 2, y: - (this.Document.height || 0) / 2, }; - let fieldTemplate = this.Document.type === DocumentType.TEXT ? Docs.Create.TextDocument(options) : + let fieldTemplate = this.Document.type === DocumentType.TEXT ? Docs.Create.TextDocument(options) : this.Document.type === DocumentType.PDF ? Docs.Create.PdfDocument("http://www.msn.com", options) : this.Document.type === DocumentType.VID ? Docs.Create.VideoDocument("http://www.cs.brown.edu", options) : Docs.Create.ImageDocument("http://www.cs.brown.edu", options); @@ -354,7 +357,7 @@ export class DocumentView extends DocComponent(Docu // const docs = await SearchUtil.Search(`data_l:"${destDoc[Id]}"`, true); // const views = docs.map(d => DocumentManager.Instance.getDocumentView(d)).filter(d => d).map(d => d as DocumentView); de.data.linkSourceDocument !== this.props.Document && - (de.data.linkDocument = DocUtils.MakeLink(de.data.linkSourceDocument, this.props.Document, this.props.ContainingCollectionDoc)); + (de.data.linkDocument = DocUtils.MakeLink(de.data.linkSourceDocument, this.props.Document, this.props.ContainingCollectionDoc, undefined, "in-text link being created")); // TODODO this is where in text links get passed } } @@ -605,7 +608,7 @@ export class DocumentView extends DocComponent(Docu ruleColor && !colorSet ? ruleColor : StrCast(this.layoutDoc.backgroundColor) || this.props.backgroundColor(this.Document); const nativeWidth = this.nativeWidth > 0 && !this.Document.ignoreAspect ? `${this.nativeWidth}px` : "100%"; - const nativeHeight = this.Document.ignoreAspect ? this.props.PanelHeight() / this.props.ContentScaling() : this.nativeHeight > 0 ? `${this.nativeHeight}px` : "100%"; + const nativeHeight = this.Document.ignoreAspect || this.props.Document.fitWidth ? this.props.PanelHeight() / this.props.ContentScaling() : this.nativeHeight > 0 ? `${this.nativeHeight}px` : nativeWidth !== "100%" ? nativeWidth : "100%"; const showOverlays = this.props.showOverlays ? this.props.showOverlays(this.Document) : undefined; const showTitle = showOverlays && "title" in showOverlays ? showOverlays.title : this.getLayoutPropStr("showTitle"); const showCaption = showOverlays && "caption" in showOverlays ? showOverlays.caption : this.getLayoutPropStr("showCaption"); diff --git a/src/client/views/nodes/FieldView.tsx b/src/client/views/nodes/FieldView.tsx index 49fc2263d..b93c78cfd 100644 --- a/src/client/views/nodes/FieldView.tsx +++ b/src/client/views/nodes/FieldView.tsx @@ -50,7 +50,6 @@ export interface FieldViewProps { PanelWidth: () => number; PanelHeight: () => number; setVideoBox?: (player: VideoBox) => void; - setPdfBox?: (player: PDFBox) => void; ContentScaling: () => number; ChromeHeight?: () => number; } @@ -96,7 +95,7 @@ export class FieldView extends React.Component { return

{field.date.toLocaleString()}

; } else if (field instanceof Doc) { - return

{field.title}

; + return

{field.title && field.title.toString()}

; //return

{field.title + " : id= " + field[Id]}

; // let returnHundred = () => 100; // return ( diff --git a/src/client/views/nodes/FormattedTextBox.scss b/src/client/views/nodes/FormattedTextBox.scss index 0d7277cbe..45e516015 100644 --- a/src/client/views/nodes/FormattedTextBox.scss +++ b/src/client/views/nodes/FormattedTextBox.scss @@ -164,13 +164,13 @@ ol { counter-reset: deci1 0;} .upper-alpha-ol {counter-reset: ualph; p { display: inline }; font-size: 18 } .lower-roman-ol {counter-reset: lroman; p { display: inline }; font-size: 14; } .lower-alpha-ol {counter-reset: lalpha; p { display: inline }; font-size: 10;} -.decimal1:before { content: counter(deci1) ")"; counter-increment: deci1; display:inline-block; width: 30} -.decimal2:before { content: counter(deci1) "." counter(deci2) ")"; counter-increment: deci2; display:inline-block; width: 35} -.decimal3:before { content: counter(deci1) "." counter(deci2) "." counter(deci3) ")"; counter-increment: deci3; display:inline-block; width: 35} -.decimal4:before { content: counter(deci1) "." counter(deci2) "." counter(deci3) "." counter(deci4) ")"; counter-increment: deci4; display:inline-block; width: 40} -.decimal5:before { content: counter(deci1) "." counter(deci2) "." counter(deci3) "." counter(deci4) "." counter(deci5) ")"; counter-increment: deci5; display:inline-block; width: 40} -.decimal6:before { content: counter(deci1) "." counter(deci2) "." counter(deci3) "." counter(deci4) "." counter(deci5) "." counter(deci6) ")"; counter-increment: deci6; display:inline-block; width: 45} -.decimal7:before { content: counter(deci1) "." counter(deci2) "." counter(deci3) "." counter(deci4) "." counter(deci5) "." counter(deci6) "." counter(deci7) ")"; counter-increment: deci7; display:inline-block; width: 50} -.upper-alpha:before { content: counter(deci1) "." counter(ualph, upper-alpha) ")"; counter-increment: ualph; display:inline-block; width: 35 } -.lower-roman:before { content: counter(deci1) "." counter(ualph, upper-alpha) "." counter(lroman, lower-roman) ")"; counter-increment: lroman;display:inline-block; width: 50 } -.lower-alpha:before { content: counter(deci1) "." counter(ualph, upper-alpha) "." counter(lroman, lower-roman) "." counter(lalpha, lower-alpha) ")"; counter-increment: lalpha; display:inline-block; width: 35} +.decimal1:before { content: counter(deci1) ") "; counter-increment: deci1; display:inline-block; min-width: 30;} +.decimal2:before { content: counter(deci1) "." counter(deci2) ") "; counter-increment: deci2; display:inline-block; min-width: 35} +.decimal3:before { content: counter(deci1) "." counter(deci2) "." counter(deci3) ") "; counter-increment: deci3; display:inline-block; min-width: 35} +.decimal4:before { content: counter(deci1) "." counter(deci2) "." counter(deci3) "." counter(deci4) ") "; counter-increment: deci4; display:inline-block; min-width: 40} +.decimal5:before { content: counter(deci1) "." counter(deci2) "." counter(deci3) "." counter(deci4) "." counter(deci5) ") "; counter-increment: deci5; display:inline-block; min-width: 40} +.decimal6:before { content: counter(deci1) "." counter(deci2) "." counter(deci3) "." counter(deci4) "." counter(deci5) "." counter(deci6) ") "; counter-increment: deci6; display:inline-block; min-width: 45} +.decimal7:before { content: counter(deci1) "." counter(deci2) "." counter(deci3) "." counter(deci4) "." counter(deci5) "." counter(deci6) "." counter(deci7) ") "; counter-increment: deci7; display:inline-block; min-width: 50} +.upper-alpha:before { content: counter(deci1) "." counter(ualph, upper-alpha) ") "; counter-increment: ualph; display:inline-block; min-width: 35 } +.lower-roman:before { content: counter(deci1) "." counter(ualph, upper-alpha) "." counter(lroman, lower-roman) ") "; counter-increment: lroman;display:inline-block; min-width: 50 } +.lower-alpha:before { content: counter(deci1) "." counter(ualph, upper-alpha) "." counter(lroman, lower-roman) "." counter(lalpha, lower-alpha) ") "; counter-increment: lalpha; display:inline-block; min-width: 35} diff --git a/src/client/views/nodes/FormattedTextBox.tsx b/src/client/views/nodes/FormattedTextBox.tsx index eb4718581..63a16f90c 100644 --- a/src/client/views/nodes/FormattedTextBox.tsx +++ b/src/client/views/nodes/FormattedTextBox.tsx @@ -80,6 +80,7 @@ export class FormattedTextBox extends DocComponent<(FieldViewProps & FormattedTe private _nodeClicked: any; private _undoTyping?: UndoManager.Batch; private _searchReactionDisposer?: Lambda; + private _scrollToRegionReactionDisposer: Opt; private _reactionDisposer: Opt; private _textReactionDisposer: Opt; private _heightReactionDisposer: Opt; @@ -138,6 +139,52 @@ export class FormattedTextBox extends DocComponent<(FieldViewProps & FormattedTe if (this.props.isOverlay) { DragManager.StartDragFunctions.push(() => FormattedTextBox.InputBoxOverlay = undefined); } + + this._scrollToRegionReactionDisposer = reaction( + () => StrCast(this.props.Document.scrollToLinkID), + async (scrollToLinkID) => { + let findLinkFrag = (frag: Fragment, editor: EditorView) => { + const nodes: Node[] = []; + frag.forEach((node, index) => { + let examinedNode = findLinkNode(node, editor); + if (examinedNode && examinedNode.textContent) { + nodes.push(examinedNode); + start += index; + } + }); + return { frag: Fragment.fromArray(nodes), start: start }; + }; + let findLinkNode = (node: Node, editor: EditorView) => { + if (!node.isText) { + const content = findLinkFrag(node.content, editor); + return node.copy(content.frag); + } + const marks = [...node.marks]; + const linkIndex = marks.findIndex(mark => mark.type === editor.state.schema.marks.link); + return linkIndex !== -1 && scrollToLinkID === marks[linkIndex].attrs.href.replace(/.*\/doc\//, "") ? node : undefined; + }; + + let start = -1; + if (this._editorView && scrollToLinkID) { + let editor = this._editorView; + let ret = findLinkFrag(editor.state.doc.content, editor); + + if (ret.frag.size > 2 && ((!this.props.isOverlay && !this.props.isSelected()) || (this.props.isSelected() && this.props.isOverlay))) { + let selection = TextSelection.near(editor.state.doc.resolve(ret.start)); // default to near the start + if (ret.frag.firstChild) { + selection = TextSelection.between(editor.state.doc.resolve(ret.start + 2), editor.state.doc.resolve(ret.start + ret.frag.firstChild.nodeSize)); // bcz: looks better to not have the target selected + } + editor.dispatch(editor.state.tr.setSelection(new TextSelection(selection.$from, selection.$from)).scrollIntoView()); + const mark = editor.state.schema.mark(this._editorView.state.schema.marks.search_highlight); + setTimeout(() => editor.dispatch(editor.state.tr.addMark(selection.from, selection.to, mark)), 0); + setTimeout(() => this.unhighlightSearchTerms(), 2000); + } + this.props.Document.scrollToLinkID = undefined; + } + + }, + { fireImmediately: true } + ); } public get CurrentDiv(): HTMLDivElement { return this._ref.current!; } @@ -696,6 +743,15 @@ export class FormattedTextBox extends DocComponent<(FieldViewProps & FormattedTe this._editorView && this._editorView.destroy(); this._editorView = new EditorView(this._proseRef, { state: field && field.Data ? EditorState.fromJSON(config, JSON.parse(field.Data)) : EditorState.create(config), + handleScrollToSelection: (editorView) => { + let ref = editorView.domAtPos(editorView.state.selection.from); + let refNode = ref.node as any; + while (refNode && !("getBoundingClientRect" in refNode)) refNode = refNode.parentElement; + let r1 = refNode && refNode.getBoundingClientRect(); + let r3 = self._ref.current!.getBoundingClientRect(); + r1 && (self._ref.current!.scrollTop += (r1.top - r3.top) * self.props.ScreenToLocalTransform().Scale); + return true; + }, dispatchTransaction: this.dispatchTransaction, nodeViews: { image(node, view, getPos) { return new ImageResizeView(node, view, getPos, self.props.addDocTab); }, @@ -736,6 +792,7 @@ export class FormattedTextBox extends DocComponent<(FieldViewProps & FormattedTe } componentWillUnmount() { + this._scrollToRegionReactionDisposer && this._scrollToRegionReactionDisposer(); this._rulesReactionDisposer && this._rulesReactionDisposer(); this._reactionDisposer && this._reactionDisposer(); this._proxyReactionDisposer && this._proxyReactionDisposer(); @@ -757,6 +814,40 @@ export class FormattedTextBox extends DocComponent<(FieldViewProps & FormattedTe if (e.button === 0 && this.props.isSelected() && !e.altKey && !e.ctrlKey && !e.metaKey) { e.stopPropagation(); } + let ctrlKey = e.ctrlKey; + if (e.button === 2 || (e.button === 0 && e.ctrlKey)) { + e.preventDefault(); + } + } + + onPointerUp = (e: React.PointerEvent): void => { + FormattedTextBoxComment.textBox = this; + if (e.buttons === 1 && this.props.isSelected() && !e.altKey) { + e.stopPropagation(); + } + } + + @action + onFocused = (e: React.FocusEvent): void => { + document.removeEventListener("keypress", this.recordKeyHandler); + document.addEventListener("keypress", this.recordKeyHandler); + this.tryUpdateHeight(); + if (!this.props.isOverlay) { + FormattedTextBox.InputBoxOverlay = this; + } else { + if (this._ref.current) { + this._ref.current.scrollTop = FormattedTextBox.InputBoxOverlayScroll; + } + } + } + onPointerWheel = (e: React.WheelEvent): void => { + // if a text note is not selected and scrollable, this prevents us from being able to scroll and zoom out at the same time + if (this.props.isSelected() || e.currentTarget.scrollHeight > e.currentTarget.clientHeight) { + e.stopPropagation(); + } + } + + onClick = (e: React.MouseEvent): void => { let ctrlKey = e.ctrlKey; if (e.button === 0 && ((!this.props.isSelected() && !e.ctrlKey) || (this.props.isSelected() && e.ctrlKey)) && !e.metaKey && e.target) { let href = (e.target as any).href; @@ -771,8 +862,10 @@ export class FormattedTextBox extends DocComponent<(FieldViewProps & FormattedTe let node = pcords && this._editorView!.state.doc.nodeAt(pcords.pos); if (node) { let link = node.marks.find(m => m.type === this._editorView!.state.schema.marks.link); - href = link && link.attrs.href; - location = link && link.attrs.location; + if (link && !(link.attrs.docref && link.attrs.title)) { // bcz: getting hacky. this indicates that we clicked on a PDF excerpt quotation. In this case, we don't want to follow the link (we follow only the actual hyperlink for the quotation which is handled above). + href = link && link.attrs.href; + location = link && link.attrs.location; + } } if (href) { if (href.indexOf(Utils.prepend("/doc/")) === 0) { @@ -783,14 +876,14 @@ export class FormattedTextBox extends DocComponent<(FieldViewProps & FormattedTe let proto = Doc.GetProto(linkDoc); let targetContext = await Cast(proto.targetContext, Doc); let jumpToDoc = await Cast(linkDoc.anchor2, Doc); + if (jumpToDoc) { if (DocumentManager.Instance.getDocumentView(jumpToDoc)) { - DocumentManager.Instance.jumpToDocument(jumpToDoc, e.altKey, undefined, undefined, NumCast((jumpToDoc === linkDoc.anchor2 ? linkDoc.anchor2Page : linkDoc.anchor1Page))); return; } } - if (targetContext) { + if (targetContext && (!jumpToDoc || targetContext !== await jumpToDoc.annotationOn)) { DocumentManager.Instance.jumpToDocument(targetContext, ctrlKey, false, document => this.props.addDocTab(document, undefined, location ? location : "inTab")); } else if (jumpToDoc) { DocumentManager.Instance.jumpToDocument(jumpToDoc, ctrlKey, false, document => this.props.addDocTab(document, undefined, location ? location : "inTab")); @@ -812,39 +905,6 @@ export class FormattedTextBox extends DocComponent<(FieldViewProps & FormattedTe } } - if (e.button === 2 || (e.button === 0 && e.ctrlKey)) { - e.preventDefault(); - } - } - - onPointerUp = (e: React.PointerEvent): void => { - FormattedTextBoxComment.textBox = this; - if (e.buttons === 1 && this.props.isSelected() && !e.altKey) { - e.stopPropagation(); - } - } - - @action - onFocused = (e: React.FocusEvent): void => { - document.removeEventListener("keypress", this.recordKeyHandler); - document.addEventListener("keypress", this.recordKeyHandler); - this.tryUpdateHeight(); - if (!this.props.isOverlay) { - FormattedTextBox.InputBoxOverlay = this; - } else { - if (this._ref.current) { - this._ref.current.scrollTop = FormattedTextBox.InputBoxOverlayScroll; - } - } - } - onPointerWheel = (e: React.WheelEvent): void => { - // if a text note is not selected and scrollable, this prevents us from being able to scroll and zoom out at the same time - if (this.props.isSelected() || e.currentTarget.scrollHeight > e.currentTarget.clientHeight) { - e.stopPropagation(); - } - } - - onClick = (e: React.MouseEvent): void => { // this hackiness handles clicking on the list item bullets to do expand/collapse. the bullets are ::before pseudo elements so there's no real way to hit test against them. if (this.props.isSelected() && e.nativeEvent.offsetX < 40) { let pos = this._editorView!.posAtCoords({ left: e.clientX, top: e.clientY }); @@ -852,7 +912,18 @@ export class FormattedTextBox extends DocComponent<(FieldViewProps & FormattedTe let node = this._editorView!.state.doc.nodeAt(pos.pos); let node2 = node && node.type === schema.nodes.paragraph ? this._editorView!.state.doc.nodeAt(pos.pos - 1) : undefined; if (node === this._nodeClicked && node2 && (node2.type === schema.nodes.ordered_list || node2.type === schema.nodes.list_item)) { - this._editorView!.dispatch(this._editorView!.state.tr.setNodeMarkup(pos.pos - 1, node2.type, { ...node2.attrs, visibility: !node2.attrs.visibility })); + let hit = this._editorView!.domAtPos(pos.pos).node as any; + let beforeEle = document.querySelector("." + hit.className) as Element; + let before = beforeEle ? window.getComputedStyle(beforeEle, ':before') : undefined; + let beforeWidth = before ? Number(before.getPropertyValue('width').replace("px", "")) : undefined; + if (beforeWidth && e.nativeEvent.offsetX < beforeWidth) { + let ol = this._editorView!.state.doc.nodeAt(pos.pos - 2) ? this._editorView!.state.doc.nodeAt(pos.pos - 2) : undefined; + if (ol && ol.type === schema.nodes.ordered_list && !e.shiftKey) { + this._editorView!.dispatch(this._editorView!.state.tr.setSelection(new NodeSelection(this._editorView!.state.doc.resolve(pos.pos - 2)))); + } else { + this._editorView!.dispatch(this._editorView!.state.tr.setNodeMarkup(pos.pos - 1, node2.type, { ...node2.attrs, visibility: !node2.attrs.visibility })); + } + } } } } @@ -903,7 +974,7 @@ export class FormattedTextBox extends DocComponent<(FieldViewProps & FormattedTe if (e.key === "Tab" || e.key === "Enter") { e.preventDefault(); } - this._editorView!.state.tr.removeStoredMark(schema.marks.user_mark.create({})).addStoredMark(schema.marks.user_mark.create({ userid: Doc.CurrentUserEmail, modified: timenow() })); + this._editorView!.dispatch(this._editorView!.state.tr.removeStoredMark(schema.marks.user_mark.create({})).addStoredMark(schema.marks.user_mark.create({ userid: Doc.CurrentUserEmail, modified: timenow() }))); if (!this._undoTyping) { this._undoTyping = UndoManager.StartBatch("undoTyping"); diff --git a/src/client/views/nodes/ImageBox.tsx b/src/client/views/nodes/ImageBox.tsx index 624593245..004f50590 100644 --- a/src/client/views/nodes/ImageBox.tsx +++ b/src/client/views/nodes/ImageBox.tsx @@ -38,6 +38,7 @@ library.add(faFileAudio, faAsterisk); export const pageSchema = createSchema({ curPage: "number", + fitWidth: "boolean" }); interface Window { diff --git a/src/client/views/nodes/PDFBox.scss b/src/client/views/nodes/PDFBox.scss index c88a94c28..2917c81cb 100644 --- a/src/client/views/nodes/PDFBox.scss +++ b/src/client/views/nodes/PDFBox.scss @@ -1,77 +1,67 @@ .pdfBox-cont, .pdfBox-cont-interactive { - display: flex; + display: inline-block; flex-direction: row; height: 100%; - overflow-y: scroll; - overflow-x: hidden; - .pdfBox-scrollHack { - pointer-events: none; - } + width:100%; + overflow: hidden; + position:absolute; + z-index: -1; } .pdfBox-cont { pointer-events: none; - .pdfPage-textlayer { - span { - pointer-events: none !important; - user-select: none; + .collectionFreeFormView-none { + pointer-events: none; + } + .pdfViewer-text { + .textLayer { + span { + user-select: none; + } } } } .pdfBox-cont-interactive { pointer-events: all; - .pdfPage-textlayer { - span { - pointer-events: all !important; - user-select: text; + .pdfViewer-text { + .textLayer { + span { + user-select: text; + } } } } -.react-pdf__Page { - transform-origin: left top; - position: absolute; - top: 0; - left: 0; -} - -.react-pdf__Page__textContent span { - user-select: text; -} - -.react-pdf__Document { - position: absolute; -} - .pdfBox-settingsCont { position: absolute; right: 0; - top: 0; + top: 3; + pointer-events: all; .pdfBox-settingsButton { border-bottom-left-radius: 50%; display: flex; justify-content: space-evenly; align-items: center; - height: 70px; + height: 30px; background: none; padding: 0; .pdfBox-settingsButton-arrow { width: 0; height: 0; - border-top: 25px solid transparent; - border-bottom: 25px solid transparent; - border-right: 25px solid #121721; + border-top: 15px solid transparent; + border-bottom: 15px solid transparent; + border-right: 15px solid #121721; transition: all 0.5s; } .pdfBox-settingsButton-iconCont { background: #121721; - height: 50px; + height: 30px; width: 70px; display: flex; justify-content: center; @@ -86,16 +76,15 @@ } .pdfBox-settingsFlyout { - width: 600px; position: absolute; background: #323232; box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.25); - left: -400px; + right: 20px; border-radius: 7px; padding: 20px; display: flex; flex-direction: column; - font-size: 30px; + font-size: 14px; transition: all 0.5s; .pdfBox-settingsFlyout-title { @@ -108,4 +97,69 @@ grid-template-columns: 47.5% 5% 47.5%; } } -} \ No newline at end of file +} + +.pdfBox-overlayCont { + position: absolute; + width: 100%; + height: 40px; + background: #121721; + bottom: 0; + display: flex; + justify-content: center; + align-items: center; + padding: 20px; + overflow: hidden; + transition: left .5s; + pointer-events: all; + + .pdfBox-searchBar { + width: 70%; + font-size: 14px; + } +} + +.pdfBox-overlayButton { + border-bottom-left-radius: 50%; + display: flex; + justify-content: space-evenly; + align-items: center; + height: 30px; + background: none; + padding: 0; + position: absolute; + pointer-events: all; + + .pdfBox-overlayButton-arrow { + width: 0; + height: 0; + border-top: 15px solid transparent; + border-bottom: 15px solid transparent; + border-right: 15px solid #121721; + transition: all 0.5s; + } + + .pdfBox-overlayButton-iconCont, + .pdfBox-nextIcon, + .pdfBox-prevIcon { + background: #121721; + height: 30px; + width: 70px; + display: flex; + justify-content: center; + align-items: center; + margin-left: -2px; + border-radius: 3px; + } +} + +.pdfBox-overlayButton:hover { + background: none; +} + +.pdfBox-nextIcon { + left: 20; top: 5; height: 30px; position: absolute; +} +.pdfBox-prevIcon { + left: 50; top: 5; height: 30px; position: absolute; +} diff --git a/src/client/views/nodes/PDFBox.tsx b/src/client/views/nodes/PDFBox.tsx index 764051d62..fe71e76fd 100644 --- a/src/client/views/nodes/PDFBox.tsx +++ b/src/client/views/nodes/PDFBox.tsx @@ -1,12 +1,12 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { action, computed, IReactionDisposer, observable, reaction, runInAction } from 'mobx'; +import { action, computed, IReactionDisposer, observable, reaction, runInAction, untracked, trace } from 'mobx'; import { observer } from "mobx-react"; import * as Pdfjs from "pdfjs-dist"; import "pdfjs-dist/web/pdf_viewer.css"; import 'react-image-lightbox/style.css'; import { Doc, Opt, WidthSym } from "../../../new_fields/Doc"; import { makeInterface } from "../../../new_fields/Schema"; -import { ComputedField, ScriptField } from '../../../new_fields/ScriptField'; +import { ScriptField } from '../../../new_fields/ScriptField'; import { Cast, NumCast } from "../../../new_fields/Types"; import { PdfField } from "../../../new_fields/URLField"; import { KeyCodes } from '../../northstar/utils/KeyCodes'; @@ -19,82 +19,59 @@ import { FieldView, FieldViewProps } from './FieldView'; import { pageSchema } from "./ImageBox"; import "./PDFBox.scss"; import React = require("react"); +import { undoBatch } from '../../util/UndoManager'; +import { ContextMenuProps } from '../ContextMenuItem'; +import { ContextMenu } from '../ContextMenu'; +import { Utils } from '../../../Utils'; type PdfDocument = makeInterface<[typeof documentSchema, typeof panZoomSchema, typeof pageSchema]>; const PdfDocument = makeInterface(documentSchema, panZoomSchema, pageSchema); @observer export class PDFBox extends DocComponent(PdfDocument) { - public static LayoutString() { return FieldView.LayoutString(PDFBox); } - private _mainCont: React.RefObject = React.createRef(); - private _reactionDisposer?: IReactionDisposer; + public static LayoutString(fieldExt?: string) { return FieldView.LayoutString(PDFBox, "data", fieldExt); } private _keyValue: string = ""; private _valueValue: string = ""; private _scriptValue: string = ""; + private _searchString: string = ""; + private _isChildActive = false; + private _pdfViewer: PDFViewer | undefined; private _keyRef: React.RefObject = React.createRef(); private _valueRef: React.RefObject = React.createRef(); private _scriptRef: React.RefObject = React.createRef(); + @observable private _searching: boolean = false; @observable private _flyout: boolean = false; - @observable private _alt = false; @observable private _pdf: Opt; + @observable private _pageControls = false; @computed get extensionDoc() { return Doc.fieldExtensionDoc(this.dataDoc, this.props.fieldKey); } - @computed get dataDoc() { return this.props.DataDoc && this.props.Document.isTemplate ? this.props.DataDoc : Doc.GetProto(this.props.Document); } componentDidMount() { - this.props.setPdfBox && this.props.setPdfBox(this); - - this.props.Document.curPage = ComputedField.MakeFunction("Math.floor(Number(this.panY) / Number(this.nativeHeight) + 1)"); - const pdfUrl = Cast(this.dataDoc[this.props.fieldKey], PdfField); if (pdfUrl instanceof PdfField) { Pdfjs.getDocument(pdfUrl.url.pathname).promise.then(pdf => runInAction(() => this._pdf = pdf)); } - this._reactionDisposer = reaction( - () => this.Document.panY, - () => this._mainCont.current && this._mainCont.current.scrollTo({ top: this.Document.panY || 0, behavior: "auto" }) - ); - } - - componentWillUnmount() { - this._reactionDisposer && this._reactionDisposer(); - } - - public GetPage() { - return Math.floor((this.Document.panY || 0) / (this.Document.nativeHeight || 0)) + 1; - } - - @action - public BackPage() { - let cp = Math.ceil((this.Document.panY || 0) / (this.Document.nativeHeight || 0)) + 1; - cp = cp - 1; - if (cp > 0) { - this.Document.panY = (cp - 1) * (this.Document.nativeHeight || 0); - } } - - @action - public GotoPage = (p: number) => { - if (p > 0 && p <= NumCast(this.dataDoc.numPages)) { - this.Document.panY = (p - 1) * (this.Document.nativeHeight || 0); + loaded = (nw: number, nh: number, np: number) => { + this.dataDoc.numPages = np; + if (!this.Document.nativeWidth || !this.Document.nativeHeight || !this.Document.scrollHeight) { + let oldaspect = (this.Document.nativeHeight || 0) / (this.Document.nativeWidth || 1); + this.Document.nativeWidth = nw * 96 / 72; + this.Document.nativeHeight = this.Document.nativeHeight ? nw * 96 / 72 * oldaspect : nh * 96 / 72; } + !this.Document.fitWidth && !this.Document.ignoreAspect && (this.Document.height = this.Document[WidthSym]() * (nh / nw)); } - @action - public ForwardPage() { - let cp = this.GetPage() + 1; - if (cp <= NumCast(this.dataDoc.numPages)) { - this.Document.panY = (cp - 1) * (this.Document.nativeHeight || 0); - } - } - - @action - setPanY = (y: number) => { - this.Document.panY = y; - } + public search(string: string, fwd: boolean) { this._pdfViewer && this._pdfViewer.search(string, fwd); } + public prevAnnotation() { this._pdfViewer && this._pdfViewer.prevAnnotation(); } + public nextAnnotation() { this._pdfViewer && this._pdfViewer.nextAnnotation(); } + public backPage() { this._pdfViewer!.gotoPage(NumCast(this.props.Document.curPage) - 1); } + public gotoPage = (p: number) => { this._pdfViewer!.gotoPage(p); }; + public forwardPage() { this._pdfViewer!.gotoPage(NumCast(this.props.Document.curPage) + 1); } + @undoBatch @action private applyFilter = () => { let scriptText = this._scriptValue ? this._scriptValue : @@ -102,10 +79,6 @@ export class PDFBox extends DocComponent(PdfDocumen this.props.Document.filterScript = ScriptField.MakeFunction(scriptText); } - scrollTo = (y: number) => { - this._mainCont.current && this._mainCont.current.scrollTo({ top: Math.max(y - (this._mainCont.current.offsetHeight / 2), 0), behavior: "auto" }); - } - private resetFilters = () => { this._keyValue = this._valueValue = this._scriptValue = ""; this._keyRef.current && (this._keyRef.current.value = ""); @@ -117,83 +90,112 @@ export class PDFBox extends DocComponent(PdfDocumen private newValueChange = (e: React.ChangeEvent) => this._valueValue = e.currentTarget.value; private newScriptChange = (e: React.ChangeEvent) => this._scriptValue = e.currentTarget.value; + whenActiveChanged = (isActive: boolean) => this.props.whenActiveChanged(this._isChildActive = isActive); + active = () => this.props.isSelected() || this._isChildActive || this.props.renderDepth === 0; + setPdfViewer = (pdfViewer: PDFViewer) => { this._pdfViewer = pdfViewer; }; + searchStringChanged = (e: React.ChangeEvent) => this._searchString = e.currentTarget.value; + settingsPanel() { + let pageBtns = <> + + + ; return !this.props.active() ? (null) : - (
e.stopPropagation()}> - + + +
+ -
-
- Annotation View Settings -
-
- - -
-
- -
-
- - + this.gotoPage(Number(e.currentTarget.value))} + style={{ left: 20, top: 5, height: "30px", width: "30px", position: "absolute", pointerEvents: "all" }} + onClick={action(() => this._pageControls = !this._pageControls)} /> + {this._pageControls ? pageBtns : (null)} +
e.stopPropagation()}> + +
+
+ Annotation View Settings +
+
+ + +
+
+ +
+
+ + +
); } - loaded = (nw: number, nh: number, np: number) => { - this.dataDoc.numPages = np; - if (!this.Document.nativeWidth || !this.Document.nativeHeight || !this.Document.scrollHeight) { - let oldaspect = (this.Document.nativeHeight || 0) / (this.Document.nativeWidth || 1); - this.Document.nativeWidth = nw; - this.Document.nativeHeight = this.Document.nativeHeight ? nw * oldaspect : nh; - this.Document.height = this.Document[WidthSym]() * (nh / nw); - this.Document.scrollHeight = np * this.Document.nativeHeight; - } - } + specificContextMenu = (e: React.MouseEvent): void => { + const pdfUrl = Cast(this.dataDoc[this.props.fieldKey], PdfField); + let funcs: ContextMenuProps[] = []; + pdfUrl && funcs.push({ description: "Copy path", event: () => Utils.CopyText(pdfUrl.url.pathname), icon: "expand-arrows-alt" }); + funcs.push({ description: "Toggle Fit Width " + (this.Document.fitWidth ? "Off" : "On"), event: () => this.Document.fitWidth = !this.Document.fitWidth, icon: "expand-arrows-alt" }); - @action - onScroll = (e: React.UIEvent) => { - if (e.currentTarget && this.props.ContainingCollectionDoc) { - this.props.Document.panTransformType = "None"; - this.Document.panY = e.currentTarget.scrollTop; - } + ContextMenu.Instance.addItem({ description: "Pdf Funcs...", subitems: funcs, icon: "asterisk" }); } - render() { const pdfUrl = Cast(this.dataDoc[this.props.fieldKey], PdfField); - let classname = "pdfBox-cont" + (this.props.active() && !InkingControl.Instance.selectedTool && !this._alt ? "-interactive" : ""); + let classname = "pdfBox-cont" + (InkingControl.Instance.selectedTool || !this.active ? "" : "-interactive"); return (!(pdfUrl instanceof PdfField) || !this._pdf ?
{`pdf, ${this.dataDoc[this.props.fieldKey]}, not found`}
: -
-
- { + let hit = document.elementFromPoint(e.clientX, e.clientY); + if (hit && hit.localName === "span" && this.props.isSelected()) { // drag selecting text stops propagation + e.button === 0 && e.stopPropagation(); + } + }}> + {this.settingsPanel()}
); diff --git a/src/client/views/nodes/PresBox.tsx b/src/client/views/nodes/PresBox.tsx index e376fbddb..5afd85430 100644 --- a/src/client/views/nodes/PresBox.tsx +++ b/src/client/views/nodes/PresBox.tsx @@ -161,10 +161,8 @@ export class PresBox extends React.Component { //FieldViewProps? if (zoomOut || this.presElementsMappings.get(docAtCurrent)!.showButton) { let prevScale = NumCast(this.childrenDocs[prevSelected].viewScale, null); let curScale = DocumentManager.Instance.getScaleOfDocView(this.childrenDocs[current]); - if (prevScale !== undefined) { - if (prevScale !== curScale) { - DocumentManager.Instance.zoomIntoScale(docAtCurrent, prevScale); - } + if (prevScale !== undefined && prevScale !== curScale) { + DocumentManager.Instance.zoomIntoScale(docAtCurrent, prevScale); } } } diff --git a/src/client/views/pdf/Annotation.tsx b/src/client/views/pdf/Annotation.tsx index a9fa883c8..3ed85f6a5 100644 --- a/src/client/views/pdf/Annotation.tsx +++ b/src/client/views/pdf/Annotation.tsx @@ -85,7 +85,15 @@ class RegionAnnotation extends React.Component { @action onPointerDown = async (e: React.PointerEvent) => { - if (e.button === 0) { + if (e.button === 2 || e.ctrlKey) { + PDFMenu.Instance.Status = "annotation"; + PDFMenu.Instance.Delete = this.deleteAnnotation.bind(this); + PDFMenu.Instance.Pinned = false; + PDFMenu.Instance.AddTag = this.addTag.bind(this); + PDFMenu.Instance.PinToPres = this.pinToPres; + PDFMenu.Instance.jumpTo(e.clientX, e.clientY, true); + } + else if (e.button === 0) { let targetDoc = await Cast(this.props.document.target, Doc); if (targetDoc) { let context = await Cast(targetDoc.targetContext, Doc); @@ -96,14 +104,6 @@ class RegionAnnotation extends React.Component { } } } - if (e.button === 2) { - PDFMenu.Instance.Status = "annotation"; - PDFMenu.Instance.Delete = this.deleteAnnotation.bind(this); - PDFMenu.Instance.Pinned = false; - PDFMenu.Instance.AddTag = this.addTag.bind(this); - PDFMenu.Instance.PinToPres = this.pinToPres; - PDFMenu.Instance.jumpTo(e.clientX, e.clientY, true); - } } addTag = (key: string, value: string): boolean => { diff --git a/src/client/views/pdf/PDFMenu.tsx b/src/client/views/pdf/PDFMenu.tsx index 3ed81faef..2202351ee 100644 --- a/src/client/views/pdf/PDFMenu.tsx +++ b/src/client/views/pdf/PDFMenu.tsx @@ -1,11 +1,10 @@ import React = require("react"); import "./PDFMenu.scss"; -import { observable, action, runInAction } from "mobx"; +import { observable, action, } from "mobx"; import { observer } from "mobx-react"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { emptyFunction, returnFalse } from "../../../Utils"; import { Doc } from "../../../new_fields/Doc"; -import { handleBackspace } from "../nodes/PDFBox"; @observer export default class PDFMenu extends React.Component { @@ -238,8 +237,8 @@ export default class PDFMenu extends React.Component { ,
- - + +
, , diff --git a/src/client/views/pdf/PDFViewer.scss b/src/client/views/pdf/PDFViewer.scss index a2f3911c5..8027e93a3 100644 --- a/src/client/views/pdf/PDFViewer.scss +++ b/src/client/views/pdf/PDFViewer.scss @@ -1,93 +1,66 @@ - -.pdfViewer-viewer { - pointer-events:inherit; + +.pdfViewer-viewer, .pdfViewer-viewer-zoomed { + pointer-events: inherit; width: 100%; - .pdfViewer-visibleElements { - .pdfPage-cont { - .pdfPage-textLayer { - div { - user-select: text; - } - span { - color: transparent; - position: absolute; - white-space: pre; - cursor: text; - -webkit-transform-origin: 0% 0%; - transform-origin: 0% 0%; - } - } - } + height: 100%; + position: absolute; + overflow-y: auto; + overflow-x: hidden; + + // .canvasWrapper { + // transform: scale(0.75); + // transform-origin: top left; + // } + // .textLayer { + // transform: scale(0.75); + // transform-origin: top left; + // } + + .page { + position: relative; } - .pdfViewer-text { - transform: scale(1.5); - transform-origin: top left; + .collectionfreeformview-container { + pointer-events: none; + } + + .pdfViewer-dragAnnotationBox { + position:absolute; + background-color: transparent; + opacity: 0.1; } + .pdfViewer-overlay { + transform: scale(2.14359); + transform-origin: left top; + position: absolute; + top: 0px; + left: 0px; + display: inline-block; + width:100%; + } .pdfViewer-annotationLayer { position: absolute; top: 0; width: 100%; pointer-events: none; + .pdfPage-annotationBox { position: absolute; background-color: red; opacity: 0.1; } } - - .pdfViewer-overlayCont { - position: absolute; - width: 100%; - height: 100px; - background: #121721; - bottom: 0; - display: flex; - justify-content: center; - align-items: center; - padding: 20px; - overflow: hidden; - transition: left .5s; - .pdfViewer-overlaySearchBar { - width: 20%; - height: 100%; - font-size: 30px; - padding: 5px; - } - } - - .pdfViewer-overlayButton { - border-bottom-left-radius: 50%; - display: flex; - justify-content: space-evenly; - align-items: center; - height: 70px; - background: none; - padding: 0; + .pdfViewer-waiting { + width: 70%; + height: 70%; + margin : 15%; + transition: 0.4s opacity ease; + opacity: 0.7; position: absolute; - - .pdfViewer-overlayButton-arrow { - width: 0; - height: 0; - border-top: 25px solid transparent; - border-bottom: 25px solid transparent; - border-right: 25px solid #121721; - transition: all 0.5s; - } - - .pdfViewer-overlayButton-iconCont { - background: #121721; - height: 50px; - width: 70px; - display: flex; - justify-content: center; - align-items: center; - margin-left: -2px; - border-radius: 3px; - } - } - - .pdfViewer-overlayButton:hover { - background: none; + z-index: 10; } } +.pdfViewer-viewer-zoomed { + overflow-x: scroll; +} + \ No newline at end of file diff --git a/src/client/views/pdf/PDFViewer.tsx b/src/client/views/pdf/PDFViewer.tsx index c94b4e3a4..13fd8ea98 100644 --- a/src/client/views/pdf/PDFViewer.tsx +++ b/src/client/views/pdf/PDFViewer.tsx @@ -1,28 +1,33 @@ -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import { action, computed, IReactionDisposer, observable, reaction, runInAction, trace } from "mobx"; +import { action, computed, IReactionDisposer, observable, reaction, trace, runInAction } from "mobx"; import { observer } from "mobx-react"; import * as Pdfjs from "pdfjs-dist"; import "pdfjs-dist/web/pdf_viewer.css"; -import * as rp from "request-promise"; import { Dictionary } from "typescript-collections"; -import { Doc, DocListCast, FieldResult } from "../../../new_fields/Doc"; +import { Doc, DocListCast, FieldResult, WidthSym, Opt, HeightSym } from "../../../new_fields/Doc"; import { Id } from "../../../new_fields/FieldSymbols"; import { List } from "../../../new_fields/List"; +import { listSpec } from "../../../new_fields/Schema"; import { ScriptField } from "../../../new_fields/ScriptField"; import { Cast, NumCast, StrCast } from "../../../new_fields/Types"; -import { Utils, numberRange } from "../../../Utils"; +import smoothScroll, { Utils, emptyFunction, returnOne } from "../../../Utils"; import { DocServer } from "../../DocServer"; import { Docs, DocUtils } from "../../documents/Documents"; -import { KeyCodes } from "../../northstar/utils/KeyCodes"; -import { CompileScript, CompiledScript } from "../../util/Scripting"; -import Annotation from "./Annotation"; -import Page from "./Page"; +import { DragManager } from "../../util/DragManager"; +import { CompiledScript, CompileScript } from "../../util/Scripting"; +import { Transform } from "../../util/Transform"; +import PDFMenu from "./PDFMenu"; import "./PDFViewer.scss"; import React = require("react"); -import requestPromise = require("request-promise"); +import * as rp from "request-promise"; +import { CollectionPDFView } from "../collections/CollectionPDFView"; +import { CollectionVideoView } from "../collections/CollectionVideoView"; +import { CollectionView } from "../collections/CollectionView"; +import Annotation from "./Annotation"; +import { CollectionFreeFormView } from "../collections/collectionFreeForm/CollectionFreeFormView"; const PDFJSViewer = require("pdfjs-dist/web/pdf_viewer"); +const pdfjsLib = require("pdfjs-dist"); -export const scale = 2; +pdfjsLib.GlobalWorkerOptions.workerSrc = `/assets/pdf.worker.js`; interface IViewerProps { pdf: Pdfjs.PDFDocumentProxy; @@ -31,15 +36,23 @@ interface IViewerProps { DataDoc?: Doc; fieldExtensionDoc: Doc; fieldKey: string; + fieldExt: string; + PanelWidth: () => number; + PanelHeight: () => number; + ContentScaling: () => number; + select: (isCtrlPressed: boolean) => void; + renderDepth: number; + isSelected: () => boolean; loaded: (nw: number, nh: number, np: number) => void; - panY: number; - scrollTo: (y: number) => void; active: () => boolean; - setPanY?: (n: number) => void; GoToPage?: (n: number) => void; addDocTab: (document: Doc, dataDoc: Doc | undefined, where: string) => boolean; pinToPres: (document: Doc) => void; addDocument?: (doc: Doc, allowDuplicates?: boolean) => boolean; + setPdfViewer: (view: PDFViewer) => void; + ScreenToLocalTransform: () => Transform; + ContainingCollectionView: Opt; + whenActiveChanged: (isActive: boolean) => void; } /** @@ -47,36 +60,37 @@ interface IViewerProps { */ @observer export class PDFViewer extends React.Component { - @observable.shallow private _visibleElements: JSX.Element[] = []; // _visibleElements is the array of JSX elements that gets rendered - @observable private _isPage: string[] = [];// _isPage is an array that tells us whether or not an index is rendered as a page or as a placeholder @observable private _pageSizes: { width: number, height: number }[] = []; @observable private _annotations: Doc[] = []; @observable private _savedAnnotations: Dictionary = new Dictionary(); @observable private _script: CompiledScript = CompileScript("return true") as CompiledScript; - @observable private _searching: boolean = false; @observable private Index: number = -1; - - private _pageBuffer: number = 1; + @observable private _marqueeX: number = 0; + @observable private _marqueeY: number = 0; + @observable private _marqueeWidth: number = 0; + @observable private _marqueeHeight: number = 0; + @observable private _marqueeing: boolean = false; + @observable private _showWaiting = true; + @observable private _showCover = false; + @observable private _zoomed = 1; + + public pdfViewer: any; + private _isChildActive = false; + private _setPreviewCursor: undefined | ((x: number, y: number, drag: boolean) => void); private _annotationLayer: React.RefObject = React.createRef(); private _reactionDisposer?: IReactionDisposer; + private _selectionReactionDisposer?: IReactionDisposer; private _annotationReactionDisposer?: IReactionDisposer; private _filterReactionDisposer?: IReactionDisposer; private _viewer: React.RefObject = React.createRef(); private _mainCont: React.RefObject = React.createRef(); - public _pdfViewer: any; - private _pdfFindController: any; - private _searchString: string = ""; + private _marquee: React.RefObject = React.createRef(); private _selectionText: string = ""; - - @computed get panY(): number { return this.props.panY; } - - // startIndex: where to start rendering pages - @computed get startIndex(): number { return Math.max(0, this.getPageFromScroll(this.panY) - this._pageBuffer); } - - // endIndex: where to end rendering pages - @computed get endIndex(): number { - return Math.min(this.props.pdf.numPages - 1, this.getPageFromScroll(this.panY + (this._pageSizes[0] ? this._pageSizes[0].height : 0)) + this._pageBuffer); - } + private _startX: number = 0; + private _startY: number = 0; + private _downX: number = 0; + private _downY: number = 0; + private _coverPath: any; @computed get allAnnotations() { return DocListCast(this.props.fieldExtensionDoc.annotations).filter( @@ -87,42 +101,32 @@ export class PDFViewer extends React.Component { return this._annotations.filter(anno => this._script.run({ this: anno }, console.log, true).result); } - componentDidUpdate = (prevProps: IViewerProps) => this.panY !== prevProps.panY && this.renderPages(); - componentDidMount = async () => { - await this.initialLoad(); - + // change the address to be the file address of the PNG version of each page + // file address of the pdf + this._coverPath = JSON.parse(await rp.get(Utils.prepend(`/thumbnail${this.props.url.substring("files/".length, this.props.url.length - ".pdf".length)}-${NumCast(this.props.Document.curPage, 1)}.PNG`))); + runInAction(() => this._showWaiting = this._showCover = true); + this._selectionReactionDisposer = reaction(() => this.props.isSelected(), () => this.setupPdfJsViewer()); this._reactionDisposer = reaction( - () => [this.props.active(), this.startIndex, this._pageSizes.length ? this.endIndex : 0], - () => this.renderPages(), - { fireImmediately: true }); - - this._annotationReactionDisposer = reaction( - () => this.props.fieldExtensionDoc && DocListCast(this.props.fieldExtensionDoc.annotations), - annotations => annotations && annotations.length && this.renderAnnotations(annotations, true), - { fireImmediately: true }); - - this._filterReactionDisposer = reaction( - () => ({ scriptField: Cast(this.props.Document.filterScript, ScriptField), annos: this._annotations.slice() }), - action(({ scriptField, annos }: { scriptField: FieldResult, annos: Doc[] }) => { - let oldScript = this._script.originalScript; - this._script = scriptField && scriptField.script.compiled ? scriptField.script : CompileScript("return true") as CompiledScript; - if (this._script.originalScript !== oldScript) { - this.Index = -1; + () => this.props.Document.scrollY, + (scrollY) => { + if (scrollY !== undefined) { + if (this._showCover || this._showWaiting) { + this.setupPdfJsViewer(); + } + this._mainCont.current && smoothScroll(1000, this._mainCont.current, NumCast(this.props.Document.scrollY) || 0); + this.props.Document.scrollY = undefined; } - annos.forEach(d => d.opacity = this._script.run({ this: d }, console.log, 1).result ? 1 : 0); - }), + }, { fireImmediately: true } ); - - document.removeEventListener("copy", this.copy); - document.addEventListener("copy", this.copy); } componentWillUnmount = () => { this._reactionDisposer && this._reactionDisposer(); this._annotationReactionDisposer && this._annotationReactionDisposer(); this._filterReactionDisposer && this._filterReactionDisposer(); + this._selectionReactionDisposer && this._selectionReactionDisposer(); document.removeEventListener("copy", this.copy); } @@ -143,41 +147,74 @@ export class PDFViewer extends React.Component { } } - searchStringChanged = (e: React.ChangeEvent) => this._searchString = e.currentTarget.value; - - pageLoaded = (page: Pdfjs.PDFPageViewport): void => this.props.loaded(page.width, page.height, this.props.pdf.numPages); - setSelectionText = (text: string) => this._selectionText = text; - getIndex = () => this.Index; - @action initialLoad = async () => { if (this._pageSizes.length === 0) { - this._isPage = Array(this.props.pdf.numPages); this._pageSizes = Array<{ width: number, height: number }>(this.props.pdf.numPages); - this._visibleElements = Array(this.props.pdf.numPages); await Promise.all(this._pageSizes.map>((val, i) => this.props.pdf.getPage(i + 1).then(action((page: Pdfjs.PDFPageProxy) => { this._pageSizes.splice(i, 1, { - width: (page.view[page.rotate === 0 || page.rotate === 180 ? 2 : 3] - page.view[page.rotate === 0 || page.rotate === 180 ? 0 : 1]) * scale, - height: (page.view[page.rotate === 0 || page.rotate === 180 ? 3 : 2] - page.view[page.rotate === 0 || page.rotate === 180 ? 1 : 0]) * scale + width: (page.view[page.rotate === 0 || page.rotate === 180 ? 2 : 3] - page.view[page.rotate === 0 || page.rotate === 180 ? 0 : 1]), + height: (page.view[page.rotate === 0 || page.rotate === 180 ? 3 : 2] - page.view[page.rotate === 0 || page.rotate === 180 ? 1 : 0]) }); - this._visibleElements.splice(i, 1, -
- "PAGE IS LOADING... " -
); - this.getPlaceholderPage(i); + i === this.props.pdf.numPages - 1 && this.props.loaded((page.view[page.rotate === 0 || page.rotate === 180 ? 2 : 3] - page.view[page.rotate === 0 || page.rotate === 180 ? 0 : 1]), + (page.view[page.rotate === 0 || page.rotate === 180 ? 3 : 2] - page.view[page.rotate === 0 || page.rotate === 180 ? 1 : 0]), i); })))); - this.props.loaded(Math.max(...this._pageSizes.map(i => i.width)), this._pageSizes[0].height, this.props.pdf.numPages); - - let startY = NumCast(this.props.Document.startY, NumCast(this.props.Document.panY)); - this.props.setPanY && this.props.setPanY(startY); - this.props.scrollTo(startY); + Doc.GetProto(this.props.Document).scrollHeight = this._pageSizes.reduce((size, page) => size + page.height, 0) * 96 / 72; } } + @action + setupPdfJsViewer = async () => { + this._selectionReactionDisposer && this._selectionReactionDisposer(); + this._selectionReactionDisposer = undefined; + this._showWaiting = true; + this.props.setPdfViewer(this); + await this.initialLoad(); + + this._annotationReactionDisposer = reaction( + () => this.props.fieldExtensionDoc && DocListCast(this.props.fieldExtensionDoc.annotations), + annotations => annotations && annotations.length && this.renderAnnotations(annotations, true), + { fireImmediately: true }); + + this._filterReactionDisposer = reaction( + () => ({ scriptField: Cast(this.props.Document.filterScript, ScriptField), annos: this._annotations.slice() }), + action(({ scriptField, annos }: { scriptField: FieldResult, annos: Doc[] }) => { + let oldScript = this._script.originalScript; + this._script = scriptField && scriptField.script.compiled ? scriptField.script : CompileScript("return true") as CompiledScript; + if (this._script.originalScript !== oldScript) { + this.Index = -1; + } + annos.forEach(d => d.opacity = this._script.run({ this: d }, console.log, 1).result ? 1 : 0); + }), + { fireImmediately: true } + ); + + document.removeEventListener("copy", this.copy); + document.addEventListener("copy", this.copy); + document.addEventListener("pagesinit", action(() => { + this.pdfViewer.currentScaleValue = this._zoomed = 1; + this.gotoPage(NumCast(this.props.Document.curPage, 1)); + })); + document.addEventListener("pagerendered", action(() => this._showCover = this._showWaiting = false)); + var pdfLinkService = new PDFJSViewer.PDFLinkService(); + let pdfFindController = new PDFJSViewer.PDFFindController({ + linkService: pdfLinkService, + }); + this.pdfViewer = new PDFJSViewer.PDFViewer({ + container: this._mainCont.current, + viewer: this._viewer.current, + linkService: pdfLinkService, + findController: pdfFindController, + renderer: "canvas", + }); + pdfLinkService.setViewer(this.pdfViewer); + pdfLinkService.setDocument(this.props.pdf, null); + this.pdfViewer.setDocument(this.props.pdf); + } + @action makeAnnotationDocument = (sourceDoc: Doc | undefined, color: string, createLink: boolean = true): Doc => { let mainAnnoDoc = Docs.Create.InstanceFromProto(new Doc(), "", {}); @@ -198,9 +235,9 @@ export class PDFViewer extends React.Component { annoDocs.push(annoDoc); annoDoc.isButton = true; anno.remove(); - this.props.addDocument && this.props.addDocument(annoDoc, false); mainAnnoDoc = annoDoc; - mainAnnoDocProto = Doc.GetProto(annoDoc); + mainAnnoDocProto = Doc.GetProto(mainAnnoDoc); + mainAnnoDocProto.y = annoDoc.y; } else { this._savedAnnotations.forEach((key: number, value: HTMLDivElement[]) => value.map(anno => { let annoDoc = new Doc(); @@ -230,61 +267,6 @@ export class PDFViewer extends React.Component { return mainAnnoDoc; } - @action - getPlaceholderPage = (page: number) => { - if (this._isPage[page] !== "none") { - this._isPage[page] = "none"; - this._visibleElements[page] = ( -
- "PAGE IS LOADING... " -
); - } - } - - @action - getRenderedPage = (page: number) => { - if (this._isPage[page] !== "page") { - this._isPage[page] = "page"; - this._visibleElements[page] = (); - } - } - - // change the address to be the file address of the PNG version of each page - // file address of the pdf - @action - getPageImage = async (page: number) => { - if (this._isPage[page] !== "image") { - this._isPage[page] = "image"; - try { - let res = JSON.parse(await rp.get(Utils.prepend(`/thumbnail${this.props.url.substring("files/".length, this.props.url.length - ".pdf".length)}-${page + 1}.PNG`))); - runInAction(() => this._visibleElements[page] = - this.getRenderedPage(page)} - style={{ width: `${parseInt(res.width) * scale}px`, height: `${parseInt(res.height) * scale}px` }} />); - } catch (e) { - console.log(e); - } - } - } - - renderPages = () => { - numberRange(this.props.pdf.numPages).filter(p => this._isPage[p] !== undefined).map(i => - (i < this.startIndex || i > this.endIndex) ? this.getPlaceholderPage(i) : // pages outside of the pdf use empty stand-in divs - this.props.active() ? this.getRenderedPage(i) : this.getPageImage(i)); - } - @action renderAnnotations = (annotations: Doc[], removeOldAnnotations: boolean): void => { if (removeOldAnnotations) { @@ -297,23 +279,30 @@ export class PDFViewer extends React.Component { } @action - prevAnnotation = (e: React.MouseEvent) => { - e.stopPropagation(); + prevAnnotation = () => { this.Index = Math.max(this.Index - 1, 0); - let scrollToAnnotation = this.allAnnotations.sort((a, b) => NumCast(a.y) - NumCast(b.y))[this.Index]; - this.allAnnotations.forEach(d => Doc.UnBrushDoc(d)); - Doc.BrushDoc(scrollToAnnotation); - this.props.scrollTo(NumCast(scrollToAnnotation.y)); + this.scrollToAnnotation(this.allAnnotations.sort((a, b) => NumCast(a.y) - NumCast(b.y))[this.Index]); } @action - nextAnnotation = (e: React.MouseEvent) => { - e.stopPropagation(); + nextAnnotation = () => { this.Index = Math.min(this.Index + 1, this.allAnnotations.length - 1); - let scrollToAnnotation = this.allAnnotations.sort((a, b) => NumCast(a.y) - NumCast(b.y))[this.Index]; + this.scrollToAnnotation(this.allAnnotations.sort((a, b) => NumCast(a.y) - NumCast(b.y))[this.Index]); + } + + @action + gotoPage = (p: number) => { + this.pdfViewer && this.pdfViewer.scrollPageIntoView({ pageNumber: Math.min(Math.max(1, p), this._pageSizes.length) }); + } + + @action + scrollToAnnotation = (scrollToAnnotation: Doc) => { this.allAnnotations.forEach(d => Doc.UnBrushDoc(d)); + let windowHgt = this.props.PanelHeight() / this.props.ContentScaling(); + let scrollRange = this._mainCont.current!.scrollHeight - windowHgt; + let pgScroll = scrollRange / this._pageSizes.length; + this._mainCont.current!.scrollTo(0, NumCast(scrollToAnnotation.y) - pgScroll / 2); Doc.BrushDoc(scrollToAnnotation); - this.props.scrollTo(NumCast(scrollToAnnotation.y)); } sendAnnotations = (page: number) => { @@ -330,6 +319,11 @@ export class PDFViewer extends React.Component { } } + @action + onScroll = (e: React.UIEvent) => { + this.pdfViewer && (this.props.Document.curPage = this.pdfViewer.currentPageNumber); + } + // get the page index that the vertical offset passed in is on getPageFromScroll = (vOffset: number) => { let index = 0; @@ -340,15 +334,11 @@ export class PDFViewer extends React.Component { return index; } - getScrollFromPage = (index: number): number => { - return numberRange(Math.min(this.props.pdf.numPages, index)).reduce((counter, i) => counter + this._pageSizes[i].height, 0); - } - @action createAnnotation = (div: HTMLDivElement, page: number) => { if (this._annotationLayer.current) { if (div.style.top) { - div.style.top = (parseInt(div.style.top) + this.getScrollFromPage(page)).toString(); + div.style.top = (parseInt(div.style.top)/*+ this.getScrollFromPage(page)*/).toString(); } this._annotationLayer.current.append(div); let savedPage = this._savedAnnotations.getValue(page); @@ -363,11 +353,14 @@ export class PDFViewer extends React.Component { } @action - search = (searchString: string) => { - if (this._pdfViewer._pageViewsReady) { - this._pdfFindController.executeCommand('findagain', { + search = (searchString: string, fwd: boolean) => { + if (!searchString) { + fwd ? this.nextAnnotation() : this.prevAnnotation(); + } + else if (this.pdfViewer._pageViewsReady) { + this.pdfViewer.findController.executeCommand('findagain', { caseSensitive: false, - findPrevious: undefined, + findPrevious: !fwd, highlightAll: true, phraseSearch: true, query: searchString @@ -375,122 +368,354 @@ export class PDFViewer extends React.Component { } else if (this._mainCont.current) { let executeFind = () => { - this._pdfFindController.executeCommand('find', { + this.pdfViewer.findController.executeCommand('find', { caseSensitive: false, - findPrevious: undefined, + findPrevious: !fwd, highlightAll: true, phraseSearch: true, query: searchString }); - } + }; this._mainCont.current.addEventListener("pagesloaded", executeFind); this._mainCont.current.addEventListener("pagerendered", executeFind); } } - @action - toggleSearch = (e: React.MouseEvent) => { - e.stopPropagation(); - this._searching = !this._searching; - - if (this._searching) { - if (!this._pdfFindController && this._mainCont.current && this._viewer.current && !this._pdfViewer) { - let simpleLinkService = new SimpleLinkService(this); - this._pdfViewer = new PDFJSViewer.PDFViewer({ - container: this._mainCont.current, - viewer: this._viewer.current, - linkService: simpleLinkService - }) - simpleLinkService.setPDFJSview(this._pdfViewer); - this._mainCont.current.addEventListener("pagesinit", () => this._pdfViewer.currentScaleValue = 1); - this._mainCont.current.addEventListener("pagerendered", () => console.log("rendered")); - this._pdfViewer.setDocument(this.props.pdf); - this._pdfFindController = new PDFJSViewer.PDFFindController(this._pdfViewer); - this._pdfViewer.findController = this._pdfFindController; + onPointerDown = (e: React.PointerEvent): void => { + // if alt+left click, drag and annotate + this._downX = e.clientX; + this._downY = e.clientY; + if (NumCast(this.props.Document.scale, 1) !== 1) return; + if ((e.button !== 0 || e.altKey) && this.active()) { + this._setPreviewCursor && this._setPreviewCursor(e.clientX, e.clientY, true); + } + this._marqueeing = false; + if (!e.altKey && e.button === 0 && this.active()) { + PDFMenu.Instance.StartDrag = this.startDrag; + PDFMenu.Instance.Highlight = this.highlight; + PDFMenu.Instance.Snippet = this.createSnippet; + PDFMenu.Instance.Status = "pdf"; + PDFMenu.Instance.fadeOut(true); + if (e.target && (e.target as any).parentElement.className === "textLayer") { + if (!e.ctrlKey) { + this.receiveAnnotations([], -1); + } + } + else { + // set marquee x and y positions to the spatially transformed position + if (this._mainCont.current) { + let boundingRect = this._mainCont.current.getBoundingClientRect(); + this._startX = this._marqueeX = (e.clientX - boundingRect.left) * (this._mainCont.current.offsetWidth / boundingRect.width); + this._startY = this._marqueeY = (e.clientY - boundingRect.top) * (this._mainCont.current.offsetHeight / boundingRect.height) + this._mainCont.current.scrollTop; + } + this._marqueeing = true; + let marquees = this._mainCont.current!.getElementsByClassName("pdfViewer-dragAnnotationBox"); + if (marquees && marquees.length) { // make a copy of the marquee + let marquee = marquees[0] as HTMLDivElement; + marquee.style.opacity = "0.2"; + } + this.receiveAnnotations([], -1); } + document.removeEventListener("pointermove", this.onSelectMove); + document.addEventListener("pointermove", this.onSelectMove); + document.removeEventListener("pointerup", this.onSelectEnd); + document.addEventListener("pointerup", this.onSelectEnd); } } - @computed get visibleElementWrapper() { - trace(); - return this._visibleElements; + + @action + onSelectMove = (e: PointerEvent): void => { + if (this._marqueeing && this._mainCont.current) { + // transform positions and find the width and height to set the marquee to + let boundingRect = this._mainCont.current.getBoundingClientRect(); + this._marqueeWidth = ((e.clientX - boundingRect.left) * (this._mainCont.current.offsetWidth / boundingRect.width)) - this._startX; + this._marqueeHeight = ((e.clientY - boundingRect.top) * (this._mainCont.current.offsetHeight / boundingRect.height)) - this._startY + this._mainCont.current.scrollTop; + this._marqueeX = Math.min(this._startX, this._startX + this._marqueeWidth); + this._marqueeY = Math.min(this._startY, this._startY + this._marqueeHeight); + this._marqueeWidth = Math.abs(this._marqueeWidth); + this._marqueeHeight = Math.abs(this._marqueeHeight); + e.stopPropagation(); + e.preventDefault(); + } + else if (e.target && (e.target as any).parentElement === this._mainCont.current) { + e.stopPropagation(); + } } - render() { - return (
-
- {this.visibleElementWrapper} -
-
-
- {this.nonDocAnnotations.sort((a, b) => NumCast(a.y) - NumCast(b.y)).map((anno, index) => - )} -
-
e.stopPropagation()} - style={{ bottom: -this.props.panY, left: `${this._searching ? 0 : 100}%` }}> - -
- - - -
); + @action + createTextAnnotation = (sel: Selection, selRange: Range) => { + if (this._mainCont.current) { + let boundingRect = this._mainCont.current.getBoundingClientRect(); + let clientRects = selRange.getClientRects(); + for (let i = 0; i < clientRects.length; i++) { + let rect = clientRects.item(i); + if (rect/* && rect.width !== this._mainCont.current.getBoundingClientRect().width && rect.height !== this._mainCont.current.getBoundingClientRect().height / this.props.pdf.numPages*/) { + let scaleY = this._mainCont.current.offsetHeight / boundingRect.height; + let scaleX = this._mainCont.current.offsetWidth / boundingRect.width; + if (rect.width !== this._mainCont.current.clientWidth) { + let annoBox = document.createElement("div"); + annoBox.className = "pdfPage-annotationBox"; + // transforms the positions from screen onto the pdf div + annoBox.style.top = ((rect.top - boundingRect.top) * scaleY + this._mainCont.current.scrollTop).toString(); + annoBox.style.left = ((rect.left - boundingRect.left) * scaleX).toString(); + annoBox.style.width = (rect.width * this._mainCont.current.offsetWidth / boundingRect.width).toString(); + annoBox.style.height = (rect.height * this._mainCont.current.offsetHeight / boundingRect.height).toString(); + this.createAnnotation(annoBox, this.getPageFromScroll(rect.top)); + } + } + } + } + let text = selRange.cloneContents().textContent; + text && this.setSelectionText(text); + + // clear selection + if (sel.empty) { // Chrome + sel.empty(); + } else if (sel.removeAllRanges) { // Firefox + sel.removeAllRanges(); + } } -} -export enum AnnotationTypes { Region } + @action + onSelectEnd = (e: PointerEvent): void => { + if (this._marqueeing) { + if (this._marqueeWidth > 10 || this._marqueeHeight > 10) { + let marquees = this._mainCont.current!.getElementsByClassName("pdfViewer-dragAnnotationBox"); + if (marquees && marquees.length) { // make a copy of the marquee + let copy = document.createElement("div"); + let marquee = marquees[0] as HTMLDivElement; + let style = marquee.style; + copy.style.left = style.left; + copy.style.top = style.top; + copy.style.width = style.width; + copy.style.height = style.height; + copy.style.border = style.border; + copy.style.opacity = style.opacity; + copy.className = "pdfPage-annotationBox"; + this.createAnnotation(copy, this.getPageFromScroll(this._marqueeY)); + marquee.style.opacity = "0"; + } + + if (!e.ctrlKey) { + PDFMenu.Instance.Status = "snippet"; + PDFMenu.Instance.Marquee = { left: this._marqueeX, top: this._marqueeY, width: this._marqueeWidth, height: this._marqueeHeight }; + } + PDFMenu.Instance.jumpTo(e.clientX, e.clientY); + } + + this._marqueeHeight = this._marqueeWidth = 0; + } + else { + let sel = window.getSelection(); + if (sel && sel.type === "Range") { + let selRange = sel.getRangeAt(0); + this.createTextAnnotation(sel, selRange); + PDFMenu.Instance.jumpTo(e.clientX, e.clientY); + } + } -class SimpleLinkService { - _viewer: PDFViewer; - _pdfjsView: any; + if (PDFMenu.Instance.Highlighting) { + this.highlight(undefined, "goldenrod"); + } + else { + PDFMenu.Instance.StartDrag = this.startDrag; + PDFMenu.Instance.Highlight = this.highlight; + } + document.removeEventListener("pointermove", this.onSelectMove); + document.removeEventListener("pointerup", this.onSelectEnd); + } - constructor(viewer: PDFViewer) { - this._viewer = viewer; + @action + highlight = (targetDoc: Doc | undefined, color: string) => { + // creates annotation documents for current highlights + let annotationDoc = this.makeAnnotationDocument(targetDoc, color, false); + Doc.AddDocToList(this.props.fieldExtensionDoc, this.props.fieldExt, annotationDoc); + return annotationDoc; } - setPDFJSview(v: any) { this._pdfjsView = v; } - navigateTo() { } + /** + * This is temporary for creating annotations from highlights. It will + * start a drag event and create or put the necessary info into the drag event. + */ + @action + startDrag = (e: PointerEvent, ele: HTMLElement): void => { + e.preventDefault(); + e.stopPropagation(); + let targetDoc = Docs.Create.TextDocument({ width: 200, height: 200, title: "New Annotation" }); + targetDoc.targetPage = this.getPageFromScroll(this._marqueeY); + let annotationDoc = this.highlight(undefined, "red"); + annotationDoc.linkedToDoc = false; + let dragData = new DragManager.AnnotationDragData(this.props.Document, annotationDoc, targetDoc); + DragManager.StartAnnotationDrag([ele], dragData, e.pageX, e.pageY, { + handlers: { + dragComplete: () => { + if (!annotationDoc.linkedToDoc) { + let annotations = DocListCast(annotationDoc.annotations); + annotations && annotations.forEach(anno => anno.target = targetDoc); + DocUtils.MakeLink(annotationDoc, targetDoc, dragData.targetContext, `Annotation from ${StrCast(this.props.Document.title)}`); + } + } + }, + hideSource: false + }); + } - getDestinationHash() { return "#"; } + createSnippet = (marquee: { left: number, top: number, width: number, height: number }): void => { + let view = Doc.MakeAlias(this.props.Document); + let data = Doc.MakeDelegate(Doc.GetProto(this.props.Document)); + data.title = StrCast(data.title) + "_snippet"; + view.proto = data; + view.nativeHeight = marquee.height; + view.height = (this.props.Document[WidthSym]() / NumCast(this.props.Document.nativeWidth)) * marquee.height; + view.nativeWidth = this.props.Document.nativeWidth; + view.startY = marquee.top; + view.width = this.props.Document[WidthSym](); + DragManager.StartDocumentDrag([], new DragManager.DocumentDragData([view]), 0, 0); + } - getAnchorUrl() { return "#"; } + // this is called with the document that was dragged and the collection to move it into. + // if the target collection is the same as this collection, then the move will be allowed. + // otherwise, the document being moved must be able to be removed from its container before + // moving it into the target. + @action.bound + moveDocument(doc: Doc, targetCollection: Doc, addDocument: (doc: Doc) => boolean): boolean { + if (Doc.AreProtosEqual(this.props.Document, targetCollection)) { + return true; + } + return this.removeDocument(doc) ? addDocument(doc) : false; + } - setHash() { } - isPageVisible(page: number) { return true; } + @action.bound + removeDocument(doc: Doc): boolean { + //TODO This won't create the field if it doesn't already exist + let targetDataDoc = this.props.fieldExtensionDoc; + let targetField = this.props.fieldExt; + let value = Cast(targetDataDoc[targetField], listSpec(Doc), []); + let index = value.reduce((p, v, i) => (v instanceof Doc && v === doc) ? i : p, -1); + index = index !== -1 ? index : value.reduce((p, v, i) => (v instanceof Doc && Doc.AreProtosEqual(v, doc)) ? i : p, -1); + index !== -1 && value.splice(index, 1); + return true; + } + scrollXf = () => { + return this._mainCont.current ? this.props.ScreenToLocalTransform().translate(0, this._mainCont.current.scrollTop) : this.props.ScreenToLocalTransform(); + } + setPreviewCursor = (func?: (x: number, y: number, drag: boolean) => void) => { + this._setPreviewCursor = func; + } + onClick = (e: React.MouseEvent) => { + this._setPreviewCursor && + e.button === 0 && + Math.abs(e.clientX - this._downX) < 3 && + Math.abs(e.clientY - this._downY) < 3 && + this._setPreviewCursor(e.clientX, e.clientY, false); + } + whenActiveChanged = (isActive: boolean) => { + this._isChildActive = isActive; + this.props.whenActiveChanged(isActive); + } + active = () => { + return this.props.isSelected() || this._isChildActive || this.props.renderDepth === 0; + } - executeNamedAction() { } + getCoverImage = () => { + if (!this.props.Document[HeightSym]()) { + setTimeout(() => { + this.props.Document.height = this.props.Document[WidthSym]() * this._coverPath.height / this._coverPath.width; + this.props.Document.nativeHeight = nativeWidth * this._coverPath.height / this._coverPath.width; + }, 0); + } + let nativeWidth = NumCast(this.props.Document.nativeWidth); + let nativeHeight = NumCast(this.props.Document.nativeHeight); + return this._showWaiting = false)} + style={{ position: "absolute", display: "inline-block", top: 0, left: 0, width: `${nativeWidth}px`, height: `${nativeHeight}px` }} />; + } - cachePageRef() { } - get pagesCount() { return this._viewer._pdfViewer.pagesCount; } + @action + onZoomWheel = (e: React.WheelEvent) => { + e.stopPropagation(); + if (e.ctrlKey) { + let curScale = Number(this.pdfViewer.currentScaleValue); + this.pdfViewer.currentScaleValue = Math.max(1, Math.min(10, curScale + curScale * e.deltaY / 1000)); + this._zoomed = Number(this.pdfViewer.currentScaleValue); + } + } - get page() { return NumCast(this._viewer.props.Document.curPage); } - set page(p: number) { - this._pdfjsView._ensurePdfPageLoaded(this._pdfjsView._pages[p - 1]).then(() => { - this._pdfjsView.renderingQueue.renderView(this._pdfjsView._pages[p - 1]); - if (this._viewer.props.GoToPage) - this._viewer.props.GoToPage(p); - }); + @computed get annotationLayer() { + return
+ {this.nonDocAnnotations.sort((a, b) => NumCast(a.y) - NumCast(b.y)).map((anno, index) => + )} +
; + } + @computed get pdfViewerDiv() { + return
; } + @computed get standinViews() { + return <> + {this._showCover ? this.getCoverImage() : (null)} + {this._showWaiting ? : (null)} + ; + } + marqueeWidth = () => this._marqueeWidth; + marqueeHeight = () => this._marqueeHeight; + marqueeX = () => this._marqueeX; + marqueeY = () => this._marqueeY; + marqueeing = () => this._marqueeing; + render() { + trace(); + return (
+ {this.pdfViewerDiv} + +
+ {this.annotationLayer} + NumCast(this.props.Document.scrollHeight, NumCast(this.props.Document.nativeHeight))} + PanelWidth={() => this._pageSizes.length && this._pageSizes[0] ? this._pageSizes[0].width : NumCast(this.props.Document.nativeWidth)} + focus={emptyFunction} + isSelected={this.props.isSelected} + select={emptyFunction} + active={this.active} + ContentScaling={returnOne} + whenActiveChanged={this.whenActiveChanged} + removeDocument={this.removeDocument} + moveDocument={this.moveDocument} + addDocument={(doc: Doc, allow: boolean | undefined) => { Doc.AddDocToList(this.props.fieldExtensionDoc, this.props.fieldExt, doc); return true; }} + CollectionView={this.props.ContainingCollectionView} + ScreenToLocalTransform={this.scrollXf} + ruleProvider={undefined} + renderDepth={this.props.renderDepth + 1} + ContainingCollectionDoc={this.props.ContainingCollectionView && this.props.ContainingCollectionView.props.Document} + chromeCollapsed={true}> + +
+ {this.standinViews} +
); + } +} + +interface PdfViewerMarqueeProps { + isMarqueeing: () => boolean; + width: () => number; + height: () => number; + x: () => number; + y: () => number; +} + +@observer +class PdfViewerMarquee extends React.Component { + render() { + return !this.props.isMarqueeing() ? (null) :
+
; + } +} - get rotation() { return 0; } - set rotation(value: any) { } -} \ No newline at end of file +export enum AnnotationTypes { Region } diff --git a/src/client/views/pdf/Page.scss b/src/client/views/pdf/Page.scss deleted file mode 100644 index d8034b4b4..000000000 --- a/src/client/views/pdf/Page.scss +++ /dev/null @@ -1,36 +0,0 @@ - -.pdfViewer-text { - .page { - position: relative; - } -} -.pdfPage-cont { - position: relative; - - .pdfPage-canvasContainer { - position: absolute; - } - - .pdfPage-dragAnnotationBox { - position: absolute; - background-color: transparent; - opacity: 0.1; - } - - .pdfPage-textLayer { - position: absolute; - width: 100%; - height: 100%; - div { - user-select: text; - } - span { - color: transparent; - position: absolute; - white-space: pre; - cursor: text; - -webkit-transform-origin: 0% 0%; - transform-origin: 0% 0%; - } - } -} \ No newline at end of file diff --git a/src/client/views/pdf/Page.tsx b/src/client/views/pdf/Page.tsx deleted file mode 100644 index 533247170..000000000 --- a/src/client/views/pdf/Page.tsx +++ /dev/null @@ -1,293 +0,0 @@ -import { action, IReactionDisposer, observable } from "mobx"; -import { observer } from "mobx-react"; -import * as Pdfjs from "pdfjs-dist"; -import "pdfjs-dist/web/pdf_viewer.css"; -import { Doc, DocListCastAsync, Opt, WidthSym } from "../../../new_fields/Doc"; -import { BoolCast, Cast, NumCast, StrCast } from "../../../new_fields/Types"; -import { Docs, DocUtils } from "../../documents/Documents"; -import { DragManager } from "../../util/DragManager"; -import PDFMenu from "./PDFMenu"; -import { scale } from "./PDFViewer"; -import "./Page.scss"; -import React = require("react"); - - -interface IPageProps { - size: { width: number, height: number }; - pdf: Pdfjs.PDFDocumentProxy; - name: string; - numPages: number; - page: number; - pageLoaded: (page: Pdfjs.PDFPageViewport) => void; - fieldExtensionDoc: Doc; - Document: Doc; - renderAnnotations: (annotations: Doc[], removeOld: boolean) => void; - sendAnnotations: (annotations: HTMLDivElement[], page: number) => void; - createAnnotation: (div: HTMLDivElement, page: number) => void; - makeAnnotationDocuments: (doc: Doc | undefined, color: string, linkTo: boolean) => Doc; - getScrollFromPage: (page: number) => number; - setSelectionText: (text: string) => void; -} - -@observer -export default class Page extends React.Component { - @observable private _state: "N/A" | "rendering" = "N/A"; - @observable private _width: number = this.props.size.width; - @observable private _height: number = this.props.size.height; - @observable private _page: Opt; - @observable private _currPage: number = this.props.page + 1; - @observable private _marqueeX: number = 0; - @observable private _marqueeY: number = 0; - @observable private _marqueeWidth: number = 0; - @observable private _marqueeHeight: number = 0; - - private _canvas: React.RefObject = React.createRef(); - private _textLayer: React.RefObject = React.createRef(); - private _marquee: React.RefObject = React.createRef(); - private _marqueeing: boolean = false; - private _reactionDisposer?: IReactionDisposer; - private _startY: number = 0; - private _startX: number = 0; - - componentDidMount = (): void => this.loadPage(this.props.pdf); - - componentDidUpdate = (): void => this.loadPage(this.props.pdf); - - componentWillUnmount = (): void => this._reactionDisposer && this._reactionDisposer(); - - loadPage = (pdf: Pdfjs.PDFDocumentProxy): void => { - pdf.getPage(this._currPage).then(page => this.renderPage(page)); - } - - @action - renderPage = (page: Pdfjs.PDFPageProxy): void => { - // lower scale = easier to read at small sizes, higher scale = easier to read at large sizes - if (this._state !== "rendering" && !this._page && this._canvas.current && this._textLayer.current) { - this._state = "rendering"; - let viewport = page.getViewport(scale); - this._canvas.current.width = this._width = viewport.width; - this._canvas.current.height = this._height = viewport.height; - this.props.pageLoaded(viewport); - let ctx = this._canvas.current.getContext("2d"); - if (ctx) { - //@ts-ignore - page.render({ canvasContext: ctx, viewport: viewport, enableWebGL: true }); // renders the page onto the canvas context - page.getTextContent().then(res => // renders text onto the text container - //@ts-ignore - Pdfjs.renderTextLayer({ - textContent: res, - container: this._textLayer.current, - viewport: viewport - })); - - this._page = page; - } - } - } - - @action - highlight = (targetDoc: Doc | undefined, color: string) => { - // creates annotation documents for current highlights - let annotationDoc = this.props.makeAnnotationDocuments(targetDoc, color, false); - Doc.AddDocToList(this.props.fieldExtensionDoc, "annotations", annotationDoc); - return annotationDoc; - } - - /** - * This is temporary for creating annotations from highlights. It will - * start a drag event and create or put the necessary info into the drag event. - */ - @action - startDrag = (e: PointerEvent, ele: HTMLElement): void => { - e.preventDefault(); - e.stopPropagation(); - if (this._textLayer.current) { - let targetDoc = Docs.Create.TextDocument({ width: 200, height: 200, title: "New Annotation" }); - targetDoc.targetPage = this.props.page; - let annotationDoc = this.highlight(undefined, "red"); - annotationDoc.linkedToDoc = false; - let dragData = new DragManager.AnnotationDragData(this.props.Document, annotationDoc, targetDoc); - DragManager.StartAnnotationDrag([ele], dragData, e.pageX, e.pageY, { - handlers: { - dragComplete: async () => { - if (!BoolCast(annotationDoc.linkedToDoc)) { - let annotations = await DocListCastAsync(annotationDoc.annotations); - annotations && annotations.forEach(anno => anno.target = targetDoc); - DocUtils.MakeLink(annotationDoc, targetDoc, dragData.targetContext, `Annotation from ${StrCast(this.props.Document.title)}`); - } - } - }, - hideSource: false - }); - } - } - - // cleans up events and boolean - endDrag = (e: PointerEvent): void => { - e.stopPropagation(); - } - - createSnippet = (marquee: { left: number, top: number, width: number, height: number }): void => { - let view = Doc.MakeAlias(this.props.Document); - let data = Doc.MakeDelegate(Doc.GetProto(this.props.Document)); - data.title = StrCast(data.title) + "_snippet"; - view.proto = data; - view.nativeHeight = marquee.height; - view.height = (this.props.Document[WidthSym]() / NumCast(this.props.Document.nativeWidth)) * marquee.height; - view.nativeWidth = this.props.Document.nativeWidth; - view.startY = marquee.top + this.props.getScrollFromPage(this.props.page); - view.width = this.props.Document[WidthSym](); - DragManager.StartDocumentDrag([], new DragManager.DocumentDragData([view]), 0, 0); - } - - @action - onPointerDown = (e: React.PointerEvent): void => { - // if alt+left click, drag and annotate - if (NumCast(this.props.Document.scale, 1) !== 1) return; - if (!e.altKey && e.button === 0) { - PDFMenu.Instance.StartDrag = this.startDrag; - PDFMenu.Instance.Highlight = this.highlight; - PDFMenu.Instance.Snippet = this.createSnippet; - PDFMenu.Instance.Status = "pdf"; - PDFMenu.Instance.fadeOut(true); - if (e.target && (e.target as any).parentElement === this._textLayer.current) { - e.stopPropagation(); - if (!e.ctrlKey) { - this.props.sendAnnotations([], -1); - } - } - else { - // set marquee x and y positions to the spatially transformed position - if (this._textLayer.current) { - let boundingRect = this._textLayer.current.getBoundingClientRect(); - this._startX = this._marqueeX = (e.clientX - boundingRect.left) * (this._textLayer.current.offsetWidth / boundingRect.width); - this._startY = this._marqueeY = (e.clientY - boundingRect.top) * (this._textLayer.current.offsetHeight / boundingRect.height); - } - this._marqueeing = true; - this._marquee.current && (this._marquee.current.style.opacity = "0.2"); - this.props.sendAnnotations([], -1); - } - document.removeEventListener("pointermove", this.onSelectStart); - document.addEventListener("pointermove", this.onSelectStart); - document.removeEventListener("pointerup", this.onSelectEnd); - document.addEventListener("pointerup", this.onSelectEnd); - } - } - - @action - onSelectStart = (e: PointerEvent): void => { - if (this._marqueeing && this._textLayer.current) { - // transform positions and find the width and height to set the marquee to - let boundingRect = this._textLayer.current.getBoundingClientRect(); - this._marqueeWidth = ((e.clientX - boundingRect.left) * (this._textLayer.current.offsetWidth / boundingRect.width)) - this._startX; - this._marqueeHeight = ((e.clientY - boundingRect.top) * (this._textLayer.current.offsetHeight / boundingRect.height)) - this._startY; - this._marqueeX = Math.min(this._startX, this._startX + this._marqueeWidth); - this._marqueeY = Math.min(this._startY, this._startY + this._marqueeHeight); - this._marqueeWidth = Math.abs(this._marqueeWidth); - e.stopPropagation(); - e.preventDefault(); - } - else if (e.target && (e.target as any).parentElement === this._textLayer.current) { - e.stopPropagation(); - } - } - - @action - onSelectEnd = (e: PointerEvent): void => { - if (this._marqueeing) { - this._marqueeing = false; - if (this._marqueeWidth > 10 || this._marqueeHeight > 10) { - if (this._marquee.current) { // make a copy of the marquee - let copy = document.createElement("div"); - let style = this._marquee.current.style; - copy.style.left = style.left; - copy.style.top = style.top; - copy.style.width = style.width; - copy.style.height = style.height; - copy.style.border = style.border; - copy.style.opacity = style.opacity; - copy.className = "pdfPage-annotationBox"; - this.props.createAnnotation(copy, this.props.page); - this._marquee.current.style.opacity = "0"; - } - - if (!e.ctrlKey) { - PDFMenu.Instance.Status = "snippet"; - PDFMenu.Instance.Marquee = { left: this._marqueeX, top: this._marqueeY, width: this._marqueeWidth, height: this._marqueeHeight }; - } - PDFMenu.Instance.jumpTo(e.clientX, e.clientY); - } - - this._marqueeHeight = this._marqueeWidth = 0; - } - else { - let sel = window.getSelection(); - if (sel && sel.type === "Range") { - let selRange = sel.getRangeAt(0); - this.createTextAnnotation(sel, selRange); - PDFMenu.Instance.jumpTo(e.clientX, e.clientY); - } - } - - if (PDFMenu.Instance.Highlighting) { - this.highlight(undefined, "goldenrod"); - } - else { - PDFMenu.Instance.StartDrag = this.startDrag; - PDFMenu.Instance.Highlight = this.highlight; - } - document.removeEventListener("pointermove", this.onSelectStart); - document.removeEventListener("pointerup", this.onSelectEnd); - } - - @action - createTextAnnotation = (sel: Selection, selRange: Range) => { - if (this._textLayer.current) { - let boundingRect = this._textLayer.current.getBoundingClientRect(); - let clientRects = selRange.getClientRects(); - for (let i = 0; i < clientRects.length; i++) { - let rect = clientRects.item(i); - if (rect && rect.width !== this._textLayer.current.getBoundingClientRect().width && rect.height !== this._textLayer.current.getBoundingClientRect().height) { - let annoBox = document.createElement("div"); - annoBox.className = "pdfPage-annotationBox"; - // transforms the positions from screen onto the pdf div - annoBox.style.top = ((rect.top - boundingRect.top) * (this._textLayer.current.offsetHeight / boundingRect.height)).toString(); - annoBox.style.left = ((rect.left - boundingRect.left) * (this._textLayer.current.offsetWidth / boundingRect.width)).toString(); - annoBox.style.width = (rect.width * this._textLayer.current.offsetWidth / boundingRect.width).toString(); - annoBox.style.height = (rect.height * this._textLayer.current.offsetHeight / boundingRect.height).toString(); - this.props.createAnnotation(annoBox, this.props.page); - } - } - } - let text = selRange.cloneContents().textContent; - text && this.props.setSelectionText(text); - - // clear selection - if (sel.empty) { // Chrome - sel.empty(); - } else if (sel.removeAllRanges) { // Firefox - sel.removeAllRanges(); - } - } - - doubleClick = (e: React.MouseEvent) => { - if (e.target && (e.target as any).parentElement === this._textLayer.current) { - // do something to select the paragraph ideally - } - } - - render() { - return ( -
- -
-
-
-
); - } -} \ No newline at end of file diff --git a/src/client/views/presentationview/PresentationModeMenu.tsx b/src/client/views/presentationview/PresentationModeMenu.tsx index 4de8da587..0dd2b7731 100644 --- a/src/client/views/presentationview/PresentationModeMenu.tsx +++ b/src/client/views/presentationview/PresentationModeMenu.tsx @@ -21,10 +21,12 @@ export interface PresModeMenuProps { export default class PresModeMenu extends React.Component { @observable private _top: number = 20; - @observable private _right: number = 0; + @observable private _left: number = window.innerWidth - 160; @observable private _opacity: number = 1; @observable private _transition: string = "opacity 0.5s"; @observable private _transitionDelay: string = ""; + private _offsetY: number = 0; + private _offsetX: number = 0; private _mainCont: React.RefObject = React.createRef(); @@ -35,8 +37,8 @@ export default class PresModeMenu extends React.Component { */ @action dragging = (e: PointerEvent) => { - this._right -= e.movementX; - this._top += e.movementY; + this._left = e.pageX - this._offsetX; + this._top = e.pageY - this._offsetY; e.stopPropagation(); e.preventDefault(); @@ -63,6 +65,9 @@ export default class PresModeMenu extends React.Component { document.removeEventListener("pointerup", this.dragEnd); document.addEventListener("pointerup", this.dragEnd); + this._offsetX = this._mainCont.current!.getBoundingClientRect().width - e.nativeEvent.offsetX; + this._offsetY = e.nativeEvent.offsetY; + e.stopPropagation(); e.preventDefault(); } @@ -82,7 +87,7 @@ export default class PresModeMenu extends React.Component { render() { return (
+ style={{ left: this._left, top: this._top, opacity: this._opacity, transition: this._transition, transitionDelay: this._transitionDelay }}> {this.renderPlayPauseButton()} diff --git a/src/debug/Test.tsx b/src/debug/Test.tsx index 79f87f4ac..3baedce4b 100644 --- a/src/debug/Test.tsx +++ b/src/debug/Test.tsx @@ -2,39 +2,12 @@ import * as React from 'react'; import * as ReactDOM from 'react-dom'; import { DocServer } from '../client/DocServer'; import { Doc } from '../new_fields/Doc'; +import * as Pdfjs from "pdfjs-dist"; +import "pdfjs-dist/web/pdf_viewer.css"; +import { Utils } from '../Utils'; +const PDFJSViewer = require("pdfjs-dist/web/pdf_viewer"); const protoId = "protoDoc"; const delegateId = "delegateDoc"; class Test extends React.Component { - onCreateClick = () => { - const proto = new Doc(protoId, true); - const delegate = Doc.MakeDelegate(proto, delegateId); - } - - onReadClick = async () => { - console.log("reading"); - const docs = await DocServer.GetRefFields([delegateId, protoId]); - console.log("done"); - console.log(docs); - } - - onDeleteClick = () => { - DocServer.DeleteDocuments([protoId, delegateId]); - } - - render() { - return ( -
- - - -
- ); - } } - -DocServer.init(window.location.protocol, window.location.hostname, 4321, "test"); -ReactDOM.render( - , - document.getElementById('root') -); \ No newline at end of file diff --git a/src/new_fields/Doc.ts b/src/new_fields/Doc.ts index fef3b8cc5..605877efa 100644 --- a/src/new_fields/Doc.ts +++ b/src/new_fields/Doc.ts @@ -13,6 +13,7 @@ import { listSpec } from "./Schema"; import { ComputedField } from "./ScriptField"; import { BoolCast, Cast, FieldValue, NumCast, PromiseValue, StrCast, ToConstructor } from "./Types"; import { deleteProperty, getField, getter, makeEditable, makeReadOnly, setter, updateFunction } from "./util"; +import { intersectRect } from "../Utils"; export namespace Field { export function toKeyValueString(doc: Doc, key: string): string { @@ -343,7 +344,7 @@ export namespace Doc { let list = Cast(target[key], listSpec(Doc)); if (list) { if (allowDuplicates !== true) { - let pind = list.reduce((l, d, i) => d instanceof Doc && Doc.AreProtosEqual(d, doc) ? i : l, -1); + let pind = list.reduce((l, d, i) => d instanceof Doc && d[Id] === doc[Id] ? i : l, -1); if (pind !== -1) { list.splice(pind, 1); } @@ -614,6 +615,18 @@ export namespace Doc { }), 0); } + export function overlapping(doc: Doc, doc2: Doc, clusterDistance: number) { + var x2 = NumCast(doc2.x) - clusterDistance; + var y2 = NumCast(doc2.y) - clusterDistance; + var w2 = NumCast(doc2.width) + clusterDistance; + var h2 = NumCast(doc2.height) + clusterDistance; + var x = NumCast(doc.x) - clusterDistance; + var y = NumCast(doc.y) - clusterDistance; + var w = NumCast(doc.width) + clusterDistance; + var h = NumCast(doc.height) + clusterDistance; + return doc.z === doc2.z && intersectRect({ left: x, top: y, width: w, height: h }, { left: x2, top: y2, width: w2, height: h2 }); + } + export function isBrushedHighlightedDegree(doc: Doc) { if (Doc.IsHighlighted(doc)) { return 3; -- cgit v1.2.3-70-g09d2 From 5bf4dfa43e07a21bc5cb96b3b98f1a6ddb75b903 Mon Sep 17 00:00:00 2001 From: andrewdkim Date: Sat, 23 Nov 2019 16:31:15 -0500 Subject: another change --- src/client/views/animationtimeline/Timeline.tsx | 3 +-- .../views/collections/collectionFreeForm/CollectionFreeFormView.tsx | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/animationtimeline/Timeline.tsx b/src/client/views/animationtimeline/Timeline.tsx index 64822542d..2b960cc88 100644 --- a/src/client/views/animationtimeline/Timeline.tsx +++ b/src/client/views/animationtimeline/Timeline.tsx @@ -8,8 +8,7 @@ import { Cast, NumCast, StrCast, BoolCast } from "../../../new_fields/Types"; import { List } from "../../../new_fields/List"; import { Doc, DocListCast } from "../../../new_fields/Doc"; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { faPlayCircle, faBackward, faForward, faGripLines, faArrowUp, faArrowDown, faClock, faPauseCircle, faEyeSlash, faTimes, faEye, faCheck, faCross, faCheckCircle, faTimesCircle } from "@fortawesome/free-solid-svg-icons"; -import { ContextMenuProps } from "../ContextMenuItem"; +import { faPlayCircle, faBackward, faForward, faGripLines,faPauseCircle, faEyeSlash,faEye,faCheckCircle, faTimesCircle } from "@fortawesome/free-solid-svg-icons"; import { ContextMenu } from "../ContextMenu"; import { TimelineOverview } from "./TimelineOverview"; import { FieldViewProps } from "../nodes/FieldView"; diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index 9fbfffc82..e2b4716ce 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -637,7 +637,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { } private viewDefToJSX(viewDef: any): Opt { - if (viewDef.type === "text") { + if (viewDef.type === "text") { const text = Cast(viewDef.text, "string"); // don't use NumCast, StrCast, etc since we want to test for undefined below const x = Cast(viewDef.x, "number"); const y = Cast(viewDef.y, "number"); -- cgit v1.2.3-70-g09d2 From 92068acedc3d6f5bed25dc1a0dacbe19d0338829 Mon Sep 17 00:00:00 2001 From: andrewdkim Date: Sun, 9 Feb 2020 14:06:54 -0500 Subject: reformatted --- package-lock.json | 8 ++++- package.json | 2 +- src/client/views/animationtimeline/Timeline.tsx | 2 +- .../views/animationtimeline/TimelineOverview.scss | 2 +- .../views/animationtimeline/TimelineOverview.tsx | 35 +++++++++++----------- .../collectionFreeForm/CollectionFreeFormView.tsx | 33 ++++++++++---------- 6 files changed, 46 insertions(+), 36 deletions(-) (limited to 'src/client/views/collections') diff --git a/package-lock.json b/package-lock.json index 379cd3337..1f87e1493 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14244,7 +14244,8 @@ "fsevents": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", - "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==" + "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "optional": true }, "get-caller-file": { "version": "2.0.5", @@ -16134,6 +16135,11 @@ "setimmediate": "^1.0.4" } }, + "tiny-timer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/tiny-timer/-/tiny-timer-1.4.0.tgz", + "integrity": "sha512-NZCayn+Y2OaDaBtVQmx8Lx/SggG9qGGINYoPNmXpqvj8ue7E24H9ZgI+02I9BZSMWCW8keOXsw2R3hSzk7aALQ==" + }, "tinycolor2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", diff --git a/package.json b/package.json index b6beb5a3a..155026d2c 100644 --- a/package.json +++ b/package.json @@ -237,4 +237,4 @@ "xoauth2": "^1.2.0", "youtube": "^0.1.0" } -} \ No newline at end of file +} diff --git a/src/client/views/animationtimeline/Timeline.tsx b/src/client/views/animationtimeline/Timeline.tsx index 5d5e78652..2ac7e6c92 100644 --- a/src/client/views/animationtimeline/Timeline.tsx +++ b/src/client/views/animationtimeline/Timeline.tsx @@ -343,7 +343,7 @@ export class Timeline extends React.Component { * context menu function. * opens the timeline or closes the timeline. */ - timelineContextMenu = (e: MouseEvent): void => { + timelineContextMenu = (e: React.MouseEvent): void => { ContextMenu.Instance.addItem({ description: (this._timelineVisible ? "Close" : "Open") + " Animation Timeline", event: action(() => { this._timelineVisible = !this._timelineVisible; diff --git a/src/client/views/animationtimeline/TimelineOverview.scss b/src/client/views/animationtimeline/TimelineOverview.scss index b54399307..283163ea7 100644 --- a/src/client/views/animationtimeline/TimelineOverview.scss +++ b/src/client/views/animationtimeline/TimelineOverview.scss @@ -72,7 +72,7 @@ $timelineDark: #77a1aa; position: relative; padding: 0px; margin: 0px; - // width: 100%; + width: 100%; height: 4px; background-color: $timelineColor; border-radius: 20px; diff --git a/src/client/views/animationtimeline/TimelineOverview.tsx b/src/client/views/animationtimeline/TimelineOverview.tsx index 5d6378068..6358982c4 100644 --- a/src/client/views/animationtimeline/TimelineOverview.tsx +++ b/src/client/views/animationtimeline/TimelineOverview.tsx @@ -55,7 +55,7 @@ export class TimelineOverview extends React.Component{ @action setOverviewWidth() { - let width = $("#timelineOverview").width(); + const width = $("#timelineOverview").width(); // console.log($("timelineOverview")) if (width) this.overviewBarWidth = width; // else this.overviewBarWidth = 0; @@ -77,7 +77,7 @@ export class TimelineOverview extends React.Component{ onPanX = (e: PointerEvent) => { e.stopPropagation(); e.preventDefault(); - let movX = (this.props.visibleStart / this.props.totalLength) * (this.DEFAULT_WIDTH) + e.movementX; + const movX = (this.props.visibleStart / this.props.totalLength) * (this.DEFAULT_WIDTH) + e.movementX; // let movX = (this.props.visibleStart / this.props.totalLength) * (this.overviewWidth) + e.movementX; this.props.movePanX((movX / (this.DEFAULT_WIDTH)) * this.props.totalLength); // this.props.movePanX((movX / (this.overviewWidth) * this.props.totalLength); @@ -95,22 +95,22 @@ export class TimelineOverview extends React.Component{ onScrubberDown = (e: React.PointerEvent) => { e.preventDefault(); e.stopPropagation(); - if (!this.props.isAuthoring) { + // if (!this.props.isAuthoring) { document.removeEventListener("pointermove", this.onScrubberMove); document.removeEventListener("pointerup", this.onScrubberUp); document.addEventListener("pointermove", this.onScrubberMove); document.addEventListener("pointerup", this.onScrubberUp); - } + // } } @action onScrubberMove = (e: PointerEvent) => { e.preventDefault(); e.stopPropagation(); - let scrubberRef = this._scrubberRef.current!; - let left = scrubberRef.getBoundingClientRect().left; + const scrubberRef = this._scrubberRef.current!; + const left = scrubberRef.getBoundingClientRect().left; // left = e.screenX; - let offsetX = Math.round(e.clientX - left); + const offsetX = Math.round(e.clientX - left); this.props.changeCurrentBarX((offsetX / (this.DEFAULT_WIDTH) * this.props.totalLength) + this.props.currentBarX); // this.props.changeCurrentBarX(e.screenX) } @@ -125,9 +125,9 @@ export class TimelineOverview extends React.Component{ @action getTimes() { - let vis = KeyframeFunc.convertPixelTime(this.props.visibleLength, "mili", "time", this.props.tickSpacing, this.props.tickIncrement); - let x = KeyframeFunc.convertPixelTime(this.props.currentBarX, "mili", "time", this.props.tickSpacing, this.props.tickIncrement); - let start = KeyframeFunc.convertPixelTime(this.props.visibleStart, "mili", "time", this.props.tickSpacing, this.props.tickIncrement); + const vis = KeyframeFunc.convertPixelTime(this.props.visibleLength, "mili", "time", this.props.tickSpacing, this.props.tickIncrement); + const x = KeyframeFunc.convertPixelTime(this.props.currentBarX, "mili", "time", this.props.tickSpacing, this.props.tickIncrement); + const start = KeyframeFunc.convertPixelTime(this.props.visibleStart, "mili", "time", this.props.tickSpacing, this.props.tickIncrement); this.visibleTime = vis; this.currentX = x; this.visibleStart = start; @@ -137,19 +137,20 @@ export class TimelineOverview extends React.Component{ } render() { + console.log("RERENDERED!"); this.setOverviewWidth(); this.getTimes(); - let percentVisible = this.visibleTime / this.props.time; - let visibleBarWidth = percentVisible * this.overviewBarWidth; + const percentVisible = this.visibleTime / this.props.time; + const visibleBarWidth = percentVisible * this.overviewBarWidth; - let percentScrubberStart = this.currentX / this.props.time; - let scrubberStart = percentScrubberStart * this.overviewBarWidth; + const percentScrubberStart = this.currentX / this.props.time; + const scrubberStart = percentScrubberStart * this.overviewBarWidth; - let percentBarStart = this.visibleStart / this.props.time; - let barStart = percentBarStart * this.overviewBarWidth; + const percentBarStart = this.visibleStart / this.props.time; + const barStart = percentBarStart * this.overviewBarWidth; - let timeline = this.props.isAuthoring ? [ + const timeline = this.props.isAuthoring ? [
, diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index c61dcd21f..56b3b3bc0 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -966,7 +966,6 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { onContextMenu = (e: React.MouseEvent) => { const layoutItems: ContextMenuProps[] = []; - layoutItems.push({ description: "reset view", event: () => { this.props.Document._panX = this.props.Document._panY = 0; this.props.Document.scale = 1; }, icon: "compress-arrows-alt" }); layoutItems.push({ description: `${this.Document._LODdisable ? "Enable LOD" : "Disable LOD"}`, event: () => this.Document._LODdisable = !this.Document._LODdisable, icon: "table" }); layoutItems.push({ description: `${this.fitToContent ? "Unset" : "Set"} Fit To Container`, event: () => this.Document._fitToBox = !this.fitToContent, icon: !this.fitToContent ? "expand-arrows-alt" : "compress-arrows-alt" }); @@ -1019,6 +1018,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { icon: "eye" }); ContextMenu.Instance.addItem({ description: "Freeform Options ...", subitems: layoutItems, icon: "eye" }); + this._timelineRef.current!.timelineContextMenu(e); } @@ -1070,21 +1070,24 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { // if isAnnotationOverlay is set, then children will be stored in the extension document for the fieldKey. // otherwise, they are stored in fieldKey. All annotations to this document are stored in the extension document // let lodarea = this.Document[WidthSym]() * this.Document[HeightSym]() / this.props.ScreenToLocalTransform().Scale / this.props.ScreenToLocalTransform().Scale; - return
- {!this.Document._LODdisable && !this.props.active() && !this.props.isAnnotationOverlay && !this.props.annotationsKey && this.props.renderDepth > 0 ? // && this.props.CollectionView && lodarea < NumCast(this.Document.LODarea, 100000) ? - this.placeholder : this.marqueeView} + return
+
+ {/* */} + {!this.Document._LODdisable && !this.props.active() && !this.props.isAnnotationOverlay && !this.props.annotationsKey && this.props.renderDepth > 0 ? // && this.props.CollectionView && lodarea < NumCast(this.Document.LODarea, 100000) ? + this.placeholder : this.marqueeView} + +
-
; } } -- cgit v1.2.3-70-g09d2 From eea67eb24b944f13e307915d386f7745078e7d23 Mon Sep 17 00:00:00 2001 From: andrewdkim Date: Sun, 9 Feb 2020 15:06:45 -0500 Subject: const to let --- src/client/views/animationtimeline/Keyframe.tsx | 74 +++++++++++----------- src/client/views/animationtimeline/Timeline.tsx | 56 ++++++++-------- .../collectionFreeForm/CollectionFreeFormView.tsx | 4 +- 3 files changed, 67 insertions(+), 67 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/animationtimeline/Keyframe.tsx b/src/client/views/animationtimeline/Keyframe.tsx index fd4a3f281..bb557289e 100644 --- a/src/client/views/animationtimeline/Keyframe.tsx +++ b/src/client/views/animationtimeline/Keyframe.tsx @@ -36,7 +36,7 @@ export namespace KeyframeFunc { let leftMost: (RegionData | undefined) = undefined; let rightMost: (RegionData | undefined) = undefined; DocListCast(regions).forEach(region => { - let neighbor = RegionData(region); + const neighbor = RegionData(region); if (currentRegion.position! > neighbor.position) { if (!leftMost || neighbor.position > leftMost.position) { leftMost = neighbor; @@ -57,7 +57,7 @@ export namespace KeyframeFunc { export const calcMinLeft = async (region: Doc, currentBarX: number, ref?: Doc) => { //returns the time of the closet keyframe to the left let leftKf: (Doc | undefined) = undefined; let time: number = 0; - let keyframes = await DocListCastAsync(region.keyframes!); + const keyframes = await DocListCastAsync(region.keyframes!); keyframes!.forEach((kf) => { let compTime = currentBarX; if (ref) compTime = NumCast(ref.time); @@ -73,7 +73,7 @@ export namespace KeyframeFunc { export const calcMinRight = async (region: Doc, currentBarX: number, ref?: Doc) => { //returns the time of the closest keyframe to the right let rightKf: (Doc | undefined) = undefined; let time: number = Infinity; - let keyframes = await DocListCastAsync(region.keyframes!); + const keyframes = await DocListCastAsync(region.keyframes!); keyframes!.forEach((kf) => { let compTime = currentBarX; if (ref) compTime = NumCast(ref.time); @@ -86,7 +86,7 @@ export namespace KeyframeFunc { }; export const defaultKeyframe = () => { - let regiondata = new Doc(); //creating regiondata in MILI + const regiondata = new Doc(); //creating regiondata in MILI regiondata.duration = 4000; regiondata.position = 0; regiondata.fadeIn = 1000; @@ -98,7 +98,7 @@ export namespace KeyframeFunc { export const convertPixelTime = (pos: number, unit: "mili" | "sec" | "min" | "hr", dir: "pixel" | "time", tickSpacing: number, tickIncrement: number) => { - let time = dir === "pixel" ? (pos * tickSpacing) / tickIncrement : (pos / tickSpacing) * tickIncrement; + const time = dir === "pixel" ? (pos * tickSpacing) / tickIncrement : (pos / tickSpacing) * tickIncrement; switch (unit) { case "mili": return time; @@ -180,10 +180,10 @@ export class Keyframe extends React.Component { componentDidMount() { setTimeout(() => { //giving it a temporary 1sec delay... if (!this.regiondata.keyframes) this.regiondata.keyframes = new List(); - let start = this.props.makeKeyData(this.regiondata, this.regiondata.position, KeyframeFunc.KeyframeType.end); - let fadeIn = this.props.makeKeyData(this.regiondata, this.regiondata.position + this.regiondata.fadeIn, KeyframeFunc.KeyframeType.fade); - let fadeOut = this.props.makeKeyData(this.regiondata, this.regiondata.position + this.regiondata.duration - this.regiondata.fadeOut, KeyframeFunc.KeyframeType.fade); - let finish = this.props.makeKeyData(this.regiondata, this.regiondata.position + this.regiondata.duration,KeyframeFunc.KeyframeType.end); + const start = this.props.makeKeyData(this.regiondata, this.regiondata.position, KeyframeFunc.KeyframeType.end); + const fadeIn = this.props.makeKeyData(this.regiondata, this.regiondata.position + this.regiondata.fadeIn, KeyframeFunc.KeyframeType.fade); + const fadeOut = this.props.makeKeyData(this.regiondata, this.regiondata.position + this.regiondata.duration - this.regiondata.fadeOut, KeyframeFunc.KeyframeType.fade); + const finish = this.props.makeKeyData(this.regiondata, this.regiondata.position + this.regiondata.duration,KeyframeFunc.KeyframeType.end); (fadeIn.key as Doc).opacity = 1; (fadeOut.key as Doc).opacity = 1; (start.key as Doc).opacity = 0.1; @@ -199,7 +199,7 @@ export class Keyframe extends React.Component { onBarPointerDown = (e: React.PointerEvent) => { e.preventDefault(); e.stopPropagation(); - let clientX = e.clientX; + const clientX = e.clientX; if (this._doubleClickEnabled) { this.createKeyframe(clientX); this._doubleClickEnabled = false; @@ -224,10 +224,10 @@ export class Keyframe extends React.Component { if (e.movementX !== 0) { this._mouseToggled = true; } - let left = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.left, this.regiondata, this.regions)!; - let right = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.right, this.regiondata, this.regions!); - let prevX = this.regiondata.position; - let futureX = this.regiondata.position + KeyframeFunc.convertPixelTime(e.movementX, "mili", "time", this.props.tickSpacing, this.props.tickIncrement); + const left = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.left, this.regiondata, this.regions)!; + const right = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.right, this.regiondata, this.regions!); + const prevX = this.regiondata.position; + const futureX = this.regiondata.position + KeyframeFunc.convertPixelTime(e.movementX, "mili", "time", this.props.tickSpacing, this.props.tickIncrement); if (futureX <= 0) { this.regiondata.position = 0; } else if ((left && left.position + left.duration >= futureX)) { @@ -237,7 +237,7 @@ export class Keyframe extends React.Component { } else { this.regiondata.position = futureX; } - let movement = this.regiondata.position - prevX; + const movement = this.regiondata.position - prevX; this.keyframes.forEach(kf => { kf.time = NumCast(kf.time) + movement; }); @@ -267,9 +267,9 @@ export class Keyframe extends React.Component { onDragResizeLeft = (e: PointerEvent) => { e.preventDefault(); e.stopPropagation(); - let bar = this._bar.current!; - let offset = KeyframeFunc.convertPixelTime(Math.round((e.clientX - bar.getBoundingClientRect().left) * this.props.transform.Scale), "mili", "time", this.props.tickSpacing, this.props.tickIncrement); - let leftRegion = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.left, this.regiondata, this.regions); + const bar = this._bar.current!; + const offset = KeyframeFunc.convertPixelTime(Math.round((e.clientX - bar.getBoundingClientRect().left) * this.props.transform.Scale), "mili", "time", this.props.tickSpacing, this.props.tickIncrement); + const leftRegion = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.left, this.regiondata, this.regions); if (leftRegion && this.regiondata.position + offset <= leftRegion.position + leftRegion.duration) { this.regiondata.position = leftRegion.position + leftRegion.duration; this.regiondata.duration = NumCast(this.keyframes[this.keyframes.length - 1].time) - (leftRegion.position + leftRegion.duration); @@ -292,10 +292,10 @@ export class Keyframe extends React.Component { onDragResizeRight = (e: PointerEvent) => { e.preventDefault(); e.stopPropagation(); - let bar = this._bar.current!; - let offset = KeyframeFunc.convertPixelTime(Math.round((e.clientX - bar.getBoundingClientRect().right) * this.props.transform.Scale), "mili", "time", this.props.tickSpacing, this.props.tickIncrement); - let rightRegion = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.right, this.regiondata, this.regions); - let fadeOutKeyframeTime = NumCast(this.keyframes[this.keyframes.length - 3].time); + const bar = this._bar.current!; + const offset = KeyframeFunc.convertPixelTime(Math.round((e.clientX - bar.getBoundingClientRect().right) * this.props.transform.Scale), "mili", "time", this.props.tickSpacing, this.props.tickIncrement); + const rightRegion = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.right, this.regiondata, this.regions); + const fadeOutKeyframeTime = NumCast(this.keyframes[this.keyframes.length - 3].time); if (this.regiondata.position + this.regiondata.duration - this.regiondata.fadeOut + offset <= fadeOutKeyframeTime) { //case 1: when third to last keyframe is in the way this.regiondata.duration = fadeOutKeyframeTime - this.regiondata.position + this.regiondata.fadeOut; } else if (rightRegion && (this.regiondata.position + this.regiondata.duration + offset >= rightRegion.position)) { @@ -311,10 +311,10 @@ export class Keyframe extends React.Component { @action createKeyframe = async (clientX: number) => { this._mouseToggled = true; - let bar = this._bar.current!; - let offset = KeyframeFunc.convertPixelTime(Math.round((clientX - bar.getBoundingClientRect().left) * this.props.transform.Scale), "mili", "time", this.props.tickSpacing, this.props.tickIncrement); + const bar = this._bar.current!; + const offset = KeyframeFunc.convertPixelTime(Math.round((clientX - bar.getBoundingClientRect().left) * this.props.transform.Scale), "mili", "time", this.props.tickSpacing, this.props.tickIncrement); if (offset > this.regiondata.fadeIn && offset < this.regiondata.duration - this.regiondata.fadeOut) { //make sure keyframe is not created inbetween fades and ends - let position = this.regiondata.position; + const position = this.regiondata.position; this.props.makeKeyData(this.regiondata, Math.round(position + offset), KeyframeFunc.KeyframeType.default); this.regiondata.hasData = true; this.props.changeCurrentBarX(KeyframeFunc.convertPixelTime(Math.round(position + offset), "mili", "pixel", this.props.tickSpacing, this.props.tickIncrement)); //first move the keyframe to the correct location and make a copy so the correct file gets coppied @@ -337,7 +337,7 @@ export class Keyframe extends React.Component { makeKeyframeMenu = (kf: Doc, e: MouseEvent) => { TimelineMenu.Instance.addItem("button", "Show Data", () => { runInAction(() => { - let kvp = Docs.Create.KVPDocument(Cast(kf.key, Doc) as Doc, { _width: 300, _height: 300 }); + const kvp = Docs.Create.KVPDocument(Cast(kf.key, Doc) as Doc, { _width: 300, _height: 300 }); CollectionDockingView.AddRightSplit(kvp, (kf.key as Doc).data as Doc); }); }), @@ -350,7 +350,7 @@ export class Keyframe extends React.Component { TimelineMenu.Instance.addItem("input", "Move", (val) => { runInAction(() => { let cannotMove: boolean = false; - let kfIndex: number = this.keyframes.indexOf(kf); + const kfIndex: number = this.keyframes.indexOf(kf); if (val < 0 || (val < NumCast(this.keyframes[kfIndex - 1].time) || val > NumCast(this.keyframes[kfIndex + 1].time))) { cannotMove = true; } @@ -401,7 +401,7 @@ export class Keyframe extends React.Component { }), TimelineMenu.Instance.addItem("input", `position: ${this.regiondata.position}ms`, (val) => { runInAction(() => { - let prevPosition = this.regiondata.position; + const prevPosition = this.regiondata.position; let cannotMove: boolean = false; DocListCast(this.regions).forEach(region => { if (NumCast(region.position) !== this.regiondata.position) { @@ -454,7 +454,7 @@ export class Keyframe extends React.Component { onContainerOver = (e: React.PointerEvent, ref: React.RefObject) => { e.preventDefault(); e.stopPropagation(); - let div = ref.current!; + const div = ref.current!; div.style.opacity = "1"; Doc.BrushDoc(this.props.node); } @@ -466,7 +466,7 @@ export class Keyframe extends React.Component { onContainerOut = (e: React.PointerEvent, ref: React.RefObject) => { e.preventDefault(); e.stopPropagation(); - let div = ref.current!; + const div = ref.current!; div.style.opacity = "0"; Doc.UnBrushDoc(this.props.node); } @@ -481,7 +481,7 @@ export class Keyframe extends React.Component { */ @action drawKeyframes = () => { - let keyframeDivs: JSX.Element[] = []; + const keyframeDivs: JSX.Element[] = []; DocListCast(this.regiondata.keyframes).forEach(kf => { if (kf.type as KeyframeFunc.KeyframeType !== KeyframeFunc.KeyframeType.end) { keyframeDivs.push( @@ -514,14 +514,14 @@ export class Keyframe extends React.Component { */ @action drawKeyframeDividers = () => { - let keyframeDividers: JSX.Element[] = []; + const keyframeDividers: JSX.Element[] = []; DocListCast(this.regiondata.keyframes).forEach(kf => { - let index = this.keyframes.indexOf(kf); + const index = this.keyframes.indexOf(kf); if (index !== this.keyframes.length - 1) { - let right = this.keyframes[index + 1]; - let bodyRef = React.createRef(); - let kfPos = KeyframeFunc.convertPixelTime(NumCast(kf.time), "mili", "pixel", this.props.tickSpacing, this.props.tickIncrement); - let rightPos = KeyframeFunc.convertPixelTime(NumCast(right.time), "mili", "pixel", this.props.tickSpacing, this.props.tickIncrement); + const right = this.keyframes[index + 1]; + const bodyRef = React.createRef(); + const kfPos = KeyframeFunc.convertPixelTime(NumCast(kf.time), "mili", "pixel", this.props.tickSpacing, this.props.tickIncrement); + const rightPos = KeyframeFunc.convertPixelTime(NumCast(right.time), "mili", "pixel", this.props.tickSpacing, this.props.tickIncrement); keyframeDividers.push(
{ e.preventDefault(); e.stopPropagation(); this.onContainerOver(e, bodyRef); }} diff --git a/src/client/views/animationtimeline/Timeline.tsx b/src/client/views/animationtimeline/Timeline.tsx index 2ac7e6c92..dc381609e 100644 --- a/src/client/views/animationtimeline/Timeline.tsx +++ b/src/client/views/animationtimeline/Timeline.tsx @@ -86,7 +86,7 @@ export class Timeline extends React.Component { */ @computed private get children(): List { - let extendedDocument = ["image", "video", "pdf"].includes(StrCast(this.props.Document.type)); + const extendedDocument = ["image", "video", "pdf"].includes(StrCast(this.props.Document.type)); if (extendedDocument) { if (this.props.Document.data_ext) { return Cast((Cast(this.props.Document.data_ext, Doc) as Doc).annotations, listSpec(Doc)) as List; @@ -99,7 +99,7 @@ export class Timeline extends React.Component { /////////lifecycle functions//////////// componentWillMount() { - let relativeHeight = window.innerHeight / 20; //sets height to arbitrary size, relative to innerHeight + const relativeHeight = window.innerHeight / 20; //sets height to arbitrary size, relative to innerHeight this._titleHeight = relativeHeight < this.MAX_TITLE_HEIGHT ? relativeHeight : this.MAX_TITLE_HEIGHT; //check if relHeight is less than Maxheight. Else, just set relheight to max this.MIN_CONTAINER_HEIGHT = this._titleHeight + 130; //offset this.DEFAULT_CONTAINER_HEIGHT = this._titleHeight * 2 + 130; //twice the titleheight + offset @@ -133,7 +133,7 @@ export class Timeline extends React.Component { */ @action drawTicks = () => { - let ticks = []; + const ticks = []; for (let i = 0; i < this._time / this._tickIncrement; i++) { ticks.push(

{this.toReadTime(i * this._tickIncrement)}

); } @@ -226,9 +226,9 @@ export class Timeline extends React.Component { onScrubberMove = (e: PointerEvent) => { e.preventDefault(); e.stopPropagation(); - let scrubberbox = this._infoContainer.current!; - let left = scrubberbox.getBoundingClientRect().left; - let offsetX = Math.round(e.clientX - left) * this.props.ScreenToLocalTransform().Scale; + const scrubberbox = this._infoContainer.current!; + const left = scrubberbox.getBoundingClientRect().left; + const offsetX = Math.round(e.clientX - left) * this.props.ScreenToLocalTransform().Scale; this.changeCurrentBarX(offsetX + this._visibleStart); //changes scrubber to clicked scrubber position } @@ -239,7 +239,7 @@ export class Timeline extends React.Component { onPanDown = (e: React.PointerEvent) => { e.preventDefault(); e.stopPropagation(); - let clientX = e.clientX; + const clientX = e.clientX; if (this._doubleClickEnabled) { this._doubleClickEnabled = false; } else { @@ -270,8 +270,8 @@ export class Timeline extends React.Component { if (e.movementX !== 0 || e.movementY !== 0) { this._mouseToggled = true; } - let trackbox = this._trackbox.current!; - let titleContainer = this._titleContainer.current!; + const trackbox = this._trackbox.current!; + const titleContainer = this._titleContainer.current!; this.movePanX(this._visibleStart - e.movementX); trackbox.scrollTop = trackbox.scrollTop - e.movementY; titleContainer.scrollTop = titleContainer.scrollTop - e.movementY; @@ -287,7 +287,7 @@ export class Timeline extends React.Component { @action movePanX = (pixel: number) => { - let infoContainer = this._infoContainer.current!; + const infoContainer = this._infoContainer.current!; infoContainer.scrollLeft = pixel; this._visibleStart = infoContainer.scrollLeft; } @@ -309,7 +309,7 @@ export class Timeline extends React.Component { onResizeMove = (e: PointerEvent) => { e.preventDefault(); e.stopPropagation(); - let offset = e.clientY - this._timelineContainer.current!.getBoundingClientRect().bottom; + const offset = e.clientY - this._timelineContainer.current!.getBoundingClientRect().bottom; // let offset = 0; if (this._containerHeight + offset <= this.MIN_CONTAINER_HEIGHT) { this._containerHeight = this.MIN_CONTAINER_HEIGHT; @@ -326,10 +326,10 @@ export class Timeline extends React.Component { @action toReadTime = (time: number): string => { time = time / 1000; - var inSeconds = Math.round((time * 100)) / 100; + const inSeconds = Math.round((time * 100)) / 100; // var inSeconds = parseFloat(time.toFixed(2)); // const inSeconds = (Math.floor(time) / 1000); - let min: (string | number) = Math.floor(inSeconds / 60); + const min: (string | number) = Math.floor(inSeconds / 60); let sec: (string | number) = inSeconds % 60; if (Math.floor(sec / 10) === 0) { @@ -360,12 +360,12 @@ export class Timeline extends React.Component { onWheelZoom = (e: React.WheelEvent) => { e.preventDefault(); e.stopPropagation(); - let offset = e.clientX - this._infoContainer.current!.getBoundingClientRect().left; - let prevTime = KeyframeFunc.convertPixelTime(this._visibleStart + offset, "mili", "time", this._tickSpacing, this._tickIncrement); - let prevCurrent = KeyframeFunc.convertPixelTime(this._currentBarX, "mili", "time", this._tickSpacing, this._tickIncrement); + const offset = e.clientX - this._infoContainer.current!.getBoundingClientRect().left; + const prevTime = KeyframeFunc.convertPixelTime(this._visibleStart + offset, "mili", "time", this._tickSpacing, this._tickIncrement); + const prevCurrent = KeyframeFunc.convertPixelTime(this._currentBarX, "mili", "time", this._tickSpacing, this._tickIncrement); e.deltaY < 0 ? this.zoom(true) : this.zoom(false); - let currPixel = KeyframeFunc.convertPixelTime(prevTime, "mili", "pixel", this._tickSpacing, this._tickIncrement); - let currCurrent = KeyframeFunc.convertPixelTime(prevCurrent, "mili", "pixel", this._tickSpacing, this._tickIncrement); + const currPixel = KeyframeFunc.convertPixelTime(prevTime, "mili", "pixel", this._tickSpacing, this._tickIncrement); + const currCurrent = KeyframeFunc.convertPixelTime(prevCurrent, "mili", "pixel", this._tickSpacing, this._tickIncrement); this._infoContainer.current!.scrollLeft = currPixel - offset; this._visibleStart = currPixel - offset > 0 ? currPixel - offset : 0; this._visibleStart += this._visibleLength + this._visibleStart > this._totalLength ? this._totalLength - (this._visibleStart + this._visibleLength) : 0; @@ -396,7 +396,7 @@ export class Timeline extends React.Component { spacingChange -= 5; } } - let finalLength = spacingChange * (this._time / incrementChange); + const finalLength = spacingChange * (this._time / incrementChange); if (finalLength >= this._infoContainer.current!.getBoundingClientRect().width) { this._totalLength = finalLength; this._tickSpacing = spacingChange; @@ -408,19 +408,19 @@ export class Timeline extends React.Component { * tool box includes the toggle buttons at the top of the timeline (both editing mode and play mode) */ private timelineToolBox = (scale: number) => { - let size = 40 * scale; //50 is default - let iconSize = 25; + const size = 40 * scale; //50 is default + const iconSize = 25; //decides if information should be omitted because the timeline is very small // if its less than 950 pixels then it's going to be overlapping let shouldCompress = false; - let width: number = this.props.PanelWidth(); + const width: number = this.props.PanelWidth(); if (width < 850) { shouldCompress = true; } let modeString, overviewString, lengthString; - let modeType = this.props.Document.isATOn ? "Author" : "Play"; + const modeType = this.props.Document.isATOn ? "Author" : "Play"; if (!shouldCompress) { modeString = "Mode: " + modeType; @@ -489,9 +489,9 @@ export class Timeline extends React.Component { * turns on the toggle button (the purple slide button that changes from editing mode and play mode */ private toggleHandle = () => { - let roundToggle = this._roundToggleRef.current!; - let roundToggleContainer = this._roundToggleContainerRef.current!; - let timelineContainer = this._timelineContainer.current!; + const roundToggle = this._roundToggleRef.current!; + const roundToggleContainer = this._roundToggleContainerRef.current!; + const timelineContainer = this._timelineContainer.current!; if (BoolCast(this.props.Document.isATOn)) { roundToggle.style.transform = "translate(0px, 0px)"; roundToggle.style.animationName = "turnoff"; @@ -522,9 +522,9 @@ export class Timeline extends React.Component { // @computed getCurrentTime = () => { - let current = KeyframeFunc.convertPixelTime(this._currentBarX, "mili", "time", this._tickSpacing, this._tickIncrement); + const current = KeyframeFunc.convertPixelTime(this._currentBarX, "mili", "time", this._tickSpacing, this._tickIncrement); // console.log(this._currentBarX) - return this.toReadTime(current); `` + return this.toReadTime(current); // return (Math.floor(current) / 1000) // return current / 1000.0; } diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index 56b3b3bc0..ef1ec5e78 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -809,7 +809,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { doFreeformLayout(poolData: Map) { const layoutDocs = this.childLayoutPairs.map(pair => pair.layout); const initResult = this.Document.arrangeInit && this.Document.arrangeInit.script.run({ docs: layoutDocs, collection: this.Document }, console.log); - let state = initResult && initResult.success ? initResult.result.scriptState : undefined; + const state = initResult && initResult.success ? initResult.result.scriptState : undefined; const elements = initResult && initResult.success ? this.viewDefsToJSX(initResult.result.views) : []; this.childLayoutPairs.filter(pair => this.isCurrent(pair.layout)).map((pair, i) => { @@ -1001,7 +1001,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { } }); //@ts-ignore - let subitems: ContextMenuProps[] = + const subitems: ContextMenuProps[] = DocListCast((CurrentUserUtils.UserDocument.noteTypes as Doc).data).map((note, i) => ({ description: (i + 1) + ": " + StrCast(note.title), event: () => console.log("Hi"), -- cgit v1.2.3-70-g09d2 From d3f9765c98595788eaeb8b5c0ef52af1cd3adab3 Mon Sep 17 00:00:00 2001 From: monikahedman Date: Sun, 9 Feb 2020 17:01:37 -0500 Subject: reset view done --- src/client/views/animationtimeline/Keyframe.scss | 4 ---- src/client/views/animationtimeline/Timeline.scss | 27 +++++++++++++++++----- src/client/views/animationtimeline/Timeline.tsx | 11 +++++---- .../collectionFreeForm/CollectionFreeFormView.tsx | 25 ++++++++++++++++---- src/new_fields/Doc.ts | 19 +++++++++++++++ 5 files changed, 68 insertions(+), 18 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/animationtimeline/Keyframe.scss b/src/client/views/animationtimeline/Keyframe.scss index 8dcf71994..84c8de287 100644 --- a/src/client/views/animationtimeline/Keyframe.scss +++ b/src/client/views/animationtimeline/Keyframe.scss @@ -46,10 +46,6 @@ $timelineDark: #77a1aa; position: absolute; } - // .keyframe:hover~.keyframe-information { - // display: flex; - // } - .keyframe-information { display: none; position: relative; diff --git a/src/client/views/animationtimeline/Timeline.scss b/src/client/views/animationtimeline/Timeline.scss index a99d017f4..f90249771 100644 --- a/src/client/views/animationtimeline/Timeline.scss +++ b/src/client/views/animationtimeline/Timeline.scss @@ -34,29 +34,44 @@ $timelineDark: #77a1aa; } .grid-box { - display: grid; - grid-template-columns: [first] 50% [line2] 25% [line3] 25%; + display: flex; + // grid-template-columns: [first] 20% [line2] 20% [line3] 60%; width: calc(100% - 150px); // width: 100%; margin-left: 10px; .time-box { - margin-left: 5px; + margin-left: 10px; min-width: 140px; display: flex; justify-content: center; align-items: center; - // grid-column-start: line2; + + .resetView-tool { + width: 30px; + height: 30px; + display: flex; + justify-content: center; + align-items: center; + margin: 3px; + color: $timelineDark; + } + + .resetView-tool:hover { + -webkit-transform: scale(1.1); + -ms-transform: scale(1.1); + transform: scale(1.1); + transition: .2s ease; + } } .mode-box { display: flex; margin-left: 5px; - // grid-column-start: line3; } .overview-box { - width: 100%; + width: 80%; display: flex; } diff --git a/src/client/views/animationtimeline/Timeline.tsx b/src/client/views/animationtimeline/Timeline.tsx index 3942499c9..256b98ffa 100644 --- a/src/client/views/animationtimeline/Timeline.tsx +++ b/src/client/views/animationtimeline/Timeline.tsx @@ -459,6 +459,9 @@ export class Timeline extends React.Component {
{this.timeIndicator(lengthString)} +
Doc.resetView(this.props.Document)}>
+
Doc.setView(this.props.Document)}>
+
@@ -477,8 +480,8 @@ export class Timeline extends React.Component { else { return (
-
{`Current: ${this.getCurrentTime()}`}
-
{`Total: 1:40.07`}
+
{`Current: ${this.getCurrentTime()}`}
+
{`Total: 1:40.07`}
); } @@ -539,7 +542,7 @@ export class Timeline extends React.Component { @action.bound - changeLenths() { + changeLengths() { if (this._infoContainer.current) { this._visibleLength = this._infoContainer.current!.getBoundingClientRect().width; //the visible length of the timeline (the length that you current see) this._visibleStart = this._infoContainer.current!.scrollLeft; //where the div starts @@ -572,7 +575,7 @@ export class Timeline extends React.Component { render() { runInAction(() => { this._panelWidth = this.props.PanelWidth(); - this.changeLenths(); + this.changeLengths(); }); // change visible and total width diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index ef1ec5e78..81fca3b54 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -966,7 +966,24 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { onContextMenu = (e: React.MouseEvent) => { const layoutItems: ContextMenuProps[] = []; - layoutItems.push({ description: "reset view", event: () => { this.props.Document._panX = this.props.Document._panY = 0; this.props.Document.scale = 1; }, icon: "compress-arrows-alt" }); + const { Document } = this.props; + + layoutItems.push({ + description: "reset view", event: () => { + Doc.resetView(Document); + }, icon: "compress-arrows-alt" + }); + layoutItems.push({ + description: "set view origin", event: () => { + Doc.setView(Document); + }, icon: "expand-arrows-alt" + }); + layoutItems.push({ + description: "reset view to origin", event: () => { + Doc.resetViewToOrigin(Document); + }, icon: "expand-arrows-alt" + }); + layoutItems.push({ description: `${this.Document._LODdisable ? "Enable LOD" : "Disable LOD"}`, event: () => this.Document._LODdisable = !this.Document._LODdisable, icon: "table" }); layoutItems.push({ description: `${this.fitToContent ? "Unset" : "Set"} Fit To Container`, event: () => this.Document._fitToBox = !this.fitToContent, icon: !this.fitToContent ? "expand-arrows-alt" : "compress-arrows-alt" }); layoutItems.push({ description: `${this.Document.useClusters ? "Uncluster" : "Use Clusters"}`, event: () => this.updateClusters(!this.Document.useClusters), icon: "braille" }); @@ -1018,7 +1035,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { icon: "eye" }); ContextMenu.Instance.addItem({ description: "Freeform Options ...", subitems: layoutItems, icon: "eye" }); - this._timelineRef.current!.timelineContextMenu(e); + this._timelineRef.current!.timelineContextMenu(e); } @@ -1081,12 +1098,12 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) { transformOrigin: this.contentScaling ? "left top" : "", width: this.contentScaling ? `${100 / this.contentScaling}%` : "", height: this.contentScaling ? `${100 / this.contentScaling}%` : this.isAnnotationOverlay ? (this.props.Document.scrollHeight ? this.Document.scrollHeight : "100%") : this.props.PanelHeight() - }}> + }}> {/* */} {!this.Document._LODdisable && !this.props.active() && !this.props.isAnnotationOverlay && !this.props.annotationsKey && this.props.renderDepth > 0 ? // && this.props.CollectionView && lodarea < NumCast(this.Document.LODarea, 100000) ? this.placeholder : this.marqueeView} -
+
; } diff --git a/src/new_fields/Doc.ts b/src/new_fields/Doc.ts index f230abaf4..216005697 100644 --- a/src/new_fields/Doc.ts +++ b/src/new_fields/Doc.ts @@ -255,6 +255,25 @@ export namespace Doc { // return Cast(field, ctor); // }); // } + + export function resetView(doc: Doc) { + doc._panX = doc._customOriginX ?? 0; + doc._panY = doc._customOriginY ?? 0; + doc.scale = doc._customOriginScale ?? 1; + } + + export function resetViewToOrigin(doc: Doc) { + doc._panX = 0; + doc._panY = 0; + doc.scale = 1; + } + + export function setView(doc: Doc) { + doc._customOriginX = doc._panX; + doc._customOriginY = doc._panY; + doc._customOriginScale = doc.scale; + } + export function RunCachedUpdate(doc: Doc, field: string) { const update = doc[CachedUpdates][field]; if (update) { -- cgit v1.2.3-70-g09d2 From 587a97e9f5fc49952d7520829d719614477e2717 Mon Sep 17 00:00:00 2001 From: Stanley Yip Date: Sun, 19 Apr 2020 01:50:59 -0700 Subject: generate snap lines --- src/client/util/DragManager.ts | 6 ++ .../collectionFreeForm/CollectionFreeFormView.tsx | 70 +++++++++++++++++++++- 2 files changed, 75 insertions(+), 1 deletion(-) (limited to 'src/client/views/collections') diff --git a/src/client/util/DragManager.ts b/src/client/util/DragManager.ts index 3e9a5b63a..21306c339 100644 --- a/src/client/util/DragManager.ts +++ b/src/client/util/DragManager.ts @@ -18,6 +18,7 @@ import { AudioBox } from "../views/nodes/AudioBox"; import { DateField } from "../../new_fields/DateField"; import { DocumentView } from "../views/nodes/DocumentView"; import { UndoManager } from "./UndoManager"; +import { PointData } from "../../new_fields/InkField"; export type dropActionType = "place" | "alias" | "copy" | undefined; export function SetupDrag( @@ -73,6 +74,7 @@ export function SetupDrag( export namespace DragManager { let dragDiv: HTMLDivElement; + let snapLines: [PointData, PointData][]; export function Root() { const root = document.getElementById("root"); @@ -281,6 +283,10 @@ export namespace DragManager { StartDrag([ele], {}, downX, downY); } + export function SetSnapLines() { + snapLines = []; + } + function StartDrag(eles: HTMLElement[], dragData: { [id: string]: any }, downX: number, downY: number, options?: DragOptions, finishDrag?: (dropData: DragCompleteEvent) => void) { eles = eles.filter(e => e); if (!dragDiv) { diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index 87cf716e5..36ec4c72e 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -7,7 +7,7 @@ import { computedFn } from "mobx-utils"; import { Doc, HeightSym, Opt, WidthSym, DocListCast } from "../../../../new_fields/Doc"; import { documentSchema, positionSchema } from "../../../../new_fields/documentSchemas"; import { Id } from "../../../../new_fields/FieldSymbols"; -import { InkData, InkField, InkTool } from "../../../../new_fields/InkField"; +import { InkData, InkField, InkTool, PointData } from "../../../../new_fields/InkField"; import { List } from "../../../../new_fields/List"; import { RichTextField } from "../../../../new_fields/RichTextField"; import { createSchema, listSpec, makeInterface } from "../../../../new_fields/Schema"; @@ -1089,6 +1089,73 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument, u ContextMenu.Instance.addItem({ description: "Freeform Options ...", subitems: layoutItems, icon: "eye" }); } + intersectRect(r1: { left: number, top: number, width: number, height: number }, + r2: { left: number, top: number, width: number, height: number }) { + return !(r2.left > r1.left + r1.width || r2.left + r2.width < r1.left || r2.top > r1.top + r1.height || r2.top + r2.height < r1.top); + } + + onPointerOver = (e: React.PointerEvent) => { + if (SelectionManager.GetIsDragging()) { + const size = this.props.ScreenToLocalTransform().transformDirection(this.props.PanelWidth(), this.props.PanelHeight()); + const selRect = { left: this.panX() - size[0] / 2, top: this.panY() - size[1] / 2, width: size[0], height: size[1] }; + console.log(selRect); + const selection: Doc[] = []; + this.getActiveDocuments().filter(doc => !doc.isBackground && doc.z === undefined).map(doc => { + const layoutDoc = Doc.Layout(doc); + const x = NumCast(doc.x); + const y = NumCast(doc.y); + const w = NumCast(layoutDoc._width); + const h = NumCast(layoutDoc._height); + if (this.intersectRect({ left: x, top: y, width: w, height: h }, selRect)) { + selection.push(doc); + } + }); + if (!selection.length) { + this.getActiveDocuments().filter(doc => doc.z === undefined).map(doc => { + const layoutDoc = Doc.Layout(doc); + const x = NumCast(doc.x); + const y = NumCast(doc.y); + const w = NumCast(layoutDoc._width); + const h = NumCast(layoutDoc._height); + if (this.intersectRect({ left: x, top: y, width: w, height: h }, selRect)) { + selection.push(doc); + } + }); + } + if (!selection.length) { + const left = this._downX < this._lastX ? this._downX : this._lastX; + const top = this._downY < this._lastY ? this._downY : this._lastY; + const topLeft = this.getContainerTransform().transformPoint(left, top); + const size = this.getContainerTransform().transformDirection(this._lastX - this._downX, this._lastY - this._downY); + const otherBounds = { left: topLeft[0], top: topLeft[1], width: Math.abs(size[0]), height: Math.abs(size[1]) }; + this.getActiveDocuments().filter(doc => doc.z !== undefined).map(doc => { + const layoutDoc = Doc.Layout(doc); + const x = NumCast(doc.x); + const y = NumCast(doc.y); + const w = NumCast(layoutDoc._width); + const h = NumCast(layoutDoc._height); + if (this.intersectRect({ left: x, top: y, width: w, height: h }, otherBounds)) { + selection.push(doc); + } + }); + } + const lines: [PointData, PointData][] = []; + selection.forEach(doc => { + const x = NumCast(doc.x); + const y = NumCast(doc.y); + const w = doc[WidthSym](); + const h = doc[HeightSym](); + lines.push([{ X: x, Y: y }, { X: x + w, Y: y }]); // top line + lines.push([{ X: x, Y: y }, { X: x, Y: y + h }]); // left line + lines.push([{ X: x + w, Y: y }, { X: x + w, Y: y + h }]); // right line + lines.push([{ X: x, Y: y + h }, { X: x + w, Y: y + h }]); // bottom line + lines.push([{ X: x + w / 2, Y: y }, { X: x + w / 2, Y: y + h }]); // horizontal center line + lines.push([{ X: x, Y: y + h / 2 }, { X: x + w, Y: y + h / 2 }]); // vertical center line + }) + DragManager.SetSnapLines(lines); + } + } + private childViews = () => { const children = typeof this.props.children === "function" ? (this.props.children as any)() as JSX.Element[] : []; return [ @@ -1150,6 +1217,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument, u // otherwise, they are stored in fieldKey. All annotations to this document are stored in the extension document return
Date: Mon, 20 Apr 2020 20:06:53 -0700 Subject: better snapping, scaling is off still --- src/client/util/DragManager.ts | 67 +++++++++++++++++++--- .../collectionFreeForm/CollectionFreeFormView.tsx | 55 ++++++++++++------ 2 files changed, 96 insertions(+), 26 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/util/DragManager.ts b/src/client/util/DragManager.ts index 21306c339..b0cabfaad 100644 --- a/src/client/util/DragManager.ts +++ b/src/client/util/DragManager.ts @@ -74,7 +74,8 @@ export function SetupDrag( export namespace DragManager { let dragDiv: HTMLDivElement; - let snapLines: [PointData, PointData][]; + let horizSnapLines: number[]; + let vertSnapLines: number[]; export function Root() { const root = document.getElementById("root"); @@ -283,8 +284,9 @@ export namespace DragManager { StartDrag([ele], {}, downX, downY); } - export function SetSnapLines() { - snapLines = []; + export function SetSnapLines(horizLines: number[], vertLines: number[]) { + horizSnapLines = horizLines; + vertSnapLines = vertLines; } function StartDrag(eles: HTMLElement[], dragData: { [id: string]: any }, downX: number, downY: number, options?: DragOptions, finishDrag?: (dropData: DragCompleteEvent) => void) { @@ -302,12 +304,22 @@ export namespace DragManager { const ys: number[] = []; const docs = dragData instanceof DocumentDragData ? dragData.draggedDocuments : dragData instanceof PdfAnnoDragData ? [dragData.dragDocument] : []; + const elesCont = { + left: Number.MAX_SAFE_INTEGER, + top: Number.MAX_SAFE_INTEGER, + right: Number.MIN_SAFE_INTEGER, + bottom: Number.MIN_SAFE_INTEGER + }; const dragElements = eles.map(ele => { if (!ele.parentNode) dragDiv.appendChild(ele); const dragElement = ele.parentNode === dragDiv ? ele : ele.cloneNode(true) as HTMLElement; const rect = ele.getBoundingClientRect(); const scaleX = rect.width / ele.offsetWidth, scaleY = rect.height / ele.offsetHeight; + elesCont.left = Math.min(rect.left, elesCont.left); + elesCont.top = Math.min(rect.top, elesCont.top); + elesCont.right = Math.max(rect.right, elesCont.right); + elesCont.bottom = Math.max(rect.bottom, elesCont.bottom); xs.push(rect.left); ys.push(rect.top); scaleXs.push(scaleX); @@ -357,6 +369,12 @@ export namespace DragManager { let lastX = downX; let lastY = downY; + const xFromLeft = downX - elesCont.left; + const yFromTop = downY - elesCont.top; + const xFromRight = elesCont.right - downX; + const yFromBottom = elesCont.bottom - downY; + console.log(elesCont); + console.log(xFromLeft, yFromTop); const moveHandler = (e: PointerEvent) => { e.preventDefault(); // required or dragging text menu link item ends up dragging the link button as native drag/drop if (dragData instanceof DocumentDragData) { @@ -373,10 +391,45 @@ export namespace DragManager { }, dragData.droppedDocuments); } //TODO: Why can't we use e.movementX and e.movementY? - const moveX = e.pageX - lastX; - const moveY = e.pageY - lastY; - lastX = e.pageX; - lastY = e.pageY; + let thisX = e.pageX; + let thisY = e.pageY; + const currLeft = e.pageX - xFromLeft; + const currTop = e.pageY - yFromTop; + const currRight = e.pageX + xFromRight; + const currBottom = e.pageY + yFromBottom; + const closestLeft = vertSnapLines.reduce((prev, curr) => Math.abs(prev - currLeft) > Math.abs(curr - currLeft) ? curr : prev); + const closestTop = horizSnapLines.reduce((prev, curr) => Math.abs(prev - currTop) > Math.abs(curr - currTop) ? curr : prev); + const closestRight = vertSnapLines.reduce((prev, curr) => Math.abs(prev - currRight) > Math.abs(curr - currRight) ? curr : prev); + const closestBottom = horizSnapLines.reduce((prev, curr) => Math.abs(prev - currBottom) > Math.abs(curr - currBottom) ? curr : prev); + const distFromClosestLeft = Math.abs(e.pageX - xFromLeft - closestLeft); + const distFromClosestTop = Math.abs(e.pageY - yFromTop - closestTop); + const distFromClosestRight = Math.abs(e.pageX + xFromRight - closestRight); + const distFromClosestBottom = Math.abs(e.pageY + yFromBottom - closestBottom); + if (distFromClosestLeft < 10 && distFromClosestLeft < distFromClosestRight) { + thisX = closestLeft + xFromLeft; + } + else if (distFromClosestRight < 10) { + thisX = closestRight - xFromRight; + } + if (distFromClosestTop < 10 && distFromClosestTop < distFromClosestRight) { + thisY = closestTop + yFromTop; + } + else if (distFromClosestBottom < 10) { + thisY = closestBottom - yFromBottom; + } + + // const closestHoriz = horizSnapLines.reduce((prev, curr) => Math.abs(prev - thisY) > Math.abs(curr - thisY) ? curr : prev); + // const closestVert = vertSnapLines.reduce((prev, curr) => Math.abs(prev - thisX) > Math.abs(curr - thisX) ? curr : prev); + // if (Math.abs(thisY - closestHoriz) < 10) { + // thisY = closestHoriz; + // } + // if (Math.abs(thisX - closestVert) < 10) { + // thisX = closestVert; + // } + const moveX = thisX - lastX; + const moveY = thisY - lastY; + lastX = thisX; + lastY = thisY; dragElements.map((dragElement, i) => (dragElement.style.transform = `translate(${(xs[i] += moveX) + (options?.offsetX || 0)}px, ${(ys[i] += moveY) + (options?.offsetY || 0)}px) scale(${scaleXs[i]}, ${scaleYs[i]})`) ); diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index 36ec4c72e..c4c37141b 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -1094,6 +1094,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument, u return !(r2.left > r1.left + r1.width || r2.left + r2.width < r1.left || r2.top > r1.top + r1.height || r2.top + r2.height < r1.top); } + @action onPointerOver = (e: React.PointerEvent) => { if (SelectionManager.GetIsDragging()) { const size = this.props.ScreenToLocalTransform().transformDirection(this.props.PanelWidth(), this.props.PanelHeight()); @@ -1123,11 +1124,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument, u }); } if (!selection.length) { - const left = this._downX < this._lastX ? this._downX : this._lastX; - const top = this._downY < this._lastY ? this._downY : this._lastY; - const topLeft = this.getContainerTransform().transformPoint(left, top); - const size = this.getContainerTransform().transformDirection(this._lastX - this._downX, this._lastY - this._downY); - const otherBounds = { left: topLeft[0], top: topLeft[1], width: Math.abs(size[0]), height: Math.abs(size[1]) }; + const otherBounds = { left: this.panX(), top: this.panY(), width: Math.abs(size[0]), height: Math.abs(size[1]) }; this.getActiveDocuments().filter(doc => doc.z !== undefined).map(doc => { const layoutDoc = Doc.Layout(doc); const x = NumCast(doc.x); @@ -1139,23 +1136,38 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument, u } }); } - const lines: [PointData, PointData][] = []; + const horizLines: number[] = []; + const vertLines: number[] = []; selection.forEach(doc => { - const x = NumCast(doc.x); - const y = NumCast(doc.y); - const w = doc[WidthSym](); - const h = doc[HeightSym](); - lines.push([{ X: x, Y: y }, { X: x + w, Y: y }]); // top line - lines.push([{ X: x, Y: y }, { X: x, Y: y + h }]); // left line - lines.push([{ X: x + w, Y: y }, { X: x + w, Y: y + h }]); // right line - lines.push([{ X: x, Y: y + h }, { X: x + w, Y: y + h }]); // bottom line - lines.push([{ X: x + w / 2, Y: y }, { X: x + w / 2, Y: y + h }]); // horizontal center line - lines.push([{ X: x, Y: y + h / 2 }, { X: x + w, Y: y + h / 2 }]); // vertical center line - }) - DragManager.SetSnapLines(lines); + const layoutDoc = Doc.Layout(doc); + const x = NumCast(doc.x) - selRect.left; + const y = NumCast(doc.y) - selRect.top; + const w = NumCast(layoutDoc._width); + const h = NumCast(layoutDoc._height); + // const s = this._mainCont!.getBoundingClientRect().width / selRect.width; + // const tLFromCorner = [s * x, s * y]; + const topLeft = this.getLocalTransform().inverse().transformDirection(x, y); + console.log(topLeft); + const topLeftInScreen = [this._mainCont!.getBoundingClientRect().left + topLeft[0], this._mainCont!.getBoundingClientRect().top + topLeft[1]]; + const docSize = this.getLocalTransform().inverse().transformDirection(w, h); + console.log(topLeftInScreen); + horizLines.push(topLeftInScreen[1]); // top line + horizLines.push(topLeftInScreen[1] + docSize[1]); // bottom line + horizLines.push(topLeftInScreen[1] + docSize[1] / 2); // horiz center line + vertLines.push(topLeftInScreen[0]);//left line + vertLines.push(topLeftInScreen[0] + docSize[0]);// right line + vertLines.push(topLeftInScreen[0] + docSize[0] / 2);// vert center line + }); + // console.log(horizLines, vertLines); + // this._hLines = horizLines; + // this._vLines = vertLines; + DragManager.SetSnapLines(horizLines, vertLines); } } + @observable private _hLines: number[] | undefined; + @observable private _vLines: number[] | undefined; + private childViews = () => { const children = typeof this.props.children === "function" ? (this.props.children as any)() as JSX.Element[] : []; return [ @@ -1242,7 +1254,12 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument, u }}>
- +
+ + {this._hLines?.map(l => )} + {this._vLines?.map(l => )} + +
; } } -- cgit v1.2.3-70-g09d2 From 58ba643f2642432ca6041f5d348aadf005323b73 Mon Sep 17 00:00:00 2001 From: Stanley Yip Date: Wed, 22 Apr 2020 20:36:06 -0700 Subject: snapping! --- src/client/util/DragManager.ts | 10 ++++++---- src/client/views/MainView.tsx | 10 ++++++++++ .../collectionFreeForm/CollectionFreeFormView.tsx | 22 +++++++--------------- 3 files changed, 23 insertions(+), 19 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/util/DragManager.ts b/src/client/util/DragManager.ts index b0cabfaad..02d9f7200 100644 --- a/src/client/util/DragManager.ts +++ b/src/client/util/DragManager.ts @@ -19,6 +19,7 @@ import { DateField } from "../../new_fields/DateField"; import { DocumentView } from "../views/nodes/DocumentView"; import { UndoManager } from "./UndoManager"; import { PointData } from "../../new_fields/InkField"; +import { MainView } from "../views/MainView"; export type dropActionType = "place" | "alias" | "copy" | undefined; export function SetupDrag( @@ -74,8 +75,8 @@ export function SetupDrag( export namespace DragManager { let dragDiv: HTMLDivElement; - let horizSnapLines: number[]; - let vertSnapLines: number[]; + export let horizSnapLines: number[]; + export let vertSnapLines: number[]; export function Root() { const root = document.getElementById("root"); @@ -284,9 +285,12 @@ export namespace DragManager { StartDrag([ele], {}, downX, downY); } + @action export function SetSnapLines(horizLines: number[], vertLines: number[]) { horizSnapLines = horizLines; vertSnapLines = vertLines; + MainView.Instance._hLines = horizLines; + MainView.Instance._vLines = vertLines; } function StartDrag(eles: HTMLElement[], dragData: { [id: string]: any }, downX: number, downY: number, options?: DragOptions, finishDrag?: (dropData: DragCompleteEvent) => void) { @@ -373,8 +377,6 @@ export namespace DragManager { const yFromTop = downY - elesCont.top; const xFromRight = elesCont.right - downX; const yFromBottom = elesCont.bottom - downY; - console.log(elesCont); - console.log(xFromLeft, yFromTop); const moveHandler = (e: PointerEvent) => { e.preventDefault(); // required or dragging text menu link item ends up dragging the link button as native drag/drop if (dragData instanceof DocumentDragData) { diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx index 40cabcf83..1f88410b8 100644 --- a/src/client/views/MainView.tsx +++ b/src/client/views/MainView.tsx @@ -42,6 +42,7 @@ import { OverlayView } from './OverlayView'; import PDFMenu from './pdf/PDFMenu'; import { PreviewCursor } from './PreviewCursor'; import { ScriptField } from '../../new_fields/ScriptField'; +import { DragManager } from '../util/DragManager'; @observer export class MainView extends React.Component { @@ -563,6 +564,9 @@ export class MainView extends React.Component { return this._mainViewRef; } + @observable public _hLines: any; + @observable public _vLines: any; + render() { return (
@@ -580,6 +584,12 @@ export class MainView extends React.Component { +
+ + {this._hLines?.map(l => )} + {this._vLines?.map(l => )} + +
); } } diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index c4c37141b..ef49970e2 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -1099,7 +1099,6 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument, u if (SelectionManager.GetIsDragging()) { const size = this.props.ScreenToLocalTransform().transformDirection(this.props.PanelWidth(), this.props.PanelHeight()); const selRect = { left: this.panX() - size[0] / 2, top: this.panY() - size[1] / 2, width: size[0], height: size[1] }; - console.log(selRect); const selection: Doc[] = []; this.getActiveDocuments().filter(doc => !doc.isBackground && doc.z === undefined).map(doc => { const layoutDoc = Doc.Layout(doc); @@ -1140,17 +1139,12 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument, u const vertLines: number[] = []; selection.forEach(doc => { const layoutDoc = Doc.Layout(doc); - const x = NumCast(doc.x) - selRect.left; - const y = NumCast(doc.y) - selRect.top; + const x = NumCast(doc.x); + const y = NumCast(doc.y); const w = NumCast(layoutDoc._width); const h = NumCast(layoutDoc._height); - // const s = this._mainCont!.getBoundingClientRect().width / selRect.width; - // const tLFromCorner = [s * x, s * y]; - const topLeft = this.getLocalTransform().inverse().transformDirection(x, y); - console.log(topLeft); - const topLeftInScreen = [this._mainCont!.getBoundingClientRect().left + topLeft[0], this._mainCont!.getBoundingClientRect().top + topLeft[1]]; - const docSize = this.getLocalTransform().inverse().transformDirection(w, h); - console.log(topLeftInScreen); + const topLeftInScreen = this.getTransform().inverse().transformPoint(x, y); + const docSize = this.getTransform().inverse().transformDirection(w, h); horizLines.push(topLeftInScreen[1]); // top line horizLines.push(topLeftInScreen[1] + docSize[1]); // bottom line horizLines.push(topLeftInScreen[1] + docSize[1] / 2); // horiz center line @@ -1158,11 +1152,9 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument, u vertLines.push(topLeftInScreen[0] + docSize[0]);// right line vertLines.push(topLeftInScreen[0] + docSize[0] / 2);// vert center line }); - // console.log(horizLines, vertLines); - // this._hLines = horizLines; - // this._vLines = vertLines; DragManager.SetSnapLines(horizLines, vertLines); } + e.stopPropagation(); } @observable private _hLines: number[] | undefined; @@ -1254,12 +1246,12 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument, u }}>
-
+ {/*
{this._hLines?.map(l => )} {this._vLines?.map(l => )} -
+
*/}
; } } -- cgit v1.2.3-70-g09d2 From 492e203d95ce9b5aa5e2b2bd7feaf542415a3579 Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Sun, 26 Apr 2020 21:22:51 -0400 Subject: fixed multi/col/row views to work with templates. fixed context menu subitems to appear on screen. fixed tree view display of text nodes. --- src/client/views/ContextMenu.scss | 47 +++++++++++++++++----- src/client/views/ContextMenuItem.tsx | 16 +++++--- .../views/collections/CollectionStackingView.tsx | 4 +- .../views/collections/CollectionTreeView.tsx | 20 +++++---- .../CollectionMulticolumnView.tsx | 31 +++++++++----- .../CollectionMultirowView.tsx | 31 +++++++++----- src/client/views/nodes/RadialMenu.scss | 13 ------ src/client/views/nodes/RadialMenu.tsx | 9 ++--- .../authentication/models/current_user_utils.ts | 28 ++++++++++++- 9 files changed, 133 insertions(+), 66 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/ContextMenu.scss b/src/client/views/ContextMenu.scss index 8f112de0c..30938688d 100644 --- a/src/client/views/ContextMenu.scss +++ b/src/client/views/ContextMenu.scss @@ -61,6 +61,42 @@ letter-spacing: 2px; text-transform: uppercase; padding-right: 30px; + + .icon-background { + pointer-events: all; + background-color: transparent; + width: 35px; + text-align: center; + font-size: 20px; + margin-left: 5px; + margin-top: 5px; + margin-bottom: 5px; + height: 20px; + } +} +.contextMenu-description { + // width: 11vw; //10vw + background: whitesmoke; + display: flex; //comment out to allow search icon to be inline with search text + justify-content: left; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + transition: all .1s; + border-style: none; + // padding: 10px 0px 10px 0px; + white-space: nowrap; + font-size: 13px; + color: grey; + letter-spacing: 2px; + text-transform: uppercase; + padding-right: 30px; + margin-top: 5px; + height: 20px; + margin-bottom: 5px; } .contextMenu-item:hover { @@ -121,15 +157,4 @@ padding-left: 10px; border: solid black 1px; border-radius: 5px; -} - -.icon-background { - pointer-events: all; - height:100%; - margin-top: 15px; - background-color: transparent; - width: 35px; - text-align: center; - font-size: 20px; - margin-left: 5px; } \ No newline at end of file diff --git a/src/client/views/ContextMenuItem.tsx b/src/client/views/ContextMenuItem.tsx index fef9e5f60..99840047f 100644 --- a/src/client/views/ContextMenuItem.tsx +++ b/src/client/views/ContextMenuItem.tsx @@ -51,7 +51,8 @@ export class ContextMenuItem extends React.Component { + _overPosY = 0; + onPointerEnter = (e: React.MouseEvent) => { if (this.currentTimeout) { clearTimeout(this.currentTimeout); this.currentTimeout = undefined; @@ -59,6 +60,7 @@ export class ContextMenuItem extends React.Component this.overItem = true), ContextMenuItem.timeout); } @@ -88,18 +90,22 @@ export class ContextMenuItem extends React.Component ); } else if ("subitems" in this.props) { + const where = !this.overItem ? "" : this._overPosY < window.innerHeight / 3 ? "flex-start" : this._overPosY > window.innerHeight * 2 / 3 ? "flex-end" : "center"; + const marginTop = !this.overItem ? "" : this._overPosY < window.innerHeight / 3 ? "20px" : this._overPosY > window.innerHeight * 2 / 3 ? "-20px" : ""; const submenu = !this.overItem ? (null) : -
+
{this._items.map(prop => )}
; return ( -
+
{this.props.icon ? ( - + ) : null} -
+
{this.props.description}
diff --git a/src/client/views/collections/CollectionStackingView.tsx b/src/client/views/collections/CollectionStackingView.tsx index 24a3119cc..799bc7f67 100644 --- a/src/client/views/collections/CollectionStackingView.tsx +++ b/src/client/views/collections/CollectionStackingView.tsx @@ -189,8 +189,8 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) { active={this.props.active} whenActiveChanged={this.props.whenActiveChanged} addDocTab={this.addDocTab} - pinToPres={this.props.pinToPres}> - ; + pinToPres={this.props.pinToPres} + />; } getDocWidth(d?: Doc) { diff --git a/src/client/views/collections/CollectionTreeView.tsx b/src/client/views/collections/CollectionTreeView.tsx index 7f5dc98f1..218c5705d 100644 --- a/src/client/views/collections/CollectionTreeView.tsx +++ b/src/client/views/collections/CollectionTreeView.tsx @@ -348,7 +348,9 @@ class TreeView extends React.Component {
; } else { const layoutDoc = Doc.Layout(this.props.document); - return
+ const panelHeight = layoutDoc.type === DocumentType.RTF ? this.rtfHeight : this.docHeight; + const panelWidth = layoutDoc.type === DocumentType.RTF ? this.rtfWidth : this.docWidth; + return
{ FreezeDimensions={true} NativeWidth={layoutDoc.type === DocumentType.RTF ? this.rtfWidth : undefined} NativeHeight={layoutDoc.type === DocumentType.RTF ? this.rtfHeight : undefined} - PanelWidth={layoutDoc.type === DocumentType.RTF ? this.rtfWidth : this.docWidth} - PanelHeight={layoutDoc.type === DocumentType.RTF ? this.rtfHeight : this.docHeight} + PanelWidth={panelWidth} + PanelHeight={panelHeight} getTransform={this.docTransform} CollectionDoc={this.props.containingCollection} CollectionView={undefined} @@ -727,7 +729,7 @@ export class CollectionTreeView extends CollectionSubView Transform, width: () => number, height: () => number) { return ; } /** diff --git a/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx b/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx index 1eb486c4f..af0cc3b5c 100644 --- a/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx +++ b/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx @@ -13,7 +13,7 @@ import { Transform } from '../../../util/Transform'; import HeightLabel from './MultirowHeightLabel'; import ResizeBar from './MultirowResizer'; import { undoBatch } from '../../../util/UndoManager'; -import { DragManager } from '../../../util/DragManager'; +import { DragManager, dropActionType } from '../../../util/DragManager'; import { List } from '../../../../new_fields/List'; type MultirowDocument = makeInterface<[typeof documentSchema]>; @@ -214,21 +214,32 @@ export class CollectionMultirowView extends CollectionSubView(MultirowDocument) } getDisplayDoc(layout: Doc, dxf: () => Transform, width: () => number, height: () => number) { return ; } /** diff --git a/src/client/views/nodes/RadialMenu.scss b/src/client/views/nodes/RadialMenu.scss index ce0c263ef..daa620d12 100644 --- a/src/client/views/nodes/RadialMenu.scss +++ b/src/client/views/nodes/RadialMenu.scss @@ -67,17 +67,4 @@ s margin-left: 5px; text-align: left; display: inline; //need this? -} - - - -.icon-background { - pointer-events: all; - height:100%; - margin-top: 15px; - background-color: transparent; - width: 35px; - text-align: center; - font-size: 20px; - margin-left: 5px; } \ No newline at end of file diff --git a/src/client/views/nodes/RadialMenu.tsx b/src/client/views/nodes/RadialMenu.tsx index 0ffed78de..ddfdb67b4 100644 --- a/src/client/views/nodes/RadialMenu.tsx +++ b/src/client/views/nodes/RadialMenu.tsx @@ -1,12 +1,9 @@ import React = require("react"); +import { action, computed, IReactionDisposer, observable, reaction, runInAction } from "mobx"; import { observer } from "mobx-react"; -import { action, observable, computed, IReactionDisposer, reaction, runInAction } from "mobx"; -import { RadialMenuItem, RadialMenuProps } from "./RadialMenuItem"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import Measure from "react-measure"; -import "./RadialMenu.scss"; -import MobileInkOverlay from "../../../mobile/MobileInkOverlay"; import MobileInterface from "../../../mobile/MobileInterface"; +import "./RadialMenu.scss"; +import { RadialMenuItem, RadialMenuProps } from "./RadialMenuItem"; @observer export class RadialMenu extends React.Component { diff --git a/src/server/authentication/models/current_user_utils.ts b/src/server/authentication/models/current_user_utils.ts index 25775edef..76aa51f63 100644 --- a/src/server/authentication/models/current_user_utils.ts +++ b/src/server/authentication/models/current_user_utils.ts @@ -82,8 +82,34 @@ export class CurrentUserUtils { }); } + if (doc["template-button-detail"] === undefined) { + const { TextDocument, ImageDocument, CarouselDocument, TreeDocument } = Docs.Create; + const fallbackImg = "http://www.cs.brown.edu/~bcz/face.gif"; + const detailedTemplate = `{ "doc": { "type": "doc", "content": [ { "type": "paragraph", "content": [ { "type": "dashField", "attrs": { "fieldKey": "year" } } ] }, { "type": "paragraph", "content": [ { "type": "dashField", "attrs": { "fieldKey": "company" } } ] } ] }, "selection":{"type":"text","anchor":1,"head":1},"storedMarks":[] }`; + + const textDoc = TextDocument("", { title: "details", _autoHeight: true }); + const detailView = Docs.Create.MultirowDocument([ + CarouselDocument([], { title: "data", _height: 350, _itemIndex: 0, backgroundColor: "#9b9b9b3F" }), + TreeDocument([ + // textDoc, + TextDocument("", { title: "short description", _autoHeight: true }), + // TreeDocument([], { title: "narratives", _height: 75, treeViewHideTitle: true }), + TextDocument("", { title: "long description", _height: 350 }) + ], { title: "stuff", _height: 100 }) + ], { _chromeStatus: "disabled", _width: 300, _height: 300, _autoHeight: true, title: "detailView" }); + textDoc.data = new RichTextField(detailedTemplate, "year company"); + detailView.isTemplateDoc = makeTemplate(detailView); + + doc["template-button-detail"] = CurrentUserUtils.ficon({ + onDragStart: ScriptField.MakeFunction('getCopy(this.dragFactory, true)'), + dragFactory: new PrefetchProxy(detailView) as any as Doc, + removeDropProperties: new List(["dropAction"]), title: "detail view", icon: "window-maximize" + }); + } + if (doc["template-buttons"] === undefined) { - doc["template-buttons"] = new PrefetchProxy(Docs.Create.MasonryDocument([doc["template-button-slides"] as Doc, doc["template-button-description"] as Doc, doc["template-button-query"] as Doc], { + doc["template-buttons"] = new PrefetchProxy(Docs.Create.MasonryDocument([doc["template-button-slides"] as Doc, doc["template-button-description"] as Doc, + doc["template-button-query"] as Doc, doc["template-button-detail"] as Doc], { title: "Compound Item Creators", _xMargin: 0, _showTitle: "title", _autoHeight: true, _width: 500, columnWidth: 35, ignoreClick: true, lockedPosition: true, _chromeStatus: "disabled", dropConverter: ScriptField.MakeScript("convertToButtons(dragData)", { dragData: DragManager.DocumentDragData.name }), -- cgit v1.2.3-70-g09d2 From c75ffd4900acea74c55b6bf275a5e8082c15d573 Mon Sep 17 00:00:00 2001 From: Sam Wilkins Date: Sun, 26 Apr 2020 19:29:50 -0700 Subject: formatted textbox disposers refactor, paragraph chunked rich text initialization and buxton importer updates --- src/client/documents/Documents.ts | 1 + .../views/collections/CollectionTreeView.tsx | 21 ++++++-- src/client/views/nodes/FormattedTextBox.tsx | 60 ++++++++-------------- src/scraping/buxton/final/BuxtonImporter.ts | 17 +++--- 4 files changed, 49 insertions(+), 50 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index 1268c97b0..6bd2eee3c 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -407,6 +407,7 @@ export namespace Docs { const doc = StackingDocument(deviceImages, { title: device.title, _LODdisable: true }); const deviceProto = Doc.GetProto(doc); deviceProto.hero = new ImageField(constructed[0].url); + deviceProto.fontFamily = "Arial"; Docs.Get.FromJson({ data: device, appendToExisting: { targetDoc: deviceProto } }); Doc.AddDocToList(parentProto, "data", doc); } else if (errors) { diff --git a/src/client/views/collections/CollectionTreeView.tsx b/src/client/views/collections/CollectionTreeView.tsx index 7f5dc98f1..49eb90bc2 100644 --- a/src/client/views/collections/CollectionTreeView.tsx +++ b/src/client/views/collections/CollectionTreeView.tsx @@ -730,18 +730,31 @@ export class CollectionTreeView extends CollectionSubView ({ + type: "paragraph", + content: [{ type: "dashField", attrs: { fieldKey } }] + })) + }, + selection: { type: "text", anchor: 1, head: 1 }, + storedMarks: [] + }; + textDoc.data = new RichTextField(JSON.stringify(detailedTemplate), buxtonFieldKeys.join(" ")); const heroView = ImageDocument(fallbackImg, { title: "heroView", isTemplateDoc: true, isTemplateForField: "hero", }); // this acts like a template doc and a template field ... a little weird, but seems to work? heroView.proto!.layout = ImageBox.LayoutString("hero"); diff --git a/src/client/views/nodes/FormattedTextBox.tsx b/src/client/views/nodes/FormattedTextBox.tsx index 425af8ccf..dd0df9f3f 100644 --- a/src/client/views/nodes/FormattedTextBox.tsx +++ b/src/client/views/nodes/FormattedTextBox.tsx @@ -83,17 +83,7 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp private _lastX = 0; private _lastY = 0; private _undoTyping?: UndoManager.Batch; - private _searchReactionDisposer?: Lambda; - private _recordReactionDisposer: Opt; - private _scrollToRegionReactionDisposer: Opt; - private _reactionDisposer: Opt; - private _heightReactionDisposer: Opt; - private _proxyReactionDisposer: Opt; - private _pullReactionDisposer: Opt; - private _pushReactionDisposer: Opt; - private _buttonBarReactionDisposer: Opt; - private _linkMakerDisposer: Opt; - private _scrollDisposer: Opt; + private _disposers: { [name: string]: IReactionDisposer } = {}; private dropDisposer?: DragManager.DragDropDisposer; @computed get _recording() { return this.dataDoc.audioState === "recording"; } @@ -564,7 +554,7 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp } } componentDidMount() { - this._buttonBarReactionDisposer = reaction( + this._disposers.buttonBar = reaction( () => DocumentButtonBar.Instance, instance => { if (instance) { @@ -573,7 +563,7 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp } } ); - this._linkMakerDisposer = reaction( + this._disposers.linkMaker = reaction( () => this.props.makeLink?.(), (linkDoc: Opt) => { if (linkDoc) { @@ -584,8 +574,7 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp }, { fireImmediately: true } ); - - this._reactionDisposer = reaction( + this._disposers.editorState = reaction( () => { if (this.dataDoc[this.props.fieldKey + "-noTemplate"] || !this.props.Document[this.props.fieldKey + "-textTemplate"]) { return Cast(this.dataDoc[this.props.fieldKey], RichTextField, null)?.Data; @@ -600,8 +589,7 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp } } ); - - this._pullReactionDisposer = reaction( + this._disposers.pullDoc = reaction( () => this.props.Document[Pulls], () => { if (!DocumentButtonBar.hasPulledHack) { @@ -611,8 +599,7 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp } } ); - - this._pushReactionDisposer = reaction( + this._disposers.pushDoc = reaction( () => this.props.Document[Pushes], () => { if (!DocumentButtonBar.hasPushedHack) { @@ -621,19 +608,18 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp } } ); - - this._heightReactionDisposer = reaction( + this._disposers.height = reaction( () => [this.layoutDoc[WidthSym](), this.layoutDoc._autoHeight], () => this.tryUpdateHeight() ); this.setupEditor(this.config, this.props.fieldKey); - this._searchReactionDisposer = reaction(() => this.rootDoc.searchMatch, + this._disposers.search = reaction(() => this.rootDoc.searchMatch, search => search ? this.highlightSearchTerms([Doc.SearchQuery()]) : this.unhighlightSearchTerms(), { fireImmediately: true }); - this._recordReactionDisposer = reaction(() => this._recording, + this._disposers.record = reaction(() => this._recording, () => { if (this._recording) { setTimeout(action(() => { @@ -643,8 +629,7 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp } else setTimeout(() => this.stopDictation(true), 0); } ); - - this._scrollToRegionReactionDisposer = reaction( + this._disposers.scrollToRegion = reaction( () => StrCast(this.layoutDoc.scrollToLinkID), async (scrollToLinkID) => { const findLinkFrag = (frag: Fragment, editor: EditorView) => { @@ -689,8 +674,7 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp }, { fireImmediately: true } ); - - this._scrollDisposer = reaction(() => NumCast(this.props.Document.scrollPos), + this._disposers.scroll = reaction(() => NumCast(this.props.Document.scrollPos), pos => this._scrollRef.current && this._scrollRef.current.scrollTo({ top: pos }), { fireImmediately: true } ); @@ -876,7 +860,15 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp }); const startupText = !rtfField && this._editorView && Field.toString(this.dataDoc[fieldKey] as Field); if (startupText) { - this._editorView.dispatch(this._editorView.state.tr.insertText(startupText)); + const paragraphSegments = startupText.split("\n\n"); + const { state: { tr }, dispatch } = this._editorView; + if (paragraphSegments.length) { + for (const paragraph of paragraphSegments) { + dispatch(tr.insertText(paragraph)); + } + } else { + dispatch(tr.insertText(startupText)); + } } } @@ -906,17 +898,7 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp } componentWillUnmount() { - this._scrollDisposer?.(); - this._scrollToRegionReactionDisposer?.(); - this._reactionDisposer?.(); - this._proxyReactionDisposer?.(); - this._pushReactionDisposer?.(); - this._pullReactionDisposer?.(); - this._heightReactionDisposer?.(); - this._searchReactionDisposer?.(); - this._recordReactionDisposer?.(); - this._buttonBarReactionDisposer?.(); - this._linkMakerDisposer?.(); + Object.values(this._disposers).forEach(disposer => disposer?.()); this._editorView?.destroy(); } diff --git a/src/scraping/buxton/final/BuxtonImporter.ts b/src/scraping/buxton/final/BuxtonImporter.ts index 122415460..64b988610 100644 --- a/src/scraping/buxton/final/BuxtonImporter.ts +++ b/src/scraping/buxton/final/BuxtonImporter.ts @@ -16,6 +16,7 @@ interface DocumentContents { hyperlinks: string[]; captions: string[]; embeddedFileNames: string[]; + longDescriptionParagraphs: string[]; } export interface DeviceDocument { @@ -186,10 +187,6 @@ const RegexMap = new Map>([ exp: /Short Description:\s+(.*)Bill Buxton[’']s Notes/, transformer: Utilities.correctSentences }], - ["longDescription", { - exp: /Bill Buxton[’']s Notes(.*)Device Details/, - transformer: Utilities.correctSentences - }], ]); const sourceDir = path.resolve(__dirname, "source"); @@ -267,7 +264,12 @@ async function extractFileContents(pathToDocument: string): Promise node.text()); + const captionTargets = document.find(tableCellXPath).map(node => node.text().trim()); + + const paragraphs = document.find('//*[name()="w:p"]').map(node => Utilities.correctSentences(node.text()).transformed!); + const start = paragraphs.indexOf(paragraphs.find(el => /Bill Buxton[’']s Notes/.test(el))!) + 1; + const end = paragraphs.indexOf("Device Details"); + const longDescriptionParagraphs = paragraphs.slice(start, end); const { length } = captionTargets; strictEqual(length > 3, true, "No captions written."); @@ -290,7 +292,7 @@ async function extractFileContents(pathToDocument: string): Promise { } function analyze(fileName: string, contents: DocumentContents): AnalysisResult { - const { body, imageData, captions, hyperlinks, embeddedFileNames } = contents; + const { body, imageData, captions, hyperlinks, embeddedFileNames, longDescriptionParagraphs } = contents; const device: any = { hyperlinks, captions, @@ -376,6 +378,7 @@ function analyze(fileName: string, contents: DocumentContents): AnalysisResult { return { errors }; } + device.longDescription = longDescriptionParagraphs.join("\n\n"); return { device }; } -- cgit v1.2.3-70-g09d2 From fc470b25759e8f051dc527066f9bebcaf5e7707d Mon Sep 17 00:00:00 2001 From: Sam Wilkins Date: Sun, 26 Apr 2020 23:55:23 -0700 Subject: various buxton fixes --- src/client/documents/Documents.ts | 1 - .../views/collections/CollectionTreeView.tsx | 24 ++++++++-------- src/client/views/nodes/DocumentContentsView.tsx | 8 +++--- src/client/views/nodes/FormattedTextBox.tsx | 9 +----- src/scraping/buxton/final/BuxtonImporter.ts | 32 ++++++++++++---------- 5 files changed, 36 insertions(+), 38 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index 1651a6d55..5e0890e76 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -408,7 +408,6 @@ export namespace Docs { const doc = StackingDocument(deviceImages, { title: device.title, _LODdisable: true }); const deviceProto = Doc.GetProto(doc); deviceProto.hero = new ImageField(constructed[0].url); - deviceProto.fontFamily = "Arial"; Docs.Get.FromJson({ data: device, appendToExisting: { targetDoc: deviceProto } }); Doc.AddDocToList(parentProto, "data", doc); } else if (errors) { diff --git a/src/client/views/collections/CollectionTreeView.tsx b/src/client/views/collections/CollectionTreeView.tsx index 362d43ee7..dcb5e116c 100644 --- a/src/client/views/collections/CollectionTreeView.tsx +++ b/src/client/views/collections/CollectionTreeView.tsx @@ -733,19 +733,21 @@ export class CollectionTreeView extends CollectionSubView { const style: { [key: string]: any } = {}; const divKeys = OmitKeys(this.props, ["children", "htmltag", "RootDoc", "Document", "key", "onInput", "onClick", "__proto__"]).omit; Object.keys(divKeys).map((prop: string) => { - let p = (this.props as any)[prop] as string; + const p = (this.props as any)[prop] as string; const replacer = (match: any, expr: string, offset: any, string: any) => { // bcz: this executes a script to convert a propery expression string: { script } into a value return ScriptField.MakeFunction(expr, { self: Doc.name, this: Doc.name })?.script.run({ self: this.props.RootDoc, this: this.props.Document }).result as string || ""; }; @@ -178,9 +178,9 @@ export class DocumentContentsView extends React.Component 1 ? splits[0] + splits[1].replace(/{([^{}]|(?R))*}/, replacer4) : ""; // might have been more elegant if javascript supported recursive patterns diff --git a/src/client/views/nodes/FormattedTextBox.tsx b/src/client/views/nodes/FormattedTextBox.tsx index 8d4b90c41..d98172823 100644 --- a/src/client/views/nodes/FormattedTextBox.tsx +++ b/src/client/views/nodes/FormattedTextBox.tsx @@ -860,15 +860,8 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp }); const startupText = !rtfField && this._editorView && Field.toString(this.dataDoc[fieldKey] as Field); if (startupText) { - const paragraphSegments = startupText.split("\n\n"); const { state: { tr }, dispatch } = this._editorView; - if (paragraphSegments.length) { - for (const paragraph of paragraphSegments) { - dispatch(tr.insertText(paragraph)); - } - } else { - dispatch(tr.insertText(startupText)); - } + dispatch(tr.insertText(startupText)); } } diff --git a/src/scraping/buxton/final/BuxtonImporter.ts b/src/scraping/buxton/final/BuxtonImporter.ts index 64b988610..713207a07 100644 --- a/src/scraping/buxton/final/BuxtonImporter.ts +++ b/src/scraping/buxton/final/BuxtonImporter.ts @@ -16,7 +16,7 @@ interface DocumentContents { hyperlinks: string[]; captions: string[]; embeddedFileNames: string[]; - longDescriptionParagraphs: string[]; + longDescription: string; } export interface DeviceDocument { @@ -269,7 +269,7 @@ async function extractFileContents(pathToDocument: string): Promise Utilities.correctSentences(node.text()).transformed!); const start = paragraphs.indexOf(paragraphs.find(el => /Bill Buxton[’']s Notes/.test(el))!) + 1; const end = paragraphs.indexOf("Device Details"); - const longDescriptionParagraphs = paragraphs.slice(start, end); + const longDescription = paragraphs.slice(start, end).filter(paragraph => paragraph.length).join("\n\n"); const { length } = captionTargets; strictEqual(length > 3, true, "No captions written."); @@ -292,7 +292,7 @@ async function extractFileContents(pathToDocument: string): Promise { const imageEntries = allEntries.filter(name => imageEntry.test(name)); const imageUrls: ImageData[] = []; - for (const mediaPath of imageEntries) { - const getImageStream = () => new Promise((resolve, reject) => { - zip.stream(mediaPath, (error: any, stream: any) => error ? reject(error) : resolve(stream)); - }); + const valid: any[] = []; + + const getImageStream = (mediaPath: string) => new Promise((resolve, reject) => { + zip.stream(mediaPath, (error: any, stream: any) => error ? reject(error) : resolve(stream)); + }); + for (const mediaPath of imageEntries) { const { width, height, type } = await new Promise(async resolve => { const sizeStream = (createImageSizeStream() as PassThrough).on('size', (dimensions: Dimensions) => { readStream.destroy(); resolve(dimensions); }).on("error", () => readStream.destroy()); - const readStream = await getImageStream(); + const readStream = await getImageStream(mediaPath); readStream.pipe(sizeStream); }); - if (Math.abs(width - height) < 10) { - continue; + + if (Math.abs(width - height) > 10) { + valid.push({ width, height, type, mediaPath }); } + } + for (const { type, width, height, mediaPath } of valid) { const generatedFileName = `upload_${Utils.GenerateGuid()}.${type.toLowerCase()}`; - await DashUploadUtils.outputResizedImages(getImageStream, generatedFileName, imageDir); - + await DashUploadUtils.outputResizedImages(() => getImageStream(mediaPath), generatedFileName, imageDir); imageUrls.push({ url: `/files/images/buxton/${generatedFileName}`, nativeWidth: width, @@ -339,11 +343,12 @@ async function writeImages(zip: any): Promise { } function analyze(fileName: string, contents: DocumentContents): AnalysisResult { - const { body, imageData, captions, hyperlinks, embeddedFileNames, longDescriptionParagraphs } = contents; + const { body, imageData, captions, hyperlinks, embeddedFileNames, longDescription } = contents; const device: any = { hyperlinks, captions, embeddedFileNames, + longDescription, __images: imageData }; const errors: { [key: string]: string } = { fileName }; @@ -378,7 +383,6 @@ function analyze(fileName: string, contents: DocumentContents): AnalysisResult { return { errors }; } - device.longDescription = longDescriptionParagraphs.join("\n\n"); return { device }; } -- cgit v1.2.3-70-g09d2 From 7f6bc06f72e070bd8b45eba8b4c0669ee398387b Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Mon, 27 Apr 2020 02:55:59 -0400 Subject: fixed fontsize inheritance. fixed masonry view with a columnWidth of -1 to fit width. cleaned up masonry and editableViews --- src/client/documents/Documents.ts | 3 +- src/client/util/RichTextRules.ts | 2 +- src/client/views/EditableView.tsx | 2 - .../collections/CollectionMasonryViewFieldRow.tsx | 53 ++++++++-------------- .../views/collections/CollectionStackingView.tsx | 4 +- .../CollectionStackingViewFieldColumn.tsx | 5 -- src/client/views/nodes/DocumentView.tsx | 4 +- src/client/views/nodes/FormattedTextBox.tsx | 4 +- src/client/views/nodes/LabelBox.tsx | 3 +- src/client/views/nodes/SliderBox.tsx | 2 +- src/new_fields/documentSchemas.ts | 2 + 11 files changed, 35 insertions(+), 49 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index 5e0890e76..c64916897 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -110,7 +110,8 @@ export interface DocumentOptions { isBackground?: boolean; isLinkButton?: boolean; columnWidth?: number; - fontSize?: number; + _fontSize?: number; + _fontFamily?: string; curPage?: number; currentTimecode?: number; // the current timecode of a time-based document (e.g., current time of a video) value is in seconds displayTimecode?: number; // the time that a document should be displayed (e.g., time an annotation should be displayed on a video) diff --git a/src/client/util/RichTextRules.ts b/src/client/util/RichTextRules.ts index 3746199ba..8b11be6fb 100644 --- a/src/client/util/RichTextRules.ts +++ b/src/client/util/RichTextRules.ts @@ -143,7 +143,7 @@ export class RichTextRules { textDoc.inlineTextCount = numInlines + 1; const inlineFieldKey = "inline" + numInlines; // which field on the text document this annotation will write to const inlineLayoutKey = "layout_" + inlineFieldKey; // the field holding the layout string that will render the inline annotation - const textDocInline = Docs.Create.TextDocument("", { layoutKey: inlineLayoutKey, _width: 75, _height: 35, annotationOn: textDoc, _autoHeight: true, fontSize: 9, title: "inline comment" }); + const textDocInline = Docs.Create.TextDocument("", { layoutKey: inlineLayoutKey, _width: 75, _height: 35, annotationOn: textDoc, _autoHeight: true, _fontSize: 9, title: "inline comment" }); textDocInline.title = inlineFieldKey; // give the annotation its own title textDocInline.customTitle = true; // And make sure that it's 'custom' so that editing text doesn't change the title of the containing doc textDocInline.isTemplateForField = inlineFieldKey; // this is needed in case the containing text doc is converted to a template at some point diff --git a/src/client/views/EditableView.tsx b/src/client/views/EditableView.tsx index 2219966e5..c51173ad3 100644 --- a/src/client/views/EditableView.tsx +++ b/src/client/views/EditableView.tsx @@ -46,7 +46,6 @@ export interface EditableProps { menuCallback?: (x: number, y: number) => void; showMenuOnLoad?: boolean; HeadingObject?: SchemaHeaderField | undefined; - HeadingsHack?: number; toggle?: () => void; color?: string | undefined; } @@ -60,7 +59,6 @@ export interface EditableProps { export class EditableView extends React.Component { public static loadId = ""; @observable _editing: boolean = false; - @observable _headingsHack: number = 1; constructor(props: EditableProps) { super(props); diff --git a/src/client/views/collections/CollectionMasonryViewFieldRow.tsx b/src/client/views/collections/CollectionMasonryViewFieldRow.tsx index b272151c1..42f0c4311 100644 --- a/src/client/views/collections/CollectionMasonryViewFieldRow.tsx +++ b/src/client/views/collections/CollectionMasonryViewFieldRow.tsx @@ -4,7 +4,6 @@ import { faPalette } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { action, computed, observable } from "mobx"; import { observer } from "mobx-react"; -import Measure from "react-measure"; import { Doc } from "../../../new_fields/Doc"; import { PastelSchemaPalette, SchemaHeaderField } from "../../../new_fields/SchemaHeaderField"; import { ScriptField } from "../../../new_fields/ScriptField"; @@ -46,7 +45,6 @@ export class CollectionMasonryViewFieldRow extends React.Component = React.createRef(); private _sensitivity: number = 16; - private _counter: number = 0; private _ele: any; createRowDropRef = (ele: HTMLDivElement | null) => { @@ -167,7 +164,6 @@ export class CollectionMasonryViewFieldRow extends React.Component { this._createAliasSelected = false; if (this.props.headingObject) { - this._headingsHack++; this.props.headingObject.setCollapsed(!this.props.headingObject.collapsed); this.toggleVisibility(); } @@ -197,6 +193,10 @@ export class CollectionMasonryViewFieldRow extends React.Component); } - handleResize = (size: any) => { - if (++this._counter !== 1) { - this.getTrueHeight(); - } - } - @computed get contentLayout() { const rows = Math.max(1, Math.min(this.props.docList.length, Math.floor((this.props.parent.props.PanelWidth() - 2 * this.props.parent.xMargin) / (this.props.parent.columnWidth + this.props.parent.gridGap)))); const style = this.props.parent; @@ -277,7 +271,6 @@ export class CollectionMasonryViewFieldRow extends React.Component : !this.props.headingObject ? (null) :
-
- {evContents === `NO ${key.toUpperCase()} VALUE` ? (null) : + {noChrome || evContents === `NO ${key.toUpperCase()} VALUE` ? (null) :
} - - {evContents === `NO ${key.toUpperCase()} VALUE` ? (null) : + } + {noChrome || evContents === `NO ${key.toUpperCase()} VALUE` ? (null) :
} {noChrome || evContents === `NO ${key.toUpperCase()} VALUE` ? (null) :
@@ -349,17 +316,15 @@ export class CollectionMasonryViewFieldRow extends React.Component; } render() { - const background = this._background; //to account for observables in Measure - const contentlayout = this.contentLayout; - const headingview = this.headingView; + const background = this._background; return
- {headingview} - {contentlayout} + {this.headingView} + {this.contentLayout}
; } } \ No newline at end of file diff --git a/src/client/views/nodes/FormattedTextBox.tsx b/src/client/views/nodes/FormattedTextBox.tsx index c05594bbc..7f12aea29 100644 --- a/src/client/views/nodes/FormattedTextBox.tsx +++ b/src/client/views/nodes/FormattedTextBox.tsx @@ -218,7 +218,7 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp public hyperlinkTerms = (terms: string[], target: Doc) => { if (this._editorView && (this._editorView as any).docView && terms.some(t => t)) { const res = terms.filter(t => t).map(term => this.findInNode(this._editorView!, this._editorView!.state.doc, term)); - let tr = this._editorView.state.tr; + const tr = this._editorView.state.tr; const flattened: TextSelection[] = []; res.map(r => r.map(h => flattened.push(h))); const lastSel = Math.min(flattened.length - 1, this._searchIndex); diff --git a/src/server/authentication/models/current_user_utils.ts b/src/server/authentication/models/current_user_utils.ts index b5a44a8bc..1d41c3570 100644 --- a/src/server/authentication/models/current_user_utils.ts +++ b/src/server/authentication/models/current_user_utils.ts @@ -20,6 +20,7 @@ import { PrefetchProxy } from "../../../new_fields/Proxy"; import { FormattedTextBox } from "../../../client/views/nodes/FormattedTextBox"; import { MainView } from "../../../client/views/MainView"; import { DocumentType } from "../../../client/documents/DocumentTypes"; +import { SchemaHeaderField } from "../../../new_fields/SchemaHeaderField"; export class CurrentUserUtils { private static curr_id: string; @@ -108,10 +109,15 @@ export class CurrentUserUtils { const detailViewOpts = { title: "detailView", _width: 300, _fontFamily: "Arial", _fontSize: 12 }; const descriptionWrapperOpts = { title: "descriptions", _height: 300, columnWidth: -1, treeViewHideTitle: true, _pivotField: "title" }; - const descriptionWrapper = MasonryDocument([short, long], { ...shared, ...descriptionWrapperOpts }); - const detailView = Docs.Create.StackingDocument([carousel, details, descriptionWrapper], { ...shared, ...detailViewOpts }); + const descriptionWrapper = MasonryDocument([details, short, long], { ...shared, ...descriptionWrapperOpts }); + descriptionWrapper.sectionHeaders = new List([ + new SchemaHeaderField("[Long Description]", "LemonChiffon", undefined, undefined, undefined, true), + new SchemaHeaderField("[Details]", "lightBlue", undefined, undefined, undefined, true), + ]); + const detailView = Docs.Create.StackingDocument([carousel, descriptionWrapper], { ...shared, ...detailViewOpts }); detailView.isTemplateDoc = makeTemplate(detailView); + details.title = "Details"; short.title = "A Short Description"; long.title = "Long Description"; -- cgit v1.2.3-70-g09d2 From 69de8c235a6580ac222ef3f5b31746f6bc144659 Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Tue, 28 Apr 2020 10:48:16 -0400 Subject: rearranged text files --- .../apis/google_docs/GooglePhotosClientUtils.ts | 2 +- src/client/documents/Documents.ts | 2 +- src/client/util/DashDocCommentView.tsx | 95 -- src/client/util/DashDocView.tsx | 269 ---- src/client/util/DashFieldView.scss | 36 - src/client/util/DashFieldView.tsx | 211 ---- src/client/util/FootnoteView.tsx | 162 --- src/client/util/ImageResizeView.tsx | 138 --- src/client/util/ParagraphNodeSpec.ts | 143 --- src/client/util/ProsemirrorExampleTransfer.ts | 241 ---- src/client/util/RichTextMenu.scss | 121 -- src/client/util/RichTextMenu.tsx | 875 ------------- src/client/util/RichTextRules.ts | 4 +- src/client/util/RichTextSchema.tsx | 718 ----------- src/client/util/SummaryView.tsx | 81 -- src/client/util/TooltipTextMenu.scss | 372 ------ src/client/util/marks_rts.ts | 296 ----- src/client/util/nodes_rts.ts | 264 ---- src/client/util/prosemirrorPatches.js | 139 --- src/client/util/schema_rts.ts | 26 - src/client/views/DocumentButtonBar.tsx | 2 +- src/client/views/InkingControl.tsx | 2 +- src/client/views/MainView.tsx | 2 +- .../views/collections/CollectionCarouselView.tsx | 2 +- src/client/views/collections/CollectionSubView.tsx | 2 +- .../collectionFreeForm/CollectionFreeFormView.tsx | 2 +- .../collections/collectionFreeForm/MarqueeView.tsx | 2 +- src/client/views/nodes/DocumentContentsView.tsx | 2 +- src/client/views/nodes/FormattedTextBox.scss | 265 ---- src/client/views/nodes/FormattedTextBox.tsx | 1306 -------------------- .../views/nodes/FormattedTextBoxComment.scss | 33 - src/client/views/nodes/FormattedTextBoxComment.tsx | 236 ---- .../nodes/formattedText/DashDocCommentView.tsx | 95 ++ .../views/nodes/formattedText/DashDocView.tsx | 269 ++++ .../views/nodes/formattedText/DashFieldView.scss | 36 + .../views/nodes/formattedText/DashFieldView.tsx | 211 ++++ .../views/nodes/formattedText/FootnoteView.tsx | 162 +++ .../nodes/formattedText/FormattedTextBox.scss | 265 ++++ .../views/nodes/formattedText/FormattedTextBox.tsx | 1303 +++++++++++++++++++ .../formattedText/FormattedTextBoxComment.scss | 33 + .../formattedText/FormattedTextBoxComment.tsx | 236 ++++ .../views/nodes/formattedText/ImageResizeView.tsx | 138 +++ .../views/nodes/formattedText/ParagraphNodeSpec.ts | 143 +++ .../formattedText/ProsemirrorExampleTransfer.ts | 241 ++++ .../views/nodes/formattedText/RichTextMenu.scss | 121 ++ .../views/nodes/formattedText/RichTextMenu.tsx | 875 +++++++++++++ .../views/nodes/formattedText/RichTextRules.ts | 319 +++++ .../views/nodes/formattedText/RichTextSchema.tsx | 718 +++++++++++ .../views/nodes/formattedText/SummaryView.tsx | 81 ++ .../views/nodes/formattedText/TooltipTextMenu.scss | 372 ++++++ src/client/views/nodes/formattedText/marks_rts.ts | 296 +++++ src/client/views/nodes/formattedText/nodes_rts.ts | 264 ++++ .../nodes/formattedText/prosemirrorPatches.js | 139 +++ src/client/views/nodes/formattedText/schema_rts.ts | 26 + src/mobile/MobileInterface.tsx | 2 +- src/new_fields/RichTextUtils.ts | 4 +- .../authentication/models/current_user_utils.ts | 2 +- 57 files changed, 6359 insertions(+), 6043 deletions(-) delete mode 100644 src/client/util/DashDocCommentView.tsx delete mode 100644 src/client/util/DashDocView.tsx delete mode 100644 src/client/util/DashFieldView.scss delete mode 100644 src/client/util/DashFieldView.tsx delete mode 100644 src/client/util/FootnoteView.tsx delete mode 100644 src/client/util/ImageResizeView.tsx delete mode 100644 src/client/util/ParagraphNodeSpec.ts delete mode 100644 src/client/util/ProsemirrorExampleTransfer.ts delete mode 100644 src/client/util/RichTextMenu.scss delete mode 100644 src/client/util/RichTextMenu.tsx delete mode 100644 src/client/util/RichTextSchema.tsx delete mode 100644 src/client/util/SummaryView.tsx delete mode 100644 src/client/util/TooltipTextMenu.scss delete mode 100644 src/client/util/marks_rts.ts delete mode 100644 src/client/util/nodes_rts.ts delete mode 100644 src/client/util/prosemirrorPatches.js delete mode 100644 src/client/util/schema_rts.ts delete mode 100644 src/client/views/nodes/FormattedTextBox.scss delete mode 100644 src/client/views/nodes/FormattedTextBox.tsx delete mode 100644 src/client/views/nodes/FormattedTextBoxComment.scss delete mode 100644 src/client/views/nodes/FormattedTextBoxComment.tsx create mode 100644 src/client/views/nodes/formattedText/DashDocCommentView.tsx create mode 100644 src/client/views/nodes/formattedText/DashDocView.tsx create mode 100644 src/client/views/nodes/formattedText/DashFieldView.scss create mode 100644 src/client/views/nodes/formattedText/DashFieldView.tsx create mode 100644 src/client/views/nodes/formattedText/FootnoteView.tsx create mode 100644 src/client/views/nodes/formattedText/FormattedTextBox.scss create mode 100644 src/client/views/nodes/formattedText/FormattedTextBox.tsx create mode 100644 src/client/views/nodes/formattedText/FormattedTextBoxComment.scss create mode 100644 src/client/views/nodes/formattedText/FormattedTextBoxComment.tsx create mode 100644 src/client/views/nodes/formattedText/ImageResizeView.tsx create mode 100644 src/client/views/nodes/formattedText/ParagraphNodeSpec.ts create mode 100644 src/client/views/nodes/formattedText/ProsemirrorExampleTransfer.ts create mode 100644 src/client/views/nodes/formattedText/RichTextMenu.scss create mode 100644 src/client/views/nodes/formattedText/RichTextMenu.tsx create mode 100644 src/client/views/nodes/formattedText/RichTextRules.ts create mode 100644 src/client/views/nodes/formattedText/RichTextSchema.tsx create mode 100644 src/client/views/nodes/formattedText/SummaryView.tsx create mode 100644 src/client/views/nodes/formattedText/TooltipTextMenu.scss create mode 100644 src/client/views/nodes/formattedText/marks_rts.ts create mode 100644 src/client/views/nodes/formattedText/nodes_rts.ts create mode 100644 src/client/views/nodes/formattedText/prosemirrorPatches.js create mode 100644 src/client/views/nodes/formattedText/schema_rts.ts (limited to 'src/client/views/collections') diff --git a/src/client/apis/google_docs/GooglePhotosClientUtils.ts b/src/client/apis/google_docs/GooglePhotosClientUtils.ts index 8c0149a89..e3f801c46 100644 --- a/src/client/apis/google_docs/GooglePhotosClientUtils.ts +++ b/src/client/apis/google_docs/GooglePhotosClientUtils.ts @@ -10,7 +10,7 @@ import { MediaItem, NewMediaItemResult } from "../../../server/apis/google/Share import { Utils } from "../../../Utils"; import { Docs, DocumentOptions } from "../../documents/Documents"; import { Networking } from "../../Network"; -import { FormattedTextBox } from "../../views/nodes/FormattedTextBox"; +import { FormattedTextBox } from "../../views/nodes/formattedText/FormattedTextBox"; import GoogleAuthenticationManager from "../GoogleAuthenticationManager"; import Photos = require('googlephotos'); diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index c64916897..f96e3bcd1 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -1,7 +1,7 @@ import { CollectionView } from "../views/collections/CollectionView"; import { CollectionViewType } from "../views/collections/CollectionView"; import { AudioBox } from "../views/nodes/AudioBox"; -import { FormattedTextBox } from "../views/nodes/FormattedTextBox"; +import { FormattedTextBox } from "../views/nodes/formattedText/FormattedTextBox"; import { ImageBox } from "../views/nodes/ImageBox"; import { KeyValueBox } from "../views/nodes/KeyValueBox"; import { PDFBox } from "../views/nodes/PDFBox"; diff --git a/src/client/util/DashDocCommentView.tsx b/src/client/util/DashDocCommentView.tsx deleted file mode 100644 index e716fac53..000000000 --- a/src/client/util/DashDocCommentView.tsx +++ /dev/null @@ -1,95 +0,0 @@ -import { IReactionDisposer, observable, reaction, runInAction } from "mobx"; -import { baseKeymap, toggleMark } from "prosemirror-commands"; -import { redo, undo } from "prosemirror-history"; -import { keymap } from "prosemirror-keymap"; -import { DOMOutputSpecArray, Fragment, MarkSpec, Node, NodeSpec, Schema, Slice } from "prosemirror-model"; -import { bulletList, listItem, orderedList } from 'prosemirror-schema-list'; -import { EditorState, NodeSelection, Plugin, TextSelection } from "prosemirror-state"; -import { StepMap } from "prosemirror-transform"; -import { EditorView } from "prosemirror-view"; -import * as ReactDOM from 'react-dom'; -import { Doc, DocListCast, Field, HeightSym, WidthSym } from "../../new_fields/Doc"; -import { Id } from "../../new_fields/FieldSymbols"; -import { List } from "../../new_fields/List"; -import { ObjectField } from "../../new_fields/ObjectField"; -import { listSpec } from "../../new_fields/Schema"; -import { SchemaHeaderField } from "../../new_fields/SchemaHeaderField"; -import { ComputedField } from "../../new_fields/ScriptField"; -import { BoolCast, Cast, NumCast, StrCast } from "../../new_fields/Types"; -import { emptyFunction, returnEmptyString, returnFalse, returnOne, Utils, returnZero } from "../../Utils"; -import { DocServer } from "../DocServer"; - -import React = require("react"); - -import { schema } from "./schema_rts"; - -interface IDashDocCommentView { - node: any; - view: any; - getPos: any; -} - -export class DashDocCommentView extends React.Component{ - constructor(props: IDashDocCommentView) { - super(props); - } - - targetNode = () => { // search forward in the prosemirror doc for the attached dashDocNode that is the target of the comment anchor - for (let i = this.props.getPos() + 1; i < this.props.view.state.doc.content.size; i++) { - const m = this.props.view.state.doc.nodeAt(i); - if (m && m.type === this.props.view.state.schema.nodes.dashDoc && m.attrs.docid === this.props.node.attrs.docid) { - return { node: m, pos: i, hidden: m.attrs.hidden } as { node: any, pos: number, hidden: boolean }; - } - } - const dashDoc = this.props.view.state.schema.nodes.dashDoc.create({ width: 75, height: 35, title: "dashDoc", docid: this.props.node.attrs.docid, float: "right" }); - this.props.view.dispatch(this.props.view.state.tr.insert(this.props.getPos() + 1, dashDoc)); - setTimeout(() => { try { this.props.view.dispatch(this.props.view.state.tr.setSelection(TextSelection.create(this.props.view.state.tr.doc, this.props.getPos() + 2))); } catch (e) { } }, 0); - return undefined; - } - - onPointerDownCollapse = (e: any) => e.stopPropagation(); - - onPointerUpCollapse = (e: any) => { - const target = this.targetNode(); - if (target) { - const expand = target.hidden; - const tr = this.props.view.state.tr.setNodeMarkup(target.pos, undefined, { ...target.node.attrs, hidden: target.node.attrs.hidden ? false : true }); - this.props.view.dispatch(tr.setSelection(TextSelection.create(tr.doc, this.props.getPos() + (expand ? 2 : 1)))); // update the attrs - setTimeout(() => { - expand && DocServer.GetRefField(this.props.node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowHighlight(dashDoc)); - try { this.props.view.dispatch(this.props.view.state.tr.setSelection(TextSelection.create(this.props.view.state.tr.doc, this.props.getPos() + (expand ? 2 : 1)))); } catch (e) { } - }, 0); - } - e.stopPropagation(); - } - - onPointerEnterCollapse = (e: any) => { - DocServer.GetRefField(this.props.node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowHighlight(dashDoc, false)); - e.preventDefault(); - e.stopPropagation(); - } - - onPointerLeaveCollapse = (e: any) => { - DocServer.GetRefField(this.props.node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowUnhighlight()); - e.preventDefault(); - e.stopPropagation(); - } - - render() { - - const collapsedId = "DashDocCommentView-" + this.props.node.attrs.docid; - - return ( - - - - ); - } -} \ No newline at end of file diff --git a/src/client/util/DashDocView.tsx b/src/client/util/DashDocView.tsx deleted file mode 100644 index 39809187f..000000000 --- a/src/client/util/DashDocView.tsx +++ /dev/null @@ -1,269 +0,0 @@ -import { IReactionDisposer, reaction } from "mobx"; -import { NodeSelection } from "prosemirror-state"; -import { Doc, HeightSym, WidthSym } from "../../new_fields/Doc"; -import { Id } from "../../new_fields/FieldSymbols"; -import { ObjectField } from "../../new_fields/ObjectField"; -import { ComputedField } from "../../new_fields/ScriptField"; -import { BoolCast, Cast, NumCast, StrCast } from "../../new_fields/Types"; -import { emptyFunction, returnEmptyString, returnFalse, Utils, returnZero } from "../../Utils"; -import { DocServer } from "../DocServer"; -import { Docs } from "../documents/Documents"; -import { DocumentView } from "../views/nodes/DocumentView"; -import { FormattedTextBox } from "../views/nodes/FormattedTextBox"; -import { Transform } from "./Transform"; -import React = require("react"); - -interface IDashDocView { - node: any; - view: any; - getPos: any; - tbox?: FormattedTextBox; - self: any; -} - -export class DashDocView extends React.Component { - - _dashDoc: Doc | undefined; - _reactionDisposer: IReactionDisposer | undefined; - _renderDisposer: IReactionDisposer | undefined; - _textBox: FormattedTextBox; - _finalLayout: any; - _resolvedDataDoc: any; - - - // constructor(node: any, view: any, getPos: any, tbox: FormattedTextBox) { - - constructor(props: IDashDocView) { - super(props); - - const node = this.props.node; - this._textBox = this.props.tbox as FormattedTextBox; - - const alias = node.attrs.alias; - const docid = node.attrs.docid || this._textBox.props.Document[Id]; - - DocServer.GetRefField(docid + alias).then(async dashDoc => { - if (!(dashDoc instanceof Doc)) { - alias && DocServer.GetRefField(docid).then(async dashDocBase => { - if (dashDocBase instanceof Doc) { - const aliasedDoc = Doc.MakeAlias(dashDocBase, docid + alias); - aliasedDoc.layoutKey = "layout"; - node.attrs.fieldKey && DocumentView.makeCustomViewClicked(aliasedDoc, Docs.Create.StackingDocument, node.attrs.fieldKey, undefined); - this._dashDoc = aliasedDoc; - // self.doRender(aliasedDoc, removeDoc, node, view, getPos); - } - }); - } else { - this._dashDoc = dashDoc; - // self.doRender(dashDoc, removeDoc, node, view, getPos); - } - }); - - this.onPointerLeave = this.onPointerLeave.bind(this); - this.onPointerEnter = this.onPointerEnter.bind(this); - this.onKeyDown = this.onKeyDown.bind(this); - this.onKeyPress = this.onKeyPress.bind(this); - this.onKeyUp = this.onKeyUp.bind(this); - this.onWheel = this.onWheel.bind(this); - } - /* #region Internal functions */ - - removeDoc = () => { - const view = this.props.view; - const pos = this.props.getPos(); - const ns = new NodeSelection(view.state.doc.resolve(pos)); - view.dispatch(view.state.tr.setSelection(ns).deleteSelection()); - return true; - } - - getDocTransform = () => { - const outerElement = document.getElementById('dash-document-view-outer') as HTMLElement; - const { scale, translateX, translateY } = Utils.GetScreenTransform(outerElement); - return new Transform(-translateX, -translateY, 1).scale(1 / this.contentScaling() / scale); - } - contentScaling = () => NumCast(this._dashDoc!._nativeWidth) > 0 ? this._dashDoc![WidthSym]() / NumCast(this._dashDoc!._nativeWidth) : 1; - - outerFocus = (target: Doc) => this._textBox.props.focus(this._textBox.props.Document); // ideally, this would scroll to show the focus target - - onKeyPress = (e: any) => { - e.stopPropagation(); - } - onWheel = (e: any) => { - e.preventDefault(); - } - onKeyUp = (e: any) => { - e.stopPropagation(); - } - onKeyDown = (e: any) => { - e.stopPropagation(); - if (e.key === "Tab" || e.key === "Enter") { - e.preventDefault(); - } - } - onPointerLeave = () => { - const ele = document.getElementById("DashDocCommentView-" + this.props.node.attrs.docid); - if (ele) { - (ele as HTMLDivElement).style.backgroundColor = ""; - } - } - onPointerEnter = () => { - const ele = document.getElementById("DashDocCommentView-" + this.props.node.attrs.docid); - if (ele) { - (ele as HTMLDivElement).style.backgroundColor = "orange"; - } - } - /*endregion*/ - - componentWillMount = () => { - this._reactionDisposer?.(); - } - - componentDidUpdate = () => { - - this._renderDisposer?.(); - this._renderDisposer = reaction(() => { - - const dashDoc = this._dashDoc as Doc; - const dashLayoutDoc = Doc.Layout(dashDoc); - const finalLayout = this.props.node.attrs.docid ? dashDoc : Doc.expandTemplateLayout(dashLayoutDoc, dashDoc, this.props.node.attrs.fieldKey); - - if (finalLayout) { - if (!Doc.AreProtosEqual(finalLayout, dashDoc)) { - finalLayout.rootDocument = dashDoc.aliasOf; - } - const layoutKey = StrCast(finalLayout.layoutKey); - const finalKey = layoutKey && StrCast(finalLayout[layoutKey]).split("'")?.[1]; - if (finalLayout !== dashDoc && finalKey) { - const finalLayoutField = finalLayout[finalKey]; - if (finalLayoutField instanceof ObjectField) { - finalLayout[finalKey + "-textTemplate"] = ComputedField.MakeFunction(`copyField(this.${finalKey})`, { this: Doc.name }); - } - } - this._finalLayout = finalLayout; - this._resolvedDataDoc = Cast(finalLayout.resolvedDataDoc, Doc, null); - return { finalLayout, resolvedDataDoc: Cast(finalLayout.resolvedDataDoc, Doc, null) }; - } - }, - (res) => { - - if (res) { - this._finalLayout = res.finalLayout; - this._resolvedDataDoc = res.resolvedDataDoc; - - this.forceUpdate(); // doReactRender(res.finalLayout, res.resolvedDataDoc), - } - }, - { fireImmediately: true }); - - } - - render() { - // doRender(dashDoc: Doc, removeDoc: any, node: any, view: any, getPos: any) { - - const node = this.props.node; - const view = this.props.view; - const getPos = this.props.getPos; - - const spanStyle = { - width: this.props.node.props.width, - height: this.props.node.props.height, - position: 'absolute' as 'absolute', - display: 'inline-block' - }; - - - const outerStyle = { - position: "relative" as "relative", - textIndent: "0", - border: "1px solid " + StrCast(this._textBox.Document.color, (Cast(Doc.UserDoc().activeWorkspace, Doc, null).darkScheme ? "dimGray" : "lightGray")), - width: this.props.node.props.width, - height: this.props.node.props.height, - display: this.props.node.props.hidden ? "none" : "inline-block", - float: this.props.node.props.float, - }; - - const dashDoc = this._dashDoc as Doc; - const self = this; - const dashLayoutDoc = Doc.Layout(dashDoc); - const finalLayout = node.attrs.docid ? dashDoc : Doc.expandTemplateLayout(dashLayoutDoc, dashDoc, node.attrs.fieldKey); - const resolvedDataDoc = this._resolvedDataDoc; //Added this - - if (!finalLayout) { - return
; - // if (!finalLayout) setTimeout(() => self.doRender(dashDoc, removeDoc, node, view, getPos), 0); - } else { - - this._reactionDisposer?.(); - this._reactionDisposer = reaction(() => - ({ - dim: [finalLayout[WidthSym](), finalLayout[HeightSym]()], - color: finalLayout.color - }), - ({ dim, color }) => { - spanStyle.width = outerStyle.width = Math.max(20, dim[0]) + "px"; - spanStyle.height = outerStyle.height = Math.max(20, dim[1]) + "px"; - outerStyle.border = "1px solid " + StrCast(finalLayout.color, (Cast(Doc.UserDoc().activeWorkspace, Doc, null).darkScheme ? "dimGray" : "lightGray")); - }, { fireImmediately: true }); - - if (node.attrs.width !== dashDoc._width + "px" || node.attrs.height !== dashDoc._height + "px") { - try { // bcz: an exception will be thrown if two aliases are open at the same time when a doc view comment is made - view.dispatch(view.state.tr.setNodeMarkup(getPos(), null, { ...node.attrs, width: dashDoc._width + "px", height: dashDoc._height + "px" })); - } catch (e) { - console.log(e); - } - } - - - //const doReactRender = (finalLayout: Doc, resolvedDataDoc: Doc) => { - // ReactDOM.unmountComponentAtNode(this._dashSpan); - - return ( - -
- - -
-
- ); - - } - } - -} \ No newline at end of file diff --git a/src/client/util/DashFieldView.scss b/src/client/util/DashFieldView.scss deleted file mode 100644 index 35ff9c1e6..000000000 --- a/src/client/util/DashFieldView.scss +++ /dev/null @@ -1,36 +0,0 @@ -.dashFieldView { - position: relative; - display: inline-block; - - .dashFieldView-enumerables { - width: 10px; - height: 10px; - position: relative; - display: inline-block; - background: dimGray; - } - .dashFieldView-fieldCheck { - min-width: 12px; - position: relative; - display: inline-block; - background-color: rgba(155, 155, 155, 0.24); - } - .dashFieldView-labelSpan { - position: relative; - display: inline-block; - font-size: small; - } - .dashFieldView-fieldSpan { - min-width: 20px; - margin-left: 2px; - margin-right: 5px; - position: relative; - display: inline-block; - background-color: rgba(155, 155, 155, 0.24); - span { - min-width: 100%; - display: inline-block; - } - } -} - \ No newline at end of file diff --git a/src/client/util/DashFieldView.tsx b/src/client/util/DashFieldView.tsx deleted file mode 100644 index cf09e0132..000000000 --- a/src/client/util/DashFieldView.tsx +++ /dev/null @@ -1,211 +0,0 @@ -import { IReactionDisposer, observable, runInAction, computed, action } from "mobx"; -import { Doc, DocListCast, Field } from "../../new_fields/Doc"; -import { List } from "../../new_fields/List"; -import { listSpec } from "../../new_fields/Schema"; -import { SchemaHeaderField } from "../../new_fields/SchemaHeaderField"; -import { ComputedField } from "../../new_fields/ScriptField"; -import { Cast, StrCast } from "../../new_fields/Types"; -import { DocServer } from "../DocServer"; -import { CollectionViewType } from "../views/collections/CollectionView"; -import { FormattedTextBox } from "../views/nodes/FormattedTextBox"; -import React = require("react"); -import * as ReactDOM from 'react-dom'; -import "./DashFieldView.scss"; -import { observer } from "mobx-react"; - - -export class DashFieldView { - _fieldWrapper: HTMLDivElement; // container for label and value - - constructor(node: any, view: any, getPos: any, tbox: FormattedTextBox) { - this._fieldWrapper = document.createElement("div"); - this._fieldWrapper.style.width = node.attrs.width; - this._fieldWrapper.style.height = node.attrs.height; - this._fieldWrapper.style.fontWeight = "bold"; - this._fieldWrapper.style.position = "relative"; - this._fieldWrapper.style.display = "inline-block"; - this._fieldWrapper.onkeypress = function (e: any) { e.stopPropagation(); }; - this._fieldWrapper.onkeydown = function (e: any) { e.stopPropagation(); }; - this._fieldWrapper.onkeyup = function (e: any) { e.stopPropagation(); }; - this._fieldWrapper.onmousedown = function (e: any) { e.stopPropagation(); }; - - ReactDOM.render(, this._fieldWrapper); - (this as any).dom = this._fieldWrapper; - } - destroy() { - ReactDOM.unmountComponentAtNode(this._fieldWrapper); - } - selectNode() { } - -} -interface IDashFieldViewInternal { - fieldKey: string; - docid: string; - view: any; - getPos: any; - tbox: FormattedTextBox; - width: number; - height: number; -} - -@observer -export class DashFieldViewInternal extends React.Component { - _reactionDisposer: IReactionDisposer | undefined; - _textBoxDoc: Doc; - _fieldKey: string; - _fieldStringRef = React.createRef(); - @observable _showEnumerables: boolean = false; - @observable _dashDoc: Doc | undefined; - - constructor(props: IDashFieldViewInternal) { - super(props); - this._fieldKey = this.props.fieldKey; - this._textBoxDoc = this.props.tbox.props.Document; - - if (this.props.docid) { - DocServer.GetRefField(this.props.docid). - then(action(async dashDoc => dashDoc instanceof Doc && (this._dashDoc = dashDoc))); - } else { - this._dashDoc = this.props.tbox.props.DataDoc || this.props.tbox.dataDoc; - } - } - componentWillUnmount() { - this._reactionDisposer?.(); - } - - // set the display of the field's value (checkbox for booleans, span of text for strings) - @computed get fieldValueContent() { - if (this._dashDoc) { - const dashVal = this._dashDoc[this._fieldKey]; - const fval = StrCast(dashVal).startsWith(":=") || dashVal === "" ? Doc.Layout(this._textBoxDoc)[this._fieldKey] : dashVal; - const boolVal = Cast(fval, "boolean", null); - const strVal = Field.toString(fval as Field) || ""; - - // field value is a boolean, so use a checkbox or similar widget to display it - if (boolVal === true || boolVal === false) { - return this._dashDoc![this._fieldKey] = e.target.checked} - />; - } - else // field value is a string, so display it as an editable span - { - // bcz: this is unfortunate, but since this React component is nested within a non-React text box (prosemirror), we can't - // use React events. Essentially, React events occur after native events have been processed, so corresponding React events - // will never fire because Prosemirror has handled the native events. So we add listeners for native events here. - return { - r?.addEventListener("keydown", e => this.fieldSpanKeyDown(e, r)); - r?.addEventListener("blur", e => r && this.updateText(r.textContent!, false)); - r?.addEventListener("pointerdown", action((e) => this._showEnumerables = true)); - }}> - {strVal} - - } - } - } - - // we need to handle all key events on the input span or else they will propagate to prosemirror. - @action - fieldSpanKeyDown = (e: KeyboardEvent, span: HTMLSpanElement) => { - if (e.key === "Enter") { // handle the enter key by "submitting" the current text to Dash's database. - e.ctrlKey && Doc.addFieldEnumerations(this._textBoxDoc, this._fieldKey, [{ title: span.textContent! }]); - this.updateText(span.textContent!, true); - e.preventDefault();// prevent default to avoid a newline from being generated and wiping out this field view - } - if (e.key === "a" && (e.ctrlKey || e.metaKey)) { // handle ctrl-A to select all the text within the span - if (window.getSelection) { - const range = document.createRange(); - range.selectNodeContents(span); - window.getSelection()!.removeAllRanges(); - window.getSelection()!.addRange(range); - } - e.preventDefault(); //prevent default so that all the text in the prosemirror text box isn't selected - } - e.stopPropagation(); // we need to handle all events or else they will propagate to prosemirror. - } - - @action - updateText = (nodeText: string, forceMatch: boolean) => { - this._showEnumerables = false; - if (nodeText) { - const newText = nodeText.startsWith(":=") || nodeText.startsWith("=:=") ? ":=-computed-" : nodeText; - - // look for a document whose id === the fieldKey being displayed. If there's a match, then that document - // holds the different enumerated values for the field in the titles of its collected documents. - // if there's a partial match from the start of the input text, complete the text --- TODO: make this an auto suggest box and select from a drop down. - DocServer.GetRefField(this._fieldKey).then(options => { - let modText = ""; - (options instanceof Doc) && DocListCast(options.data).forEach(opt => (forceMatch ? StrCast(opt.title).startsWith(newText) : StrCast(opt.title) === newText) && (modText = StrCast(opt.title))); - if (modText) { - // elementfieldSpan.innerHTML = this._dashDoc![this._fieldKey as string] = modText; - Doc.addFieldEnumerations(this._textBoxDoc, this._fieldKey, []); - this._dashDoc![this._fieldKey] = modText; - } // if the text starts with a ':=' then treat it as an expression by making a computed field from its value storing it in the key - else if (nodeText.startsWith(":=")) { - this._dashDoc![this._fieldKey] = ComputedField.MakeFunction(nodeText.substring(2)); - } else if (nodeText.startsWith("=:=")) { - Doc.Layout(this._textBoxDoc)[this._fieldKey] = ComputedField.MakeFunction(nodeText.substring(3)); - } else { - this._dashDoc![this._fieldKey] = newText; - } - }); - } - } - - // display a collection of all the enumerable values for this field - onPointerDownEnumerables = async (e: any) => { - e.stopPropagation(); - const collview = await Doc.addFieldEnumerations(this._textBoxDoc, this._fieldKey, [{ title: this._fieldKey }]); - collview instanceof Doc && this.props.tbox.props.addDocTab(collview, "onRight"); - } - - - // clicking on the label creates a pivot view collection of all documents - // in the same collection. The pivot field is the fieldKey of this label - onPointerDownLabelSpan = (e: any) => { - e.stopPropagation(); - let container = this.props.tbox.props.ContainingCollectionView; - while (container?.props.Document.isTemplateForField || container?.props.Document.isTemplateDoc) { - container = container.props.ContainingCollectionView; - } - if (container) { - const alias = Doc.MakeAlias(container.props.Document); - alias.viewType = CollectionViewType.Time; - let list = Cast(alias.schemaColumns, listSpec(SchemaHeaderField)); - if (!list) { - alias.schemaColumns = list = new List(); - } - list.map(c => c.heading).indexOf(this._fieldKey) === -1 && list.push(new SchemaHeaderField(this._fieldKey, "#f1efeb")); - list.map(c => c.heading).indexOf("text") === -1 && list.push(new SchemaHeaderField("text", "#f1efeb")); - alias._pivotField = this._fieldKey; - this.props.tbox.props.addDocTab(alias, "onRight"); - } - } - - render() { - return
- - {this._fieldKey} - - -
- {this.fieldValueContent} -
- - {!this._showEnumerables ? (null) :
} - -
; - } -} \ No newline at end of file diff --git a/src/client/util/FootnoteView.tsx b/src/client/util/FootnoteView.tsx deleted file mode 100644 index ee21fb765..000000000 --- a/src/client/util/FootnoteView.tsx +++ /dev/null @@ -1,162 +0,0 @@ -import { EditorView } from "prosemirror-view"; -import { EditorState } from "prosemirror-state"; -import { keymap } from "prosemirror-keymap"; -import { baseKeymap, toggleMark } from "prosemirror-commands"; -import { schema } from "./schema_rts"; -import { redo, undo } from "prosemirror-history"; -import { StepMap } from "prosemirror-transform"; - -import React = require("react"); - -interface IFootnoteView { - innerView: any; - outerView: any; - node: any; - dom: any; - getPos: any; -} - -export class FootnoteView extends React.Component { - _innerView: any; - _node: any; - - constructor(props: IFootnoteView) { - super(props); - const node = this.props.node; - const outerView = this.props.outerView; - const _innerView = this.props.innerView; - const getPos = this.props.getPos; - } - - selectNode() { - const attrs = { ...this.props.node.attrs }; - attrs.visibility = true; - this.dom.classList.add("ProseMirror-selectednode"); - if (!this.props.innerView) this.open(); - } - - deselectNode() { - const attrs = { ...this.props.node.attrs }; - attrs.visibility = false; - this.dom.classList.remove("ProseMirror-selectednode"); - if (this.props.innerView) this.close(); - } - open() { - // Append a tooltip to the outer node - const tooltip = this.dom.appendChild(document.createElement("div")); - tooltip.className = "footnote-tooltip"; - // And put a sub-ProseMirror into that - this.props.innerView.defineProperty(new EditorView(tooltip, { - // You can use any node as an editor document - state: EditorState.create({ - doc: this.props.node, - plugins: [keymap(baseKeymap), - keymap({ - "Mod-z": () => undo(this.props.outerView.state, this.props.outerView.dispatch), - "Mod-y": () => redo(this.props.outerView.state, this.props.outerView.dispatch), - "Mod-b": toggleMark(schema.marks.strong) - }), - // new Plugin({ - // view(newView) { - // // TODO -- make this work with RichTextMenu - // // return FormattedTextBox.getToolTip(newView); - // } - // }) - ], - - }), - // This is the magic part - dispatchTransaction: this.dispatchInner.bind(this), - handleDOMEvents: { - pointerdown: ((view: any, e: PointerEvent) => { - // Kludge to prevent issues due to the fact that the whole - // footnote is node-selected (and thus DOM-selected) when - // the parent editor is focused. - e.stopPropagation(); - document.addEventListener("pointerup", this.ignore, true); - if (this.props.outerView.hasFocus()) this.props.innerView.focus(); - }) as any - } - })); - setTimeout(() => this.props.innerView && this.props.innerView.docView.setSelection(0, 0, this.props.innerView.root, true), 0); - } - - ignore = (e: PointerEvent) => { - e.stopPropagation(); - document.removeEventListener("pointerup", this.ignore, true); - } - - dispatchInner(tr: any) { - const { state, transactions } = this.props.innerView.state.applyTransaction(tr); - this.props.innerView.updateState(state); - - if (!tr.getMeta("fromOutside")) { - const outerTr = this.props.outerView.state.tr, offsetMap = StepMap.offset(this.props.getPos() + 1); - for (const transaction of transactions) { - const steps = transaction.steps; - for (const step of steps) { - outerTr.step(step.map(offsetMap)); - } - } - if (outerTr.docChanged) this.props.outerView.dispatch(outerTr); - } - } - update(node: any) { - if (!node.sameMarkup(this.props.node)) return false; - this._node = node; //not sure - if (this.props.innerView) { - const state = this.props.innerView.state; - const start = node.content.findDiffStart(state.doc.content); - if (start !== null) { - let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content); - const overlap = start - Math.min(endA, endB); - if (overlap > 0) { endA += overlap; endB += overlap; } - this.props.innerView.dispatch( - state.tr - .replace(start, endB, node.slice(start, endA)) - .setMeta("fromOutside", true)); - } - } - return true; - } - onPointerUp = (e: any) => { - this.toggle(e); - } - - toggle = (e: any) => { - e.preventDefault(); - if (this.props.innerView) this.close(); - else { - this.open(); - } - } - - close() { - this.props.innerView && this.props.innerView.destroy(); - this._innerView = null; - this.dom.textContent = ""; - } - - destroy() { - if (this.props.innerView) this.close(); - } - - stopEvent(event: any) { - return this.props.innerView && this.props.innerView.dom.contains(event.target); - } - - ignoreMutation() { return true; } - - - render() { - return ( -
-
- -
-
- ); - } -} diff --git a/src/client/util/ImageResizeView.tsx b/src/client/util/ImageResizeView.tsx deleted file mode 100644 index 4f66475fb..000000000 --- a/src/client/util/ImageResizeView.tsx +++ /dev/null @@ -1,138 +0,0 @@ -import { NodeSelection } from "prosemirror-state"; -import { Doc } from "../../new_fields/Doc"; -import { DocServer } from "../DocServer"; -import { DocumentManager } from "./DocumentManager"; -import React = require("react"); - -import { schema } from "./schema_rts"; - -interface IImageResizeView { - node: any; - view: any; - getPos: any; - addDocTab: any; -} - -export class ImageResizeView extends React.Component { - constructor(props: IImageResizeView) { - super(props); - } - - onClickImg = (e: any) => { - e.stopPropagation(); - e.preventDefault(); - if (this.props.view.state.selection.node && this.props.view.state.selection.node.type !== this.props.view.state.schema.nodes.image) { - this.props.view.dispatch(this.props.view.state.tr.setSelection(new NodeSelection(this.props.view.state.doc.resolve(this.props.view.state.selection.from - 2)))); - } - } - - onPointerDownImg = (e: any) => { - if (e.ctrlKey) { - e.preventDefault(); - e.stopPropagation(); - DocServer.GetRefField(this.props.node.attrs.docid).then(async linkDoc => - (linkDoc instanceof Doc) && - DocumentManager.Instance.FollowLink(linkDoc, this.props.view.state.schema.Document, - document => this.props.addDocTab(document, this.props.node.attrs.location ? this.props.node.attrs.location : "inTab"), false)); - } - } - - onPointerDownHandle = (e: any) => { - e.preventDefault(); - e.stopPropagation(); - const elementImage = document.getElementById("imageId") as HTMLElement; - const wid = Number(getComputedStyle(elementImage).width.replace(/px/, "")); - const hgt = Number(getComputedStyle(elementImage).height.replace(/px/, "")); - const startX = e.pageX; - const startWidth = parseFloat(this.props.node.attrs.width); - - const onpointermove = (e: any) => { - const elementOuter = document.getElementById("outerId") as HTMLElement; - - const currentX = e.pageX; - const diffInPx = currentX - startX; - elementOuter.style.width = `${startWidth + diffInPx}`; - elementOuter.style.height = `${(startWidth + diffInPx) * hgt / wid}`; - }; - - const onpointerup = () => { - document.removeEventListener("pointermove", onpointermove); - document.removeEventListener("pointerup", onpointerup); - const pos = this.props.view.state.selection.from; - const elementOuter = document.getElementById("outerId") as HTMLElement; - this.props.view.dispatch(this.props.view.state.tr.setNodeMarkup(this.props.getPos(), null, { ...this.props.node.attrs, width: elementOuter.style.width, height: elementOuter.style.height })); - this.props.view.dispatch(this.props.view.state.tr.setSelection(new NodeSelection(this.props.view.state.doc.resolve(pos)))); - }; - - document.addEventListener("pointermove", onpointermove); - document.addEventListener("pointerup", onpointerup); - } - - selectNode() { - const elementImage = document.getElementById("imageId") as HTMLElement; - const elementHandle = document.getElementById("handleId") as HTMLElement; - - elementImage.classList.add("ProseMirror-selectednode"); - elementHandle.style.display = ""; - } - - deselectNode() { - const elementImage = document.getElementById("imageId") as HTMLElement; - const elementHandle = document.getElementById("handleId") as HTMLElement; - - elementImage.classList.remove("ProseMirror-selectednode"); - elementHandle.style.display = "none"; - } - - - render() { - - const outerStyle = { - width: this.props.node.attrs.width, - height: this.props.node.attrs.height, - display: "inline-block", - overflow: "hidden", - float: this.props.node.attrs.float - }; - - const imageStyle = { - width: "100%", - }; - - const handleStyle = { - position: "absolute", - width: "20px", - heiht: "20px", - backgroundColor: "blue", - borderRadius: "15px", - display: "none", - bottom: "-10px", - right: "-10px" - - }; - - - - return ( -
- - - - - -
- ); - } -} \ No newline at end of file diff --git a/src/client/util/ParagraphNodeSpec.ts b/src/client/util/ParagraphNodeSpec.ts deleted file mode 100644 index 0a3b68217..000000000 --- a/src/client/util/ParagraphNodeSpec.ts +++ /dev/null @@ -1,143 +0,0 @@ -import clamp from './clamp'; -import convertToCSSPTValue from './convertToCSSPTValue'; -import toCSSLineSpacing from './toCSSLineSpacing'; -import { Node, DOMOutputSpec } from 'prosemirror-model'; - -//import type { NodeSpec } from './Types'; -type NodeSpec = { - attrs?: { [key: string]: any }, - content?: string, - draggable?: boolean, - group?: string, - inline?: boolean, - name?: string, - parseDOM?: Array, - toDOM?: (node: any) => DOMOutputSpec, -}; - -// This assumes that every 36pt maps to one indent level. -export const INDENT_MARGIN_PT_SIZE = 36; -export const MIN_INDENT_LEVEL = 0; -export const MAX_INDENT_LEVEL = 7; -export const ATTRIBUTE_INDENT = 'data-indent'; - -export const EMPTY_CSS_VALUE = new Set(['', '0%', '0pt', '0px']); - -const ALIGN_PATTERN = /(left|right|center|justify)/; - -// https://github.com/ProseMirror/prosemirror-schema-basic/blob/master/src/schema-basic.js -// :: NodeSpec A plain paragraph textblock. Represented in the DOM -// as a `

` element. -const ParagraphNodeSpec: NodeSpec = { - attrs: { - align: { default: null }, - color: { default: null }, - id: { default: null }, - indent: { default: null }, - inset: { default: null }, - lineSpacing: { default: null }, - // TODO: Add UI to let user edit / clear padding. - paddingBottom: { default: null }, - // TODO: Add UI to let user edit / clear padding. - paddingTop: { default: null }, - }, - content: 'inline*', - group: 'block', - parseDOM: [{ tag: 'p', getAttrs }], - toDOM, -}; - -function getAttrs(dom: HTMLElement): Object { - const { - lineHeight, - textAlign, - marginLeft, - paddingTop, - paddingBottom, - } = dom.style; - - let align = dom.getAttribute('align') || textAlign || ''; - align = ALIGN_PATTERN.test(align) ? align : ""; - - let indent = parseInt(dom.getAttribute(ATTRIBUTE_INDENT) || "", 10); - - if (!indent && marginLeft) { - indent = convertMarginLeftToIndentValue(marginLeft); - } - - indent = indent || MIN_INDENT_LEVEL; - - const lineSpacing = lineHeight ? toCSSLineSpacing(lineHeight) : null; - - const id = dom.getAttribute('id') || ''; - return { align, indent, lineSpacing, paddingTop, paddingBottom, id }; -} - -function toDOM(node: Node): DOMOutputSpec { - const { - align, - indent, - inset, - lineSpacing, - paddingTop, - paddingBottom, - id, - } = node.attrs; - const attrs: { [key: string]: any } | null = {}; - - let style = ''; - if (align && align !== 'left') { - style += `text-align: ${align};`; - } - - if (lineSpacing) { - const cssLineSpacing = toCSSLineSpacing(lineSpacing); - style += - `line-height: ${cssLineSpacing};` + - // This creates the local css variable `--czi-content-line-height` - // that its children may apply. - `--czi-content-line-height: ${cssLineSpacing}`; - } - - if (paddingTop && !EMPTY_CSS_VALUE.has(paddingTop)) { - style += `padding-top: ${paddingTop};`; - } - - if (paddingBottom && !EMPTY_CSS_VALUE.has(paddingBottom)) { - style += `padding-bottom: ${paddingBottom};`; - } - - if (indent) { - style += `text-indent: ${indent}; padding-left: ${indent < 0 ? -indent : undefined};`; - } - - if (inset) { - style += `margin-left: ${inset}; margin-right: ${inset};`; - } - - style && (attrs.style = style); - - if (indent) { - attrs[ATTRIBUTE_INDENT] = String(indent); - } - - if (id) { - attrs.id = id; - } - - return ['p', attrs, 0]; -} - -export const toParagraphDOM = toDOM; -export const getParagraphNodeAttrs = getAttrs; - -export function convertMarginLeftToIndentValue(marginLeft: string): number { - const ptValue = convertToCSSPTValue(marginLeft); - return clamp( - MIN_INDENT_LEVEL, - Math.floor(ptValue / INDENT_MARGIN_PT_SIZE), - MAX_INDENT_LEVEL - ); -} - -export default ParagraphNodeSpec; \ No newline at end of file diff --git a/src/client/util/ProsemirrorExampleTransfer.ts b/src/client/util/ProsemirrorExampleTransfer.ts deleted file mode 100644 index 356f20ce6..000000000 --- a/src/client/util/ProsemirrorExampleTransfer.ts +++ /dev/null @@ -1,241 +0,0 @@ -import { chainCommands, exitCode, joinDown, joinUp, lift, selectParentNode, setBlockType, splitBlockKeepMarks, toggleMark, wrapIn } from "prosemirror-commands"; -import { redo, undo } from "prosemirror-history"; -import { undoInputRule } from "prosemirror-inputrules"; -import { Schema } from "prosemirror-model"; -import { liftListItem, sinkListItem } from "./prosemirrorPatches.js"; -import { splitListItem, wrapInList, } from "prosemirror-schema-list"; -import { EditorState, Transaction, TextSelection } from "prosemirror-state"; -import { SelectionManager } from "./SelectionManager"; -import { Docs } from "../documents/Documents"; -import { NumCast, BoolCast, Cast, StrCast } from "../../new_fields/Types"; -import { Doc } from "../../new_fields/Doc"; -import { FormattedTextBox } from "../views/nodes/FormattedTextBox"; -import { Id } from "../../new_fields/FieldSymbols"; - -const mac = typeof navigator !== "undefined" ? /Mac/.test(navigator.platform) : false; - -export type KeyMap = { [key: string]: any }; - -export let updateBullets = (tx2: Transaction, schema: Schema, mapStyle?: string) => { - let fontSize: number | undefined = undefined; - tx2.doc.descendants((node: any, offset: any, index: any) => { - if (node.type === schema.nodes.ordered_list || node.type === schema.nodes.list_item) { - const path = (tx2.doc.resolve(offset) as any).path; - let depth = Array.from(path).reduce((p: number, c: any) => p + (c.hasOwnProperty("type") && c.type === schema.nodes.ordered_list ? 1 : 0), 0); - if (node.type === schema.nodes.ordered_list) depth++; - fontSize = depth === 1 && node.attrs.setFontSize ? Number(node.attrs.setFontSize) : fontSize; - const fsize = fontSize && node.type === schema.nodes.ordered_list ? Math.max(6, fontSize - (depth - 1) * 4) : undefined; - tx2.setNodeMarkup(offset, node.type, { ...node.attrs, mapStyle: mapStyle ? mapStyle : node.attrs.mapStyle, bulletStyle: depth, inheritedFontSize: fsize }, node.marks); - } - }); - return tx2; -}; -export default function buildKeymap>(schema: S, props: any, mapKeys?: KeyMap): KeyMap { - const keys: { [key: string]: any } = {}; - - function bind(key: string, cmd: any) { - if (mapKeys) { - const mapped = mapKeys[key]; - if (mapped === false) return; - if (mapped) key = mapped; - } - keys[key] = cmd; - } - - bind("Mod-z", undo); - bind("Shift-Mod-z", redo); - bind("Backspace", undoInputRule); - - !mac && bind("Mod-y", redo); - - bind("Alt-ArrowUp", joinUp); - bind("Alt-ArrowDown", joinDown); - bind("Mod-BracketLeft", lift); - bind("Escape", (state: EditorState, dispatch: (tx: Transaction) => void) => { - dispatch(state.tr.setSelection(TextSelection.create(state.doc, state.selection.from, state.selection.from))); - (document.activeElement as any).blur?.(); - SelectionManager.DeselectAll(); - }); - - bind("Mod-b", toggleMark(schema.marks.strong)); - bind("Mod-B", toggleMark(schema.marks.strong)); - - bind("Mod-e", toggleMark(schema.marks.em)); - bind("Mod-E", toggleMark(schema.marks.em)); - - bind("Mod-u", toggleMark(schema.marks.underline)); - bind("Mod-U", toggleMark(schema.marks.underline)); - - bind("Mod-`", toggleMark(schema.marks.code)); - - bind("Ctrl-.", wrapInList(schema.nodes.bullet_list)); - - bind("Ctrl-n", wrapInList(schema.nodes.ordered_list)); - - bind("Ctrl->", wrapIn(schema.nodes.blockquote)); - - // bind("^", (state: EditorState, dispatch: (tx: Transaction) => void) => { - // let newNode = schema.nodes.footnote.create({}); - // if (dispatch && state.selection.from === state.selection.to) { - // let tr = state.tr; - // tr.replaceSelectionWith(newNode); // replace insertion with a footnote. - // dispatch(tr.setSelection(new NodeSelection( // select the footnote node to open its display - // tr.doc.resolve( // get the location of the footnote node by subtracting the nodesize of the footnote from the current insertion point anchor (which will be immediately after the footnote node) - // tr.selection.anchor - tr.selection.$anchor.nodeBefore!.nodeSize)))); - // return true; - // } - // return false; - // }); - - - const cmd = chainCommands(exitCode, (state, dispatch) => { - if (dispatch) { - dispatch(state.tr.replaceSelectionWith(schema.nodes.hard_break.create()).scrollIntoView()); - return true; - } - return false; - }); - bind("Mod-Enter", cmd); - bind("Shift-Enter", cmd); - mac && bind("Ctrl-Enter", cmd); - - - bind("Shift-Ctrl-0", setBlockType(schema.nodes.paragraph)); - - bind("Shift-Ctrl-\\", setBlockType(schema.nodes.code_block)); - - for (let i = 1; i <= 6; i++) { - bind("Shift-Ctrl-" + i, setBlockType(schema.nodes.heading, { level: i })); - } - - const hr = schema.nodes.horizontal_rule; - bind("Mod-_", (state: EditorState, dispatch: (tx: Transaction) => void) => { - dispatch(state.tr.replaceSelectionWith(hr.create()).scrollIntoView()); - return true; - }); - - bind("Tab", (state: EditorState, dispatch: (tx: Transaction) => void) => { - const ref = state.selection; - const range = ref.$from.blockRange(ref.$to); - const marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks()); - if (!sinkListItem(schema.nodes.list_item)(state, (tx2: Transaction) => { - const tx3 = updateBullets(tx2, schema); - marks && tx3.ensureMarks([...marks]); - marks && tx3.setStoredMarks([...marks]); - dispatch(tx3); - })) { // couldn't sink into an existing list, so wrap in a new one - const newstate = state.applyTransaction(state.tr.setSelection(TextSelection.create(state.doc, range!.start, range!.end))); - if (!wrapInList(schema.nodes.ordered_list)(newstate.state, (tx2: Transaction) => { - const tx3 = updateBullets(tx2, schema); - // when promoting to a list, assume list will format things so don't copy the stored marks. - marks && tx3.ensureMarks([...marks]); - marks && tx3.setStoredMarks([...marks]); - dispatch(tx3); - })) { - console.log("bullet promote fail"); - } - } - }); - - bind("Shift-Tab", (state: EditorState, dispatch: (tx: Transaction) => void) => { - const marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks()); - - if (!liftListItem(schema.nodes.list_item)(state.tr, (tx2: Transaction) => { - const tx3 = updateBullets(tx2, schema); - marks && tx3.ensureMarks([...marks]); - marks && tx3.setStoredMarks([...marks]); - dispatch(tx3); - })) { - console.log("bullet demote fail"); - } - }); - bind("Ctrl-Enter", (state: EditorState, dispatch: (tx: Transaction) => void) => { - const layoutDoc = props.Document; - const originalDoc = layoutDoc.rootDocument || layoutDoc; - if (originalDoc instanceof Doc) { - const layoutKey = StrCast(originalDoc.layoutKey); - const newDoc = Docs.Create.TextDocument("", { - layout: Cast(originalDoc.layout, Doc, null) || FormattedTextBox.DefaultLayout, - layoutKey, - _singleLine: BoolCast(originalDoc._singleLine), - x: NumCast(originalDoc.x), y: NumCast(originalDoc.y) + NumCast(originalDoc._height) + 10, _width: NumCast(layoutDoc._width), _height: NumCast(layoutDoc._height) - }); - if (layoutKey !== "layout" && originalDoc[layoutKey] instanceof Doc) { - newDoc[layoutKey] = originalDoc[layoutKey]; - } - FormattedTextBox.SelectOnLoad = newDoc[Id]; - props.addDocument(newDoc); - } - }); - - const splitMetadata = (marks: any, tx: Transaction) => { - marks && tx.ensureMarks(marks.filter((val: any) => val.type !== schema.marks.metadata && val.type !== schema.marks.metadataKey && val.type !== schema.marks.metadataVal)); - marks && tx.setStoredMarks(marks.filter((val: any) => val.type !== schema.marks.metadata && val.type !== schema.marks.metadataKey && val.type !== schema.marks.metadataVal)); - return tx; - }; - const addTextOnRight = (force: boolean) => { - const layoutDoc = props.Document; - const originalDoc = layoutDoc.rootDocument || layoutDoc; - if (force || props.Document._singleLine) { - const layoutKey = StrCast(originalDoc.layoutKey); - const newDoc = Docs.Create.TextDocument("", { - layout: Cast(originalDoc.layout, Doc, null) || FormattedTextBox.DefaultLayout, - layoutKey, - _singleLine: BoolCast(originalDoc._singleLine), - x: NumCast(originalDoc.x) + NumCast(originalDoc._width) + 10, y: NumCast(originalDoc.y), _width: NumCast(layoutDoc._width), _height: NumCast(layoutDoc._height) - }); - if (layoutKey !== "layout" && originalDoc[layoutKey] instanceof Doc) { - newDoc[layoutKey] = originalDoc[layoutKey]; - } - FormattedTextBox.SelectOnLoad = newDoc[Id]; - props.addDocument(newDoc); - return true; - } - return false; - }; - bind("Alt-Enter", (state: EditorState, dispatch: (tx: Transaction>) => void) => { - return addTextOnRight(true); - }); - bind("Enter", (state: EditorState, dispatch: (tx: Transaction>) => void) => { - if (addTextOnRight(false)) return true; - const marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks()); - if (!splitListItem(schema.nodes.list_item)(state, dispatch)) { - if (!splitBlockKeepMarks(state, (tx3: Transaction) => { - splitMetadata(marks, tx3); - if (!liftListItem(schema.nodes.list_item)(tx3, dispatch as ((tx: Transaction>) => void))) { - dispatch(tx3); - } - })) { - return false; - } - } - return true; - }); - bind("Space", (state: EditorState, dispatch: (tx: Transaction) => void) => { - const marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks()); - dispatch(splitMetadata(marks, state.tr)); - return false; - }); - bind(":", (state: EditorState, dispatch: (tx: Transaction) => void) => { - const range = state.selection.$from.blockRange(state.selection.$to, (node: any) => { - return !node.marks || !node.marks.find((m: any) => m.type === schema.marks.metadata); - }); - const path = (state.doc.resolve(state.selection.from - 1) as any).path; - const spaceSeparator = path[path.length - 3].childCount > 1 ? 0 : -1; - const anchor = range!.end - path[path.length - 3].lastChild.nodeSize + spaceSeparator; - if (anchor >= 0) { - const textsel = TextSelection.create(state.doc, anchor, range!.end); - const text = range ? state.doc.textBetween(textsel.from, textsel.to) : ""; - let whitespace = text.length - 1; - for (; whitespace >= 0 && text[whitespace] !== " "; whitespace--) { } - if (text.endsWith(":")) { - dispatch(state.tr.addMark(textsel.from + whitespace + 1, textsel.to, schema.marks.metadata.create() as any). - addMark(textsel.from + whitespace + 1, textsel.to - 2, schema.marks.metadataKey.create() as any)); - } - } - return false; - }); - - - return keys; -} diff --git a/src/client/util/RichTextMenu.scss b/src/client/util/RichTextMenu.scss deleted file mode 100644 index 43cc23ecd..000000000 --- a/src/client/util/RichTextMenu.scss +++ /dev/null @@ -1,121 +0,0 @@ -@import "../views/globalCssVariables"; - -.button-dropdown-wrapper { - position: relative; - - .dropdown-button { - width: 15px; - padding-left: 5px; - padding-right: 5px; - } - - .dropdown-button-combined { - width: 50px; - display: flex; - justify-content: space-between; - - svg:nth-child(2) { - margin-top: 2px; - } - } - - .dropdown { - position: absolute; - top: 35px; - left: 0; - background-color: #323232; - color: $light-color-secondary; - border: 1px solid #4d4d4d; - border-radius: 0 6px 6px 6px; - box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.25); - min-width: 150px; - padding: 5px; - font-size: 12px; - z-index: 10001; - - button { - background-color: #323232; - border: 1px solid black; - border-radius: 1px; - padding: 6px; - margin: 5px 0; - font-size: 10px; - - &:hover { - background-color: black; - } - - &:last-child { - margin-bottom: 0; - } - } - } - - input { - color: black; - } -} - -.link-menu { - .divider { - background-color: white; - height: 1px; - width: 100%; - } -} - -.color-preview-button { - .color-preview { - width: 100%; - height: 3px; - margin-top: 3px; - } -} - -.color-wrapper { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - - button.color-button { - width: 20px; - height: 20px; - border-radius: 15px !important; - margin: 3px; - border: 2px solid transparent !important; - padding: 3px; - - &.active { - border: 2px solid white !important; - } - } -} - -select { - background-color: #323232; - color: white; - border: 1px solid black; - // border-top: none; - // border-bottom: none; - font-size: 12px; - height: 100%; - margin-right: 3px; - - &:focus, - &:hover { - background-color: black; - } - - &::-ms-expand { - color: white; - } -} - -.row-2 { - display: flex; - justify-content: space-between; - - >div { - display: flex; - } -} \ No newline at end of file diff --git a/src/client/util/RichTextMenu.tsx b/src/client/util/RichTextMenu.tsx deleted file mode 100644 index 140635a1d..000000000 --- a/src/client/util/RichTextMenu.tsx +++ /dev/null @@ -1,875 +0,0 @@ -import React = require("react"); -import AntimodeMenu from "../views/AntimodeMenu"; -import { observable, action, } from "mobx"; -import { observer } from "mobx-react"; -import { Mark, MarkType, Node as ProsNode, NodeType, ResolvedPos, Schema } from "prosemirror-model"; -import { schema } from "./schema_rts"; -import { EditorView } from "prosemirror-view"; -import { EditorState, NodeSelection, TextSelection } from "prosemirror-state"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import { IconProp, library } from '@fortawesome/fontawesome-svg-core'; -import { faBold, faItalic, faChevronLeft, faUnderline, faStrikethrough, faSubscript, faSuperscript, faIndent, faEyeDropper, faCaretDown, faPalette, faHighlighter, faLink, faPaintRoller, faSleigh } from "@fortawesome/free-solid-svg-icons"; -import { updateBullets } from "./ProsemirrorExampleTransfer"; -import { FieldViewProps } from "../views/nodes/FieldView"; -import { Cast, StrCast } from "../../new_fields/Types"; -import { FormattedTextBoxProps } from "../views/nodes/FormattedTextBox"; -import { unimplementedFunction, Utils } from "../../Utils"; -import { wrapInList } from "prosemirror-schema-list"; -import { PastelSchemaPalette, DarkPastelSchemaPalette } from '../../new_fields/SchemaHeaderField'; -import "./RichTextMenu.scss"; -import { DocServer } from "../DocServer"; -import { Doc } from "../../new_fields/Doc"; -import { SelectionManager } from "./SelectionManager"; -import { LinkManager } from "./LinkManager"; -const { toggleMark, setBlockType } = require("prosemirror-commands"); - -library.add(faBold, faItalic, faChevronLeft, faUnderline, faStrikethrough, faSuperscript, faSubscript, faIndent, faEyeDropper, faCaretDown, faPalette, faHighlighter, faLink, faPaintRoller); - -@observer -export default class RichTextMenu extends AntimodeMenu { - static Instance: RichTextMenu; - public overMenu: boolean = false; // kind of hacky way to prevent selects not being selectable - - private view?: EditorView; - public editorProps: FieldViewProps & FormattedTextBoxProps | undefined; - - public _brushMap: Map> = new Map(); - private fontSizeOptions: { mark: Mark | null, title: string, label: string, command: any, hidden?: boolean, style?: {} }[]; - private fontFamilyOptions: { mark: Mark | null, title: string, label: string, command: any, hidden?: boolean, style?: {} }[]; - private listTypeOptions: { node: NodeType | any | null, title: string, label: string, command: any, style?: {} }[]; - private fontColors: (string | undefined)[]; - private highlightColors: (string | undefined)[]; - - @observable private collapsed: boolean = false; - @observable private boldActive: boolean = false; - @observable private italicsActive: boolean = false; - @observable private underlineActive: boolean = false; - @observable private strikethroughActive: boolean = false; - @observable private subscriptActive: boolean = false; - @observable private superscriptActive: boolean = false; - - @observable private activeFontSize: string = ""; - @observable private activeFontFamily: string = ""; - @observable private activeListType: string = ""; - - @observable private brushIsEmpty: boolean = true; - @observable private brushMarks: Set = new Set(); - @observable private showBrushDropdown: boolean = false; - - @observable private activeFontColor: string = "black"; - @observable private showColorDropdown: boolean = false; - - @observable private activeHighlightColor: string = "transparent"; - @observable private showHighlightDropdown: boolean = false; - - @observable private currentLink: string | undefined = ""; - @observable private showLinkDropdown: boolean = false; - - constructor(props: Readonly<{}>) { - super(props); - RichTextMenu.Instance = this; - this._canFade = false; - - this.fontSizeOptions = [ - { mark: schema.marks.pFontSize.create({ fontSize: 7 }), title: "Set font size", label: "7pt", command: this.changeFontSize }, - { mark: schema.marks.pFontSize.create({ fontSize: 8 }), title: "Set font size", label: "8pt", command: this.changeFontSize }, - { mark: schema.marks.pFontSize.create({ fontSize: 9 }), title: "Set font size", label: "9pt", command: this.changeFontSize }, - { mark: schema.marks.pFontSize.create({ fontSize: 10 }), title: "Set font size", label: "10pt", command: this.changeFontSize }, - { mark: schema.marks.pFontSize.create({ fontSize: 12 }), title: "Set font size", label: "12pt", command: this.changeFontSize }, - { mark: schema.marks.pFontSize.create({ fontSize: 14 }), title: "Set font size", label: "14pt", command: this.changeFontSize }, - { mark: schema.marks.pFontSize.create({ fontSize: 16 }), title: "Set font size", label: "16pt", command: this.changeFontSize }, - { mark: schema.marks.pFontSize.create({ fontSize: 18 }), title: "Set font size", label: "18pt", command: this.changeFontSize }, - { mark: schema.marks.pFontSize.create({ fontSize: 20 }), title: "Set font size", label: "20pt", command: this.changeFontSize }, - { mark: schema.marks.pFontSize.create({ fontSize: 24 }), title: "Set font size", label: "24pt", command: this.changeFontSize }, - { mark: schema.marks.pFontSize.create({ fontSize: 32 }), title: "Set font size", label: "32pt", command: this.changeFontSize }, - { mark: schema.marks.pFontSize.create({ fontSize: 48 }), title: "Set font size", label: "48pt", command: this.changeFontSize }, - { mark: schema.marks.pFontSize.create({ fontSize: 72 }), title: "Set font size", label: "72pt", command: this.changeFontSize }, - { mark: null, title: "", label: "various", command: unimplementedFunction, hidden: true }, - { mark: null, title: "", label: "13pt", command: unimplementedFunction, hidden: true }, // this is here because the default size is 13, but there is no actual 13pt option - ]; - - this.fontFamilyOptions = [ - { mark: schema.marks.pFontFamily.create({ family: "Times New Roman" }), title: "Set font family", label: "Times New Roman", command: this.changeFontFamily, style: { fontFamily: "Times New Roman" } }, - { mark: schema.marks.pFontFamily.create({ family: "Arial" }), title: "Set font family", label: "Arial", command: this.changeFontFamily, style: { fontFamily: "Arial" } }, - { mark: schema.marks.pFontFamily.create({ family: "Georgia" }), title: "Set font family", label: "Georgia", command: this.changeFontFamily, style: { fontFamily: "Georgia" } }, - { mark: schema.marks.pFontFamily.create({ family: "Comic Sans MS" }), title: "Set font family", label: "Comic Sans MS", command: this.changeFontFamily, style: { fontFamily: "Comic Sans MS" } }, - { mark: schema.marks.pFontFamily.create({ family: "Tahoma" }), title: "Set font family", label: "Tahoma", command: this.changeFontFamily, style: { fontFamily: "Tahoma" } }, - { mark: schema.marks.pFontFamily.create({ family: "Impact" }), title: "Set font family", label: "Impact", command: this.changeFontFamily, style: { fontFamily: "Impact" } }, - { mark: schema.marks.pFontFamily.create({ family: "Crimson Text" }), title: "Set font family", label: "Crimson Text", command: this.changeFontFamily, style: { fontFamily: "Crimson Text" } }, - { mark: null, title: "", label: "various", command: unimplementedFunction, hidden: true }, - // { mark: null, title: "", label: "default", command: unimplementedFunction, hidden: true }, - ]; - - this.listTypeOptions = [ - { node: schema.nodes.ordered_list.create({ mapStyle: "bullet" }), title: "Set list type", label: ":", command: this.changeListType }, - { node: schema.nodes.ordered_list.create({ mapStyle: "decimal" }), title: "Set list type", label: "1.1", command: this.changeListType }, - { node: schema.nodes.ordered_list.create({ mapStyle: "multi" }), title: "Set list type", label: "1.A", command: this.changeListType }, - { node: undefined, title: "Set list type", label: "Remove", command: this.changeListType }, - ]; - - this.fontColors = [ - DarkPastelSchemaPalette.get("pink2"), - DarkPastelSchemaPalette.get("purple4"), - DarkPastelSchemaPalette.get("bluegreen1"), - DarkPastelSchemaPalette.get("yellow4"), - DarkPastelSchemaPalette.get("red2"), - DarkPastelSchemaPalette.get("bluegreen7"), - DarkPastelSchemaPalette.get("bluegreen5"), - DarkPastelSchemaPalette.get("orange1"), - "#757472", - "#000" - ]; - - this.highlightColors = [ - PastelSchemaPalette.get("pink2"), - PastelSchemaPalette.get("purple4"), - PastelSchemaPalette.get("bluegreen1"), - PastelSchemaPalette.get("yellow4"), - PastelSchemaPalette.get("red2"), - PastelSchemaPalette.get("bluegreen7"), - PastelSchemaPalette.get("bluegreen5"), - PastelSchemaPalette.get("orange1"), - "white", - "transparent" - ]; - } - - @action - changeView(view: EditorView) { - this.view = view; - } - - update(view: EditorView, lastState: EditorState | undefined) { - this.updateFromDash(view, lastState, this.editorProps); - } - - - public MakeLinkToSelection = (linkDocId: string, title: string, location: string, targetDocId: string): string => { - if (this.view) { - const link = this.view.state.schema.marks.link.create({ href: Utils.prepend("/doc/" + linkDocId), title: title, location: location, linkId: linkDocId, targetId: targetDocId }); - this.view.dispatch(this.view.state.tr.removeMark(this.view.state.selection.from, this.view.state.selection.to, this.view.state.schema.marks.link). - addMark(this.view.state.selection.from, this.view.state.selection.to, link)); - return this.view.state.selection.$from.nodeAfter?.text || ""; - } - return ""; - } - - @action - public async updateFromDash(view: EditorView, lastState: EditorState | undefined, props: any) { - if (!view) { - console.log("no editor? why?"); - return; - } - this.view = view; - const state = view.state; - props && (this.editorProps = props); - - // Don't do anything if the document/selection didn't change - if (lastState && lastState.doc.eq(state.doc) && lastState.selection.eq(state.selection)) return; - - // update active marks - const activeMarks = this.getActiveMarksOnSelection(); - this.setActiveMarkButtons(activeMarks); - - // update active font family and size - const active = this.getActiveFontStylesOnSelection(); - const activeFamilies = active && active.get("families"); - const activeSizes = active && active.get("sizes"); - - this.activeFontFamily = !activeFamilies || activeFamilies.length === 0 ? "Arial" : activeFamilies.length === 1 ? String(activeFamilies[0]) : "various"; - this.activeFontSize = !activeSizes || activeSizes.length === 0 ? "13pt" : activeSizes.length === 1 ? String(activeSizes[0]) + "pt" : "various"; - - // update link in current selection - const targetTitle = await this.getTextLinkTargetTitle(); - this.setCurrentLink(targetTitle); - } - - setMark = (mark: Mark, state: EditorState, dispatch: any) => { - if (mark) { - const node = (state.selection as NodeSelection).node; - if (node?.type === schema.nodes.ordered_list) { - let attrs = node.attrs; - if (mark.type === schema.marks.pFontFamily) attrs = { ...attrs, setFontFamily: mark.attrs.family }; - if (mark.type === schema.marks.pFontSize) attrs = { ...attrs, setFontSize: mark.attrs.fontSize }; - if (mark.type === schema.marks.pFontColor) attrs = { ...attrs, setFontColor: mark.attrs.color }; - const tr = updateBullets(state.tr.setNodeMarkup(state.selection.from, node.type, attrs), state.schema); - dispatch(tr.setSelection(new NodeSelection(tr.doc.resolve(state.selection.from)))); - } else { - toggleMark(mark.type, mark.attrs)(state, (tx: any) => { - const { from, $from, to, empty } = tx.selection; - if (!tx.doc.rangeHasMark(from, to, mark.type)) { - toggleMark(mark.type, mark.attrs)({ tr: tx, doc: tx.doc, selection: tx.selection, storedMarks: tx.storedMarks }, dispatch); - } else dispatch(tx); - }); - } - } - } - - // finds font sizes and families in selection - getActiveFontStylesOnSelection() { - if (!this.view) return; - - const activeFamilies: string[] = []; - const activeSizes: string[] = []; - const state = this.view.state; - const pos = this.view.state.selection.$from; - const ref_node = this.reference_node(pos); - if (ref_node && ref_node !== this.view.state.doc && ref_node.isText) { - ref_node.marks.forEach(m => { - m.type === state.schema.marks.pFontFamily && activeFamilies.push(m.attrs.family); - m.type === state.schema.marks.pFontSize && activeSizes.push(String(m.attrs.fontSize) + "pt"); - }); - } - - const styles = new Map(); - styles.set("families", activeFamilies); - styles.set("sizes", activeSizes); - return styles; - } - - getMarksInSelection(state: EditorState) { - const found = new Set(); - const { from, to } = state.selection as TextSelection; - state.doc.nodesBetween(from, to, (node) => node.marks.forEach(m => found.add(m))); - return found; - } - - //finds all active marks on selection in given group - getActiveMarksOnSelection() { - if (!this.view) return; - - const markGroup = [schema.marks.strong, schema.marks.em, schema.marks.underline, schema.marks.strikethrough, schema.marks.superscript, schema.marks.subscript]; - if (this.view.state.storedMarks) return this.view.state.storedMarks.map(mark => mark.type); - //current selection - const { empty, ranges, $to } = this.view.state.selection as TextSelection; - const state = this.view.state; - let activeMarks: MarkType[] = []; - if (!empty) { - activeMarks = markGroup.filter(mark => { - const has = false; - for (let i = 0; !has && i < ranges.length; i++) { - return state.doc.rangeHasMark(ranges[i].$from.pos, ranges[i].$to.pos, mark); - } - return false; - }); - } - else { - const pos = this.view.state.selection.$from; - const ref_node: ProsNode | null = this.reference_node(pos); - if (ref_node !== null && ref_node !== this.view.state.doc) { - if (ref_node.isText) { - } - else { - return []; - } - activeMarks = markGroup.filter(mark_type => { - if (mark_type === state.schema.marks.pFontSize) { - return ref_node.marks.some(m => m.type.name === state.schema.marks.pFontSize.name); - } - const mark = state.schema.mark(mark_type); - return ref_node.marks.includes(mark); - }); - } - } - return activeMarks; - } - - destroy() { - this.fadeOut(true); - } - - @action - setActiveMarkButtons(activeMarks: MarkType[] | undefined) { - if (!activeMarks) return; - - this.boldActive = false; - this.italicsActive = false; - this.underlineActive = false; - this.strikethroughActive = false; - this.subscriptActive = false; - this.superscriptActive = false; - - activeMarks.forEach(mark => { - switch (mark.name) { - case "strong": this.boldActive = true; break; - case "em": this.italicsActive = true; break; - case "underline": this.underlineActive = true; break; - case "strikethrough": this.strikethroughActive = true; break; - case "subscript": this.subscriptActive = true; break; - case "superscript": this.superscriptActive = true; break; - } - }); - } - - createButton(faIcon: string, title: string, isActive: boolean = false, command?: any, onclick?: any) { - const self = this; - function onClick(e: React.PointerEvent) { - e.preventDefault(); - e.stopPropagation(); - self.view && self.view.focus(); - self.view && command && command(self.view.state, self.view.dispatch, self.view); - self.view && onclick && onclick(self.view.state, self.view.dispatch, self.view); - self.setActiveMarkButtons(self.getActiveMarksOnSelection()); - } - - return ( - - ); - } - - createMarksDropdown(activeOption: string, options: { mark: Mark | null, title: string, label: string, command: (mark: Mark, view: EditorView) => void, hidden?: boolean, style?: {} }[], key: string): JSX.Element { - const items = options.map(({ title, label, hidden, style }) => { - if (hidden) { - return label === activeOption ? - : - ; - } - return label === activeOption ? - : - ; - }); - - const self = this; - function onChange(e: React.ChangeEvent) { - e.stopPropagation(); - e.preventDefault(); - options.forEach(({ label, mark, command }) => { - if (e.target.value === label) { - self.view && mark && command(mark, self.view); - } - }); - } - return ; - } - - createNodesDropdown(activeOption: string, options: { node: NodeType | any | null, title: string, label: string, command: (node: NodeType | any) => void, hidden?: boolean, style?: {} }[], key: string): JSX.Element { - const items = options.map(({ title, label, hidden, style }) => { - if (hidden) { - return label === activeOption ? - : - ; - } - return label === activeOption ? - : - ; - }); - - const self = this; - function onChange(val: string) { - options.forEach(({ label, node, command }) => { - if (val === label) { - self.view && node && command(node); - } - }); - } - return ; - } - - changeFontSize = (mark: Mark, view: EditorView) => { - this.setMark(view.state.schema.marks.pFontSize.create({ fontSize: mark.attrs.fontSize }), view.state, view.dispatch); - } - - changeFontFamily = (mark: Mark, view: EditorView) => { - this.setMark(view.state.schema.marks.pFontFamily.create({ family: mark.attrs.family }), view.state, view.dispatch); - } - - // TODO: remove doesn't work - //remove all node type and apply the passed-in one to the selected text - changeListType = (nodeType: NodeType | undefined) => { - if (!this.view) return; - - if (nodeType === schema.nodes.bullet_list) { - wrapInList(nodeType)(this.view.state, this.view.dispatch); - } else { - const marks = this.view.state.storedMarks || (this.view.state.selection.$to.parentOffset && this.view.state.selection.$from.marks()); - if (!wrapInList(schema.nodes.ordered_list)(this.view.state, (tx2: any) => { - const tx3 = updateBullets(tx2, schema, nodeType && (nodeType as any).attrs.mapStyle); - marks && tx3.ensureMarks([...marks]); - marks && tx3.setStoredMarks([...marks]); - - this.view!.dispatch(tx2); - })) { - const tx2 = this.view.state.tr; - const tx3 = updateBullets(tx2, schema, nodeType && (nodeType as any).attrs.mapStyle); - marks && tx3.ensureMarks([...marks]); - marks && tx3.setStoredMarks([...marks]); - - this.view.dispatch(tx3); - } - } - } - - insertSummarizer(state: EditorState, dispatch: any) { - if (state.selection.empty) return false; - const mark = state.schema.marks.summarize.create(); - const tr = state.tr; - tr.addMark(state.selection.from, state.selection.to, mark); - const content = tr.selection.content(); - const newNode = state.schema.nodes.summary.create({ visibility: false, text: content, textslice: content.toJSON() }); - dispatch && dispatch(tr.replaceSelectionWith(newNode).removeMark(tr.selection.from - 1, tr.selection.from, mark)); - return true; - } - - @action toggleBrushDropdown() { this.showBrushDropdown = !this.showBrushDropdown; } - - // todo: add brushes to brushMap to save with a style name - onBrushNameKeyPress = (e: React.KeyboardEvent) => { - if (e.key === "Enter") { - RichTextMenu.Instance.brushMarks && RichTextMenu.Instance._brushMap.set(this._brushNameRef.current!.value, RichTextMenu.Instance.brushMarks); - this._brushNameRef.current!.style.background = "lightGray"; - } - } - _brushNameRef = React.createRef(); - - createBrushButton() { - const self = this; - function onBrushClick(e: React.PointerEvent) { - e.preventDefault(); - e.stopPropagation(); - self.view && self.view.focus(); - self.view && self.fillBrush(self.view.state, self.view.dispatch); - } - - let label = "Stored marks: "; - if (this.brushMarks && this.brushMarks.size > 0) { - this.brushMarks.forEach((mark: Mark) => { - const markType = mark.type; - label += markType.name; - label += ", "; - }); - label = label.substring(0, label.length - 2); - } else { - label = "No marks are currently stored"; - } - - const button = - ; - - const dropdownContent = -

-

{label}

- - -
; - - return ( - - ); - } - - @action - clearBrush() { - RichTextMenu.Instance.brushIsEmpty = true; - RichTextMenu.Instance.brushMarks = new Set(); - } - - @action - fillBrush(state: EditorState, dispatch: any) { - if (!this.view) return; - - if (this.brushIsEmpty) { - const selected_marks = this.getMarksInSelection(this.view.state); - if (selected_marks.size >= 0) { - this.brushMarks = selected_marks; - this.brushIsEmpty = !this.brushIsEmpty; - } - } - else { - const { from, to, $from } = this.view.state.selection; - if (!this.view.state.selection.empty && $from && $from.nodeAfter) { - if (this.brushMarks && to - from > 0) { - this.view.dispatch(this.view.state.tr.removeMark(from, to)); - Array.from(this.brushMarks).filter(m => m.type !== schema.marks.user_mark).forEach((mark: Mark) => { - this.setMark(mark, this.view!.state, this.view!.dispatch); - }); - } - } - else { - this.brushIsEmpty = !this.brushIsEmpty; - } - } - } - - @action toggleColorDropdown() { this.showColorDropdown = !this.showColorDropdown; } - @action setActiveColor(color: string) { this.activeFontColor = color; } - - createColorButton() { - const self = this; - function onColorClick(e: React.PointerEvent) { - e.preventDefault(); - e.stopPropagation(); - self.view && self.view.focus(); - self.view && self.insertColor(self.activeFontColor, self.view.state, self.view.dispatch); - } - function changeColor(e: React.PointerEvent, color: string) { - e.preventDefault(); - e.stopPropagation(); - self.view && self.view.focus(); - self.setActiveColor(color); - self.view && self.insertColor(self.activeFontColor, self.view.state, self.view.dispatch); - } - - const button = - ; - - const dropdownContent = -
-

Change font color:

-
- {this.fontColors.map(color => { - if (color) { - return this.activeFontColor === color ? - : - ; - } - })} -
-
; - - return ( - - ); - } - - public insertColor(color: String, state: EditorState, dispatch: any) { - const colorMark = state.schema.mark(state.schema.marks.pFontColor, { color: color }); - if (state.selection.empty) { - dispatch(state.tr.addStoredMark(colorMark)); - return false; - } - this.setMark(colorMark, state, dispatch); - } - - @action toggleHighlightDropdown() { this.showHighlightDropdown = !this.showHighlightDropdown; } - @action setActiveHighlight(color: string) { this.activeHighlightColor = color; } - - createHighlighterButton() { - const self = this; - function onHighlightClick(e: React.PointerEvent) { - e.preventDefault(); - e.stopPropagation(); - self.view && self.view.focus(); - self.view && self.insertHighlight(self.activeHighlightColor, self.view.state, self.view.dispatch); - } - function changeHighlight(e: React.PointerEvent, color: string) { - e.preventDefault(); - e.stopPropagation(); - self.view && self.view.focus(); - self.setActiveHighlight(color); - self.view && self.insertHighlight(self.activeHighlightColor, self.view.state, self.view.dispatch); - } - - const button = - ; - - const dropdownContent = -
-

Change highlight color:

-
- {this.highlightColors.map(color => { - if (color) { - return this.activeHighlightColor === color ? - : - ; - } - })} -
-
; - - return ( - - ); - } - - insertHighlight(color: String, state: EditorState, dispatch: any) { - if (state.selection.empty) return false; - toggleMark(state.schema.marks.marker, { highlight: color })(state, dispatch); - } - - @action toggleLinkDropdown() { this.showLinkDropdown = !this.showLinkDropdown; } - @action setCurrentLink(link: string) { this.currentLink = link; } - - createLinkButton() { - const self = this; - - function onLinkChange(e: React.ChangeEvent) { - self.setCurrentLink(e.target.value); - } - - const link = this.currentLink ? this.currentLink : ""; - - const button = ; - - const dropdownContent = -
-

Linked to:

- - -
- -
; - - return ( - - ); - } - - async getTextLinkTargetTitle() { - if (!this.view) return; - - const node = this.view.state.selection.$from.nodeAfter; - const link = node && node.marks.find(m => m.type.name === "link"); - if (link) { - const href = link.attrs.href; - if (href) { - if (href.indexOf(Utils.prepend("/doc/")) === 0) { - const linkclicked = href.replace(Utils.prepend("/doc/"), "").split("?")[0]; - if (linkclicked) { - const linkDoc = await DocServer.GetRefField(linkclicked); - if (linkDoc instanceof Doc) { - const anchor1 = await Cast(linkDoc.anchor1, Doc); - const anchor2 = await Cast(linkDoc.anchor2, Doc); - const currentDoc = SelectionManager.SelectedDocuments().length && SelectionManager.SelectedDocuments()[0].props.Document; - if (currentDoc && anchor1 && anchor2) { - if (Doc.AreProtosEqual(currentDoc, anchor1)) { - return StrCast(anchor2.title); - } - if (Doc.AreProtosEqual(currentDoc, anchor2)) { - return StrCast(anchor1.title); - } - } - } - } - } else { - return href; - } - } else { - return link.attrs.title; - } - } - } - - // TODO: should check for valid URL - makeLinkToURL = (target: String, lcoation: string) => { - if (!this.view) return; - - let node = this.view.state.selection.$from.nodeAfter; - let link = this.view.state.schema.mark(this.view.state.schema.marks.link, { href: target, location: location }); - this.view.dispatch(this.view.state.tr.removeMark(this.view.state.selection.from, this.view.state.selection.to, this.view.state.schema.marks.link)); - this.view.dispatch(this.view.state.tr.addMark(this.view.state.selection.from, this.view.state.selection.to, link)); - node = this.view.state.selection.$from.nodeAfter; - link = node && node.marks.find(m => m.type.name === "link"); - } - - deleteLink = () => { - if (!this.view) return; - - const node = this.view.state.selection.$from.nodeAfter; - const link = node && node.marks.find(m => m.type === this.view!.state.schema.marks.link); - const href = link!.attrs.href; - if (href) { - if (href.indexOf(Utils.prepend("/doc/")) === 0) { - const linkclicked = href.replace(Utils.prepend("/doc/"), "").split("?")[0]; - if (linkclicked) { - DocServer.GetRefField(linkclicked).then(async linkDoc => { - if (linkDoc instanceof Doc) { - LinkManager.Instance.deleteLink(linkDoc); - this.view!.dispatch(this.view!.state.tr.removeMark(this.view!.state.selection.from, this.view!.state.selection.to, this.view!.state.schema.marks.link)); - } - }); - } - } else { - if (node) { - const { tr, schema, selection } = this.view.state; - const extension = this.linkExtend(selection.$anchor, href); - this.view.dispatch(tr.removeMark(extension.from, extension.to, schema.marks.link)); - } - } - } - } - - linkExtend($start: ResolvedPos, href: string) { - const mark = this.view!.state.schema.marks.link; - - let startIndex = $start.index(); - let endIndex = $start.indexAfter(); - - while (startIndex > 0 && $start.parent.child(startIndex - 1).marks.filter(m => m.type === mark && m.attrs.href === href).length) startIndex--; - while (endIndex < $start.parent.childCount && $start.parent.child(endIndex).marks.filter(m => m.type === mark && m.attrs.href === href).length) endIndex++; - - let startPos = $start.start(); - let endPos = startPos; - for (let i = 0; i < endIndex; i++) { - const size = $start.parent.child(i).nodeSize; - if (i < startIndex) startPos += size; - endPos += size; - } - return { from: startPos, to: endPos }; - } - - reference_node(pos: ResolvedPos): ProsNode | null { - if (!this.view) return null; - - let ref_node: ProsNode = this.view.state.doc; - if (pos.nodeBefore !== null && pos.nodeBefore !== undefined) { - ref_node = pos.nodeBefore; - } - else if (pos.nodeAfter !== null && pos.nodeAfter !== undefined) { - ref_node = pos.nodeAfter; - } - else if (pos.pos > 0) { - let skip = false; - for (let i: number = pos.pos - 1; i > 0; i--) { - this.view.state.doc.nodesBetween(i, pos.pos, (node: ProsNode) => { - if (node.isLeaf && !skip) { - ref_node = node; - skip = true; - } - - }); - } - } - if (!ref_node.isLeaf && ref_node.childCount > 0) { - ref_node = ref_node.child(0); - } - return ref_node; - } - - @action onPointerEnter(e: React.PointerEvent) { RichTextMenu.Instance.overMenu = true; } - @action onPointerLeave(e: React.PointerEvent) { RichTextMenu.Instance.overMenu = false; } - - @action - toggleMenuPin = (e: React.MouseEvent) => { - this.Pinned = !this.Pinned; - if (!this.Pinned) { - this.fadeOut(true); - } - } - - @action - protected toggleCollapse = (e: React.MouseEvent) => { - this.collapsed = !this.collapsed; - setTimeout(() => { - const x = Math.min(this._left, window.innerWidth - RichTextMenu.Instance.width); - RichTextMenu.Instance.jumpTo(x, this._top); - }, 0); - } - - render() { - - const row1 =
{[ - this.createButton("bold", "Bold", this.boldActive, toggleMark(schema.marks.strong)), - this.createButton("italic", "Italic", this.italicsActive, toggleMark(schema.marks.em)), - this.createButton("underline", "Underline", this.underlineActive, toggleMark(schema.marks.underline)), - this.createButton("strikethrough", "Strikethrough", this.strikethroughActive, toggleMark(schema.marks.strikethrough)), - this.createButton("superscript", "Superscript", this.superscriptActive, toggleMark(schema.marks.superscript)), - this.createButton("subscript", "Subscript", this.subscriptActive, toggleMark(schema.marks.subscript)), - this.createColorButton(), - this.createHighlighterButton(), - this.createLinkButton(), - this.createBrushButton(), - this.createButton("indent", "Summarize", undefined, this.insertSummarizer), - ]}
; - - const row2 =
-
- {[this.createMarksDropdown(this.activeFontSize, this.fontSizeOptions, "font size"), - this.createMarksDropdown(this.activeFontFamily, this.fontFamilyOptions, "font family"), - this.createNodesDropdown(this.activeListType, this.listTypeOptions, "nodes")]} -
-
-
- -
- - {this.getDragger()} -
-
; - - return ( -
- {this.getElementWithRows([row1, row2], 2, false)} -
- ); - } -} - -interface ButtonDropdownProps { - view?: EditorView; - button: JSX.Element; - dropdownContent: JSX.Element; - openDropdownOnButton?: boolean; -} - -@observer -class ButtonDropdown extends React.Component { - - @observable private showDropdown: boolean = false; - private ref: HTMLDivElement | null = null; - - componentDidMount() { - document.addEventListener("pointerdown", this.onBlur); - } - - componentWillUnmount() { - document.removeEventListener("pointerdown", this.onBlur); - } - - @action - setShowDropdown(show: boolean) { - this.showDropdown = show; - } - @action - toggleDropdown() { - this.showDropdown = !this.showDropdown; - } - - onDropdownClick = (e: React.PointerEvent) => { - e.preventDefault(); - e.stopPropagation(); - this.props.view && this.props.view.focus(); - this.toggleDropdown(); - } - - onBlur = (e: PointerEvent) => { - setTimeout(() => { - if (this.ref !== null && !this.ref.contains(e.target as Node)) { - this.setShowDropdown(false); - } - }, 0); - } - - render() { - return ( -
this.ref = node}> - {this.props.openDropdownOnButton ? - : - <> - {this.props.button} - - } - - {this.showDropdown ? this.props.dropdownContent : (null)} -
- ); - } -} \ No newline at end of file diff --git a/src/client/util/RichTextRules.ts b/src/client/util/RichTextRules.ts index 63a3815ea..7ce6bbf85 100644 --- a/src/client/util/RichTextRules.ts +++ b/src/client/util/RichTextRules.ts @@ -7,9 +7,9 @@ import { Cast, NumCast } from "../../new_fields/Types"; import { returnFalse, Utils } from "../../Utils"; import { DocServer } from "../DocServer"; import { Docs, DocUtils } from "../documents/Documents"; -import { FormattedTextBox } from "../views/nodes/FormattedTextBox"; +import { FormattedTextBox } from "../views/nodes/formattedText/FormattedTextBox"; import { wrappingInputRule } from "./prosemirrorPatches"; -import RichTextMenu from "./RichTextMenu"; +import RichTextMenu from "../views/nodes/formattedText/RichTextMenu"; import { schema } from "./schema_rts"; export class RichTextRules { diff --git a/src/client/util/RichTextSchema.tsx b/src/client/util/RichTextSchema.tsx deleted file mode 100644 index 3e45d5de5..000000000 --- a/src/client/util/RichTextSchema.tsx +++ /dev/null @@ -1,718 +0,0 @@ -import { IReactionDisposer, observable, reaction, runInAction } from "mobx"; -import { baseKeymap, toggleMark } from "prosemirror-commands"; -import { redo, undo } from "prosemirror-history"; -import { keymap } from "prosemirror-keymap"; -import { DOMOutputSpecArray, Fragment, MarkSpec, Node, NodeSpec, Schema, Slice } from "prosemirror-model"; -import { bulletList, listItem, orderedList } from 'prosemirror-schema-list'; -import { EditorState, NodeSelection, Plugin, TextSelection } from "prosemirror-state"; -import { StepMap } from "prosemirror-transform"; -import { EditorView } from "prosemirror-view"; -import * as ReactDOM from 'react-dom'; -import { Doc, DocListCast, Field, HeightSym, WidthSym } from "../../new_fields/Doc"; -import { Id } from "../../new_fields/FieldSymbols"; -import { List } from "../../new_fields/List"; -import { ObjectField } from "../../new_fields/ObjectField"; -import { listSpec } from "../../new_fields/Schema"; -import { SchemaHeaderField } from "../../new_fields/SchemaHeaderField"; -import { ComputedField } from "../../new_fields/ScriptField"; -import { BoolCast, Cast, NumCast, StrCast, FieldValue } from "../../new_fields/Types"; -import { emptyFunction, returnEmptyString, returnFalse, returnOne, Utils, returnZero } from "../../Utils"; -import { DocServer } from "../DocServer"; -import { Docs } from "../documents/Documents"; -import { CollectionViewType } from "../views/collections/CollectionView"; -import { DocumentView } from "../views/nodes/DocumentView"; -import { FormattedTextBox } from "../views/nodes/FormattedTextBox"; -import { DocumentManager } from "./DocumentManager"; -import { Transform } from "./Transform"; -import React = require("react"); - -import { schema } from "./schema_rts"; - -export class OrderedListView { - update(node: any) { - return false; // if attr's of an ordered_list (e.g., bulletStyle) change, return false forces the dom node to be recreated which is necessary for the bullet labels to update - } -} - -export class ImageResizeView { - _handle: HTMLElement; - _img: HTMLElement; - _outer: HTMLElement; - constructor(node: any, view: any, getPos: any, addDocTab: any) { - //moved - this._handle = document.createElement("span"); - this._img = document.createElement("img"); - this._outer = document.createElement("span"); - this._outer.style.position = "relative"; - this._outer.style.width = node.attrs.width; - this._outer.style.height = node.attrs.height; - this._outer.style.display = "inline-block"; - this._outer.style.overflow = "hidden"; - (this._outer.style as any).float = node.attrs.float; - //moved - this._img.setAttribute("src", node.attrs.src); - this._img.style.width = "100%"; - this._handle.style.position = "absolute"; - this._handle.style.width = "20px"; - this._handle.style.height = "20px"; - this._handle.style.backgroundColor = "blue"; - this._handle.style.borderRadius = "15px"; - this._handle.style.display = "none"; - this._handle.style.bottom = "-10px"; - this._handle.style.right = "-10px"; - const self = this; - //moved - this._img.onclick = function (e: any) { - e.stopPropagation(); - e.preventDefault(); - if (view.state.selection.node && view.state.selection.node.type !== view.state.schema.nodes.image) { - view.dispatch(view.state.tr.setSelection(new NodeSelection(view.state.doc.resolve(view.state.selection.from - 2)))); - } - }; - //moved - this._img.onpointerdown = function (e: any) { - if (e.ctrlKey) { - e.preventDefault(); - e.stopPropagation(); - DocServer.GetRefField(node.attrs.docid).then(async linkDoc => - (linkDoc instanceof Doc) && - DocumentManager.Instance.FollowLink(linkDoc, view.state.schema.Document, - document => addDocTab(document, node.attrs.location ? node.attrs.location : "inTab"), false)); - } - }; - //moved - this._handle.onpointerdown = function (e: any) { - e.preventDefault(); - e.stopPropagation(); - const wid = Number(getComputedStyle(self._img).width.replace(/px/, "")); - const hgt = Number(getComputedStyle(self._img).height.replace(/px/, "")); - const startX = e.pageX; - const startWidth = parseFloat(node.attrs.width); - const onpointermove = (e: any) => { - const currentX = e.pageX; - const diffInPx = currentX - startX; - self._outer.style.width = `${startWidth + diffInPx}`; - self._outer.style.height = `${(startWidth + diffInPx) * hgt / wid}`; - }; - - const onpointerup = () => { - document.removeEventListener("pointermove", onpointermove); - document.removeEventListener("pointerup", onpointerup); - const pos = view.state.selection.from; - view.dispatch(view.state.tr.setNodeMarkup(getPos(), null, { ...node.attrs, width: self._outer.style.width, height: self._outer.style.height })); - view.dispatch(view.state.tr.setSelection(new NodeSelection(view.state.doc.resolve(pos)))); - }; - - document.addEventListener("pointermove", onpointermove); - document.addEventListener("pointerup", onpointerup); - }; - //Moved - this._outer.appendChild(this._img); - this._outer.appendChild(this._handle); - (this as any).dom = this._outer; - } - - selectNode() { - this._img.classList.add("ProseMirror-selectednode"); - - this._handle.style.display = ""; - } - - deselectNode() { - this._img.classList.remove("ProseMirror-selectednode"); - - this._handle.style.display = "none"; - } -} - -export class DashDocCommentView { - _collapsed: HTMLElement; - _view: any; - constructor(node: any, view: any, getPos: any) { - //moved - this._collapsed = document.createElement("span"); - this._collapsed.className = "formattedTextBox-inlineComment"; - this._collapsed.id = "DashDocCommentView-" + node.attrs.docid; - this._view = view; - //moved - const targetNode = () => { // search forward in the prosemirror doc for the attached dashDocNode that is the target of the comment anchor - for (let i = getPos() + 1; i < view.state.doc.content.size; i++) { - const m = view.state.doc.nodeAt(i); - if (m && m.type === view.state.schema.nodes.dashDoc && m.attrs.docid === node.attrs.docid) { - return { node: m, pos: i, hidden: m.attrs.hidden } as { node: any, pos: number, hidden: boolean }; - } - } - const dashDoc = view.state.schema.nodes.dashDoc.create({ width: 75, height: 35, title: "dashDoc", docid: node.attrs.docid, float: "right" }); - view.dispatch(view.state.tr.insert(getPos() + 1, dashDoc)); - setTimeout(() => { try { view.dispatch(view.state.tr.setSelection(TextSelection.create(view.state.tr.doc, getPos() + 2))); } catch (e) { } }, 0); - return undefined; - }; - //moved - this._collapsed.onpointerdown = (e: any) => { - e.stopPropagation(); - }; - //moved - this._collapsed.onpointerup = (e: any) => { - const target = targetNode(); - if (target) { - const expand = target.hidden; - const tr = view.state.tr.setNodeMarkup(target.pos, undefined, { ...target.node.attrs, hidden: target.node.attrs.hidden ? false : true }); - view.dispatch(tr.setSelection(TextSelection.create(tr.doc, getPos() + (expand ? 2 : 1)))); // update the attrs - setTimeout(() => { - expand && DocServer.GetRefField(node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowHighlight(dashDoc)); - try { view.dispatch(view.state.tr.setSelection(TextSelection.create(view.state.tr.doc, getPos() + (expand ? 2 : 1)))); } catch (e) { } - }, 0); - } - e.stopPropagation(); - }; - //moved - this._collapsed.onpointerenter = (e: any) => { - DocServer.GetRefField(node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowHighlight(dashDoc, false)); - e.preventDefault(); - e.stopPropagation(); - }; - //moved - this._collapsed.onpointerleave = (e: any) => { - DocServer.GetRefField(node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowUnhighlight()); - e.preventDefault(); - e.stopPropagation(); - }; - - (this as any).dom = this._collapsed; - } - //moved - selectNode() { } -} - -export class DashDocView { - _dashSpan: HTMLDivElement; - _outer: HTMLElement; - _dashDoc: Doc | undefined; - _reactionDisposer: IReactionDisposer | undefined; - _renderDisposer: IReactionDisposer | undefined; - _textBox: FormattedTextBox; - - getDocTransform = () => { - const { scale, translateX, translateY } = Utils.GetScreenTransform(this._outer); - return new Transform(-translateX, -translateY, 1).scale(1 / this.contentScaling() / scale); - } - contentScaling = () => NumCast(this._dashDoc!._nativeWidth) > 0 ? this._dashDoc![WidthSym]() / NumCast(this._dashDoc!._nativeWidth) : 1; - - outerFocus = (target: Doc) => this._textBox.props.focus(this._textBox.props.Document); // ideally, this would scroll to show the focus target - - constructor(node: any, view: any, getPos: any, tbox: FormattedTextBox) { - this._textBox = tbox; - this._dashSpan = document.createElement("div"); - this._outer = document.createElement("span"); - this._outer.style.position = "relative"; - this._outer.style.textIndent = "0"; - this._outer.style.border = "1px solid " + StrCast(tbox.layoutDoc.color, (Cast(Doc.UserDoc().activeWorkspace, Doc, null).darkScheme ? "dimGray" : "lightGray")); - this._outer.style.width = node.attrs.width; - this._outer.style.height = node.attrs.height; - this._outer.style.display = node.attrs.hidden ? "none" : "inline-block"; - // this._outer.style.overflow = "hidden"; // bcz: not sure if this is needed. if it's used, then the doc doesn't highlight when you hover over a docComment - (this._outer.style as any).float = node.attrs.float; - - this._dashSpan.style.width = node.attrs.width; - this._dashSpan.style.height = node.attrs.height; - this._dashSpan.style.position = "absolute"; - this._dashSpan.style.display = "inline-block"; - this._dashSpan.onpointerleave = () => { - const ele = document.getElementById("DashDocCommentView-" + node.attrs.docid); - if (ele) { - (ele as HTMLDivElement).style.backgroundColor = ""; - } - }; - this._dashSpan.onpointerenter = () => { - const ele = document.getElementById("DashDocCommentView-" + node.attrs.docid); - if (ele) { - (ele as HTMLDivElement).style.backgroundColor = "orange"; - } - }; - const removeDoc = () => { - const pos = getPos(); - const ns = new NodeSelection(view.state.doc.resolve(pos)); - view.dispatch(view.state.tr.setSelection(ns).deleteSelection()); - return true; - }; - const alias = node.attrs.alias; - - const docid = node.attrs.docid || tbox.props.Document[Id];// tbox.props.DataDoc?.[Id] || tbox.dataDoc?.[Id]; - DocServer.GetRefField(docid + alias).then(async dashDoc => { - if (!(dashDoc instanceof Doc)) { - alias && DocServer.GetRefField(docid).then(async dashDocBase => { - if (dashDocBase instanceof Doc) { - const aliasedDoc = Doc.MakeAlias(dashDocBase, docid + alias); - aliasedDoc.layoutKey = "layout"; - node.attrs.fieldKey && Doc.makeCustomViewClicked(aliasedDoc, Docs.Create.StackingDocument, node.attrs.fieldKey, undefined); - self.doRender(aliasedDoc, removeDoc, node, view, getPos); - } - }); - } else { - self.doRender(dashDoc, removeDoc, node, view, getPos); - } - }); - const self = this; - this._dashSpan.onkeydown = function (e: any) { - e.stopPropagation(); - if (e.key === "Tab" || e.key === "Enter") { - e.preventDefault(); - } - }; - this._dashSpan.onkeypress = function (e: any) { e.stopPropagation(); }; - this._dashSpan.onwheel = function (e: any) { e.preventDefault(); }; - this._dashSpan.onkeyup = function (e: any) { e.stopPropagation(); }; - this._outer.appendChild(this._dashSpan); - (this as any).dom = this._outer; - } - - doRender(dashDoc: Doc, removeDoc: any, node: any, view: any, getPos: any) { - this._dashDoc = dashDoc; - const self = this; - const dashLayoutDoc = Doc.Layout(dashDoc); - const finalLayout = node.attrs.docid ? dashDoc : Doc.expandTemplateLayout(dashLayoutDoc, dashDoc, node.attrs.fieldKey); - - if (!finalLayout) setTimeout(() => self.doRender(dashDoc, removeDoc, node, view, getPos), 0); - else { - this._reactionDisposer?.(); - this._reactionDisposer = reaction(() => ({ dim: [finalLayout[WidthSym](), finalLayout[HeightSym]()], color: finalLayout.color }), ({ dim, color }) => { - this._dashSpan.style.width = this._outer.style.width = Math.max(20, dim[0]) + "px"; - this._dashSpan.style.height = this._outer.style.height = Math.max(20, dim[1]) + "px"; - this._outer.style.border = "1px solid " + StrCast(finalLayout.color, (Cast(Doc.UserDoc().activeWorkspace, Doc, null).darkScheme ? "dimGray" : "lightGray")); - }, { fireImmediately: true }); - const doReactRender = (finalLayout: Doc, resolvedDataDoc: Doc) => { - ReactDOM.unmountComponentAtNode(this._dashSpan); - - ReactDOM.render(, this._dashSpan); - if (node.attrs.width !== dashDoc._width + "px" || node.attrs.height !== dashDoc._height + "px") { - try { // bcz: an exception will be thrown if two aliases are open at the same time when a doc view comment is made - view.dispatch(view.state.tr.setNodeMarkup(getPos(), null, { ...node.attrs, width: dashDoc._width + "px", height: dashDoc._height + "px" })); - } catch (e) { - console.log(e); - } - } - }; - this._renderDisposer?.(); - this._renderDisposer = reaction(() => { - // if (!Doc.AreProtosEqual(finalLayout, dashDoc)) { - // finalLayout.rootDocument = dashDoc.aliasOf; // bcz: check on this ... why is it here? - // } - const layoutKey = StrCast(finalLayout.layoutKey); - const finalKey = layoutKey && StrCast(finalLayout[layoutKey]).split("'")?.[1]; - if (finalLayout !== dashDoc && finalKey) { - const finalLayoutField = finalLayout[finalKey]; - if (finalLayoutField instanceof ObjectField) { - finalLayout[finalKey + "-textTemplate"] = ComputedField.MakeFunction(`copyField(this.${finalKey})`, { this: Doc.name }); - } - } - return { finalLayout, resolvedDataDoc: Cast(finalLayout.resolvedDataDoc, Doc, null) }; - }, - (res) => doReactRender(res.finalLayout, res.resolvedDataDoc), - { fireImmediately: true }); - } - } - destroy() { - ReactDOM.unmountComponentAtNode(this._dashSpan); - this._reactionDisposer?.(); - } -} - -export class DashFieldView { - _fieldWrapper: HTMLDivElement; // container for label and value - _labelSpan: HTMLSpanElement; // field label - _fieldSpan: HTMLSpanElement; // field value - _fieldCheck: HTMLInputElement; - _enumerables: HTMLDivElement; // field value - _reactionDisposer: IReactionDisposer | undefined; - _textBoxDoc: Doc; - @observable _dashDoc: Doc | undefined; - _fieldKey: string; - _options: Doc[] = []; - - constructor(node: any, view: any, getPos: any, tbox: FormattedTextBox) { - this._fieldKey = node.attrs.fieldKey; - this._textBoxDoc = tbox.props.Document; - this._fieldWrapper = document.createElement("p"); - this._fieldWrapper.style.width = node.attrs.width; - this._fieldWrapper.style.height = node.attrs.height; - this._fieldWrapper.style.fontWeight = "bold"; - this._fieldWrapper.style.position = "relative"; - this._fieldWrapper.style.display = "inline-block"; - - const self = this; - - this._enumerables = document.createElement("div"); - this._enumerables.style.width = "10px"; - this._enumerables.style.height = "10px"; - this._enumerables.style.position = "relative"; - this._enumerables.style.display = "none"; - - //Moved - this._enumerables.onpointerdown = async (e) => { - e.stopPropagation(); - const collview = await Doc.addFieldEnumerations(self._textBoxDoc, self._fieldKey, [{ title: self._fieldSpan.innerText }]); - collview instanceof Doc && tbox.props.addDocTab(collview, "onRight"); - }; - //Moved - const updateText = (forceMatch: boolean) => { - self._enumerables.style.display = "none"; - const newText = self._fieldSpan.innerText.startsWith(":=") || self._fieldSpan.innerText.startsWith("=:=") ? ":=-computed-" : self._fieldSpan.innerText; - - // look for a document whose id === the fieldKey being displayed. If there's a match, then that document - // holds the different enumerated values for the field in the titles of its collected documents. - // if there's a partial match from the start of the input text, complete the text --- TODO: make this an auto suggest box and select from a drop down. - DocServer.GetRefField(self._fieldKey).then(options => { - let modText = ""; - (options instanceof Doc) && DocListCast(options.data).forEach(opt => (forceMatch ? StrCast(opt.title).startsWith(newText) : StrCast(opt.title) === newText) && (modText = StrCast(opt.title))); - if (modText) { - self._fieldSpan.innerHTML = self._dashDoc![self._fieldKey] = modText; - Doc.addFieldEnumerations(self._textBoxDoc, self._fieldKey, []); - } // if the text starts with a ':=' then treat it as an expression by making a computed field from its value storing it in the key - else if (self._fieldSpan.innerText.startsWith(":=")) { - self._dashDoc![self._fieldKey] = ComputedField.MakeFunction(self._fieldSpan.innerText.substring(2)); - } else if (self._fieldSpan.innerText.startsWith("=:=")) { - Doc.Layout(tbox.props.Document)[self._fieldKey] = ComputedField.MakeFunction(self._fieldSpan.innerText.substring(3)); - } else { - self._dashDoc![self._fieldKey] = newText; - } - }); - }; - - //Moved - this._fieldCheck = document.createElement("input"); - this._fieldCheck.id = Utils.GenerateGuid(); - this._fieldCheck.type = "checkbox"; - this._fieldCheck.style.position = "relative"; - this._fieldCheck.style.display = "none"; - this._fieldCheck.style.minWidth = "12px"; - this._fieldCheck.style.backgroundColor = "rgba(155, 155, 155, 0.24)"; - this._fieldCheck.onchange = function (e: any) { - self._dashDoc![self._fieldKey] = e.target.checked; - }; - - this._fieldSpan = document.createElement("span"); - this._fieldSpan.id = Utils.GenerateGuid(); - this._fieldSpan.contentEditable = "true"; - this._fieldSpan.style.position = "relative"; - this._fieldSpan.style.display = "none"; - this._fieldSpan.style.minWidth = "12px"; - this._fieldSpan.style.fontSize = "large"; - this._fieldSpan.onkeypress = function (e: any) { e.stopPropagation(); }; - this._fieldSpan.onkeyup = function (e: any) { e.stopPropagation(); }; - this._fieldSpan.onmousedown = function (e: any) { e.stopPropagation(); self._enumerables.style.display = "inline-block"; }; - this._fieldSpan.onblur = function (e: any) { updateText(false); }; - - // MOVED - const setDashDoc = (doc: Doc) => { - self._dashDoc = doc; - if (self._options?.length && !self._dashDoc[self._fieldKey]) { - self._dashDoc[self._fieldKey] = StrCast(self._options[0].title); - } - this._labelSpan.innerHTML = `${self._fieldKey}: `; - const fieldVal = Cast(this._dashDoc?.[self._fieldKey], "boolean", null); - this._fieldCheck.style.display = (fieldVal === true || fieldVal === false) ? "inline-block" : "none"; - this._fieldSpan.style.display = !(fieldVal === true || fieldVal === false) ? StrCast(this._dashDoc?.[self._fieldKey]) ? "" : "inline-block" : "none"; - }; - - //Moved - this._fieldSpan.onkeydown = function (e: any) { - e.stopPropagation(); - if ((e.key === "a" && e.ctrlKey) || (e.key === "a" && e.metaKey)) { - if (window.getSelection) { - const range = document.createRange(); - range.selectNodeContents(self._fieldSpan); - window.getSelection()!.removeAllRanges(); - window.getSelection()!.addRange(range); - } - e.preventDefault(); - } - if (e.key === "Enter") { - e.preventDefault(); - e.ctrlKey && Doc.addFieldEnumerations(self._textBoxDoc, self._fieldKey, [{ title: self._fieldSpan.innerText }]); - updateText(true); - } - }; - - this._labelSpan = document.createElement("span"); - this._labelSpan.style.position = "relative"; - this._labelSpan.style.fontSize = "small"; - this._labelSpan.title = "click to see related tags"; - this._labelSpan.style.fontSize = "x-small"; - this._labelSpan.onpointerdown = function (e: any) { - e.stopPropagation(); - let container = tbox.props.ContainingCollectionView; - while (container?.props.Document.isTemplateForField || container?.props.Document.isTemplateDoc) { - container = container.props.ContainingCollectionView; - } - if (container) { - const alias = Doc.MakeAlias(container.props.Document); - alias.viewType = CollectionViewType.Time; - let list = Cast(alias.schemaColumns, listSpec(SchemaHeaderField)); - if (!list) { - alias.schemaColumns = list = new List(); - } - list.map(c => c.heading).indexOf(self._fieldKey) === -1 && list.push(new SchemaHeaderField(self._fieldKey, "#f1efeb")); - list.map(c => c.heading).indexOf("text") === -1 && list.push(new SchemaHeaderField("text", "#f1efeb")); - alias._pivotField = self._fieldKey; - tbox.props.addDocTab(alias, "onRight"); - } - }; - this._labelSpan.innerHTML = `${self._fieldKey}: `; - //MOVED - if (node.attrs.docid) { - DocServer.GetRefField(node.attrs.docid). - then(async dashDoc => dashDoc instanceof Doc && runInAction(() => setDashDoc(dashDoc))); - } else { - setDashDoc(tbox.props.DataDoc || tbox.dataDoc); - } - - //Moved - this._reactionDisposer?.(); - this._reactionDisposer = reaction(() => { // this reaction will update the displayed text whenever the document's fieldKey's value changes - const dashVal = this._dashDoc?.[self._fieldKey]; - return StrCast(dashVal).startsWith(":=") || dashVal === "" ? Doc.Layout(tbox.props.Document)[self._fieldKey] : dashVal; - }, fval => { - const boolVal = Cast(fval, "boolean", null); - if (boolVal === true || boolVal === false) { - this._fieldCheck.checked = boolVal; - } else { - this._fieldSpan.innerHTML = Field.toString(fval as Field) || ""; - } - this._fieldCheck.style.display = (boolVal === true || boolVal === false) ? "inline-block" : "none"; - this._fieldSpan.style.display = !(fval === true || fval === false) ? (StrCast(fval) ? "" : "inline-block") : "none"; - }, { fireImmediately: true }); - - //MOVED IN ORDER - this._fieldWrapper.appendChild(this._labelSpan); - this._fieldWrapper.appendChild(this._fieldCheck); - this._fieldWrapper.appendChild(this._fieldSpan); - this._fieldWrapper.appendChild(this._enumerables); - (this as any).dom = this._fieldWrapper; - //updateText(false); - } - //MOVED - destroy() { - this._reactionDisposer?.(); - } - //moved - selectNode() { } -} - -export class FootnoteView { - innerView: any; - outerView: any; - node: any; - dom: any; - getPos: any; - - constructor(node: any, view: any, getPos: any) { - // We'll need these later - this.node = node; - this.outerView = view; - this.getPos = getPos; - - // The node's representation in the editor (empty, for now) - this.dom = document.createElement("footnote"); - this.dom.addEventListener("pointerup", this.toggle, true); - // These are used when the footnote is selected - this.innerView = null; - } - selectNode() { - const attrs = { ...this.node.attrs }; - attrs.visibility = true; - this.dom.classList.add("ProseMirror-selectednode"); - if (!this.innerView) this.open(); - } - - deselectNode() { - const attrs = { ...this.node.attrs }; - attrs.visibility = false; - this.dom.classList.remove("ProseMirror-selectednode"); - if (this.innerView) this.close(); - } - open() { - // Append a tooltip to the outer node - const tooltip = this.dom.appendChild(document.createElement("div")); - tooltip.className = "footnote-tooltip"; - // And put a sub-ProseMirror into that - this.innerView = new EditorView(tooltip, { - // You can use any node as an editor document - state: EditorState.create({ - doc: this.node, - plugins: [keymap(baseKeymap), - keymap({ - "Mod-z": () => undo(this.outerView.state, this.outerView.dispatch), - "Mod-y": () => redo(this.outerView.state, this.outerView.dispatch), - "Mod-b": toggleMark(schema.marks.strong) - }), - // new Plugin({ - // view(newView) { - // // TODO -- make this work with RichTextMenu - // // return FormattedTextBox.getToolTip(newView); - // } - // }) - ], - - }), - // This is the magic part - dispatchTransaction: this.dispatchInner.bind(this), - handleDOMEvents: { - pointerdown: ((view: any, e: PointerEvent) => { - // Kludge to prevent issues due to the fact that the whole - // footnote is node-selected (and thus DOM-selected) when - // the parent editor is focused. - e.stopPropagation(); - document.addEventListener("pointerup", this.ignore, true); - if (this.outerView.hasFocus()) this.innerView.focus(); - }) as any - } - - }); - setTimeout(() => this.innerView && this.innerView.docView.setSelection(0, 0, this.innerView.root, true), 0); - } - - ignore = (e: PointerEvent) => { - e.stopPropagation(); - document.removeEventListener("pointerup", this.ignore, true); - } - - toggle = () => { - if (this.innerView) this.close(); - else { - this.open(); - } - } - close() { - this.innerView && this.innerView.destroy(); - this.innerView = null; - this.dom.textContent = ""; - } - - dispatchInner(tr: any) { - const { state, transactions } = this.innerView.state.applyTransaction(tr); - this.innerView.updateState(state); - - if (!tr.getMeta("fromOutside")) { - const outerTr = this.outerView.state.tr, offsetMap = StepMap.offset(this.getPos() + 1); - for (const transaction of transactions) { - const steps = transaction.steps; - for (const step of steps) { - outerTr.step(step.map(offsetMap)); - } - } - if (outerTr.docChanged) this.outerView.dispatch(outerTr); - } - } - update(node: any) { - if (!node.sameMarkup(this.node)) return false; - this.node = node; - if (this.innerView) { - const state = this.innerView.state; - const start = node.content.findDiffStart(state.doc.content); - if (start !== null) { - let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content); - const overlap = start - Math.min(endA, endB); - if (overlap > 0) { endA += overlap; endB += overlap; } - this.innerView.dispatch( - state.tr - .replace(start, endB, node.slice(start, endA)) - .setMeta("fromOutside", true)); - } - } - return true; - } - - destroy() { - if (this.innerView) this.close(); - } - - stopEvent(event: any) { - return this.innerView && this.innerView.dom.contains(event.target); - } - - ignoreMutation() { return true; } -} - -export class SummaryView { - _collapsed: HTMLElement; - _view: any; - constructor(node: any, view: any, getPos: any) { - this._collapsed = document.createElement("span"); - this._collapsed.className = this.className(node.attrs.visibility); - this._view = view; - const js = node.toJSON; - node.toJSON = function () { - return js.apply(this, arguments); - }; - - this._collapsed.onpointerdown = (e: any) => { - const visible = !node.attrs.visibility; - const attrs = { ...node.attrs, visibility: visible }; - let textSelection = TextSelection.create(view.state.doc, getPos() + 1); - if (!visible) { // update summarized text and save in attrs - textSelection = this.updateSummarizedText(getPos() + 1); - attrs.text = textSelection.content(); - attrs.textslice = attrs.text.toJSON(); - } - view.dispatch(view.state.tr. - setSelection(textSelection). // select the current summarized text (or where it will be if its collapsed) - replaceSelection(!visible ? new Slice(Fragment.fromArray([]), 0, 0) : node.attrs.text). // collapse/expand it - setNodeMarkup(getPos(), undefined, attrs)); // update the attrs - e.preventDefault(); - e.stopPropagation(); - this._collapsed.className = this.className(visible); - }; - (this as any).dom = this._collapsed; - } - selectNode() { } - - deselectNode() { } - - className = (visible: boolean) => "formattedTextBox-summarizer" + (visible ? "" : "-collapsed"); - - updateSummarizedText(start?: any) { - const mtype = this._view.state.schema.marks.summarize; - const mtypeInc = this._view.state.schema.marks.summarizeInclusive; - let endPos = start; - - const visited = new Set(); - for (let i: number = start + 1; i < this._view.state.doc.nodeSize - 1; i++) { - let skip = false; - this._view.state.doc.nodesBetween(start, i, (node: Node, pos: number, parent: Node, index: number) => { - if (node.isLeaf && !visited.has(node) && !skip) { - if (node.marks.find((m: any) => m.type === mtype || m.type === mtypeInc)) { - visited.add(node); - endPos = i + node.nodeSize - 1; - } - else skip = true; - } - }); - } - return TextSelection.create(this._view.state.doc, start, endPos); - } -} \ No newline at end of file diff --git a/src/client/util/SummaryView.tsx b/src/client/util/SummaryView.tsx deleted file mode 100644 index 89908d8ee..000000000 --- a/src/client/util/SummaryView.tsx +++ /dev/null @@ -1,81 +0,0 @@ -import { TextSelection } from "prosemirror-state"; -import { Fragment, Node, Slice } from "prosemirror-model"; - -import React = require("react"); - -interface ISummaryView { - node: any; - view: any; - getPos: any; - self: any; -} -export class SummaryView extends React.Component { - - onPointerDown = (e: any) => { - const visible = !this.props.node.attrs.visibility; - const attrs = { ...this.props.node.attrs, visibility: visible }; - let textSelection = TextSelection.create(this.props.view.state.doc, this.props.getPos() + 1); - if (!visible) { // update summarized text and save in attrs - textSelection = this.updateSummarizedText(this.props.getPos() + 1); - attrs.text = textSelection.content(); - attrs.textslice = attrs.text.toJSON(); - } - this.props.view.dispatch(this.props.view.state.tr. - setSelection(textSelection). // select the current summarized text (or where it will be if its collapsed) - replaceSelection(!visible ? new Slice(Fragment.fromArray([]), 0, 0) : this.props.node.attrs.text). // collapse/expand it - setNodeMarkup(this.props.getPos(), undefined, attrs)); // update the attrs - e.preventDefault(); - e.stopPropagation(); - const _collapsed = document.getElementById('collapse') as HTMLElement; - _collapsed.className = this.className(visible); - } - - updateSummarizedText(start?: any) { - const mtype = this.props.view.state.schema.marks.summarize; - const mtypeInc = this.props.view.state.schema.marks.summarizeInclusive; - let endPos = start; - - const visited = new Set(); - for (let i: number = start + 1; i < this.props.view.state.doc.nodeSize - 1; i++) { - let skip = false; - this.props.view.state.doc.nodesBetween(start, i, (node: Node, pos: number, parent: Node, index: number) => { - if (this.props.node.isLeaf && !visited.has(node) && !skip) { - if (this.props.node.marks.find((m: any) => m.type === mtype || m.type === mtypeInc)) { - visited.add(node); - endPos = i + this.props.node.nodeSize - 1; - } - else skip = true; - } - }); - } - return TextSelection.create(this.props.view.state.doc, start, endPos); - } - - className = (visible: boolean) => "formattedTextBox-summarizer" + (visible ? "" : "-collapsed"); - - selectNode() { } - - deselectNode() { } - - render() { - const _view = this.props.node.view; - const js = this.props.node.toJSon; - - this.props.node.toJSON = function () { - return js.apply(this, arguments); - }; - - const spanCollapsedClassName = this.className(this.props.node.attrs.visibility); - - return ( - - - - ); - - } -} \ No newline at end of file diff --git a/src/client/util/TooltipTextMenu.scss b/src/client/util/TooltipTextMenu.scss deleted file mode 100644 index e2149e9c1..000000000 --- a/src/client/util/TooltipTextMenu.scss +++ /dev/null @@ -1,372 +0,0 @@ -@import "../views/globalCssVariables"; -.ProseMirror-menu-dropdown-wrap { - display: inline-block; - position: relative; -} - -.ProseMirror-menu-dropdown { - vertical-align: 1px; - cursor: pointer; - position: relative; - padding: 0 15px 0 4px; - background: white; - border-radius: 2px; - text-align: left; - font-size: 12px; - white-space: nowrap; - margin-right: 4px; - - &:after { - content: ""; - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-top: 4px solid currentColor; - opacity: .6; - position: absolute; - right: 4px; - top: calc(50% - 2px); - } -} - -.ProseMirror-menu-submenu-wrap { - position: relative; - margin-right: -4px; -} - -.ProseMirror-menu-dropdown-menu, -.ProseMirror-menu-submenu { - font-size: 12px; - background: white; - border: 1px solid rgb(223, 223, 223); - min-width: 40px; - z-index: 50000; - position: absolute; - box-sizing: content-box; - - .ProseMirror-menu-dropdown-item { - cursor: pointer; - z-index: 100000; - text-align: left; - padding: 3px; - - &:hover { - background-color: $light-color-secondary; - } - } -} - - -.ProseMirror-menu-submenu-label:after { - content: ""; - border-top: 4px solid transparent; - border-bottom: 4px solid transparent; - border-left: 4px solid currentColor; - opacity: .6; - position: absolute; - right: 4px; - top: calc(50% - 4px); -} - - .ProseMirror-icon { - display: inline-block; - // line-height: .8; - // vertical-align: -2px; /* Compensate for padding */ - // padding: 2px 8px; - cursor: pointer; - - &.ProseMirror-menu-disabled { - cursor: default; - } - - svg { - fill:white; - height: 1em; - } - - span { - vertical-align: text-top; - } - } - -.wrapper { - position: absolute; - pointer-events: all; - display: flex; - align-items: center; - transform: translateY(-85px); - - height: 35px; - background: #323232; - border-radius: 6px; - box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.25); - -} - -.tooltipMenu, .basic-tools { - z-index: 20000; - pointer-events: all; - padding: 3px; - padding-bottom: 5px; - display: flex; - align-items: center; - - .ProseMirror-example-setup-style hr { - padding: 2px 10px; - border: none; - margin: 1em 0; - } - - .ProseMirror-example-setup-style hr:after { - content: ""; - display: block; - height: 1px; - background-color: silver; - line-height: 2px; - } -} - -.menuicon { - width: 25px; - height: 25px; - cursor: pointer; - text-align: center; - line-height: 25px; - margin: 0 2px; - border-radius: 3px; - - &:hover { - background-color: black; - - #link-drag { - background-color: black; - } - } - - &> * { - margin-top: 50%; - margin-left: 50%; - transform: translate(-50%, -50%); - } - - svg { - fill: white; - width: 18px; - height: 18px; - } -} - -.menuicon-active { - width: 25px; - height: 25px; - cursor: pointer; - text-align: center; - line-height: 25px; - margin: 0 2px; - border-radius: 3px; - - &:hover { - background-color: black; - } - - &> * { - margin-top: 50%; - margin-left: 50%; - transform: translate(-50%, -50%); - } - - svg { - fill: greenyellow; - width: 18px; - height: 18px; - } -} - -#colorPicker { - position: relative; - - svg { - width: 18px; - height: 18px; - // margin-top: 11px; - } - - .buttonColor { - position: absolute; - top: 24px; - left: 1px; - width: 24px; - height: 4px; - margin-top: 0; - } -} - -#link-drag { - background-color: #323232; -} - -.underline svg { - margin-top: 13px; -} - - .font-size-indicator { - font-size: 12px; - padding-right: 0px; - } - .summarize{ - color: white; - height: 20px; - text-align: center; - } - - -.brush{ - display: inline-block; - width: 1em; - height: 1em; - stroke-width: 0; - stroke: currentColor; - fill: currentColor; - margin-right: 15px; -} - -.brush-active{ - display: inline-block; - width: 1em; - height: 1em; - stroke-width: 3; - fill: greenyellow; - margin-right: 15px; -} - -.dragger-wrapper { - color: #eee; - height: 22px; - padding: 0 5px; - box-sizing: content-box; - cursor: grab; - - .dragger { - width: 18px; - height: 100%; - display: flex; - justify-content: space-evenly; - } - - .dragger-line { - width: 2px; - height: 100%; - background-color: black; - } -} - -.button-dropdown-wrapper { - display: flex; - align-content: center; - - &:hover { - background-color: black; - } -} - -.buttonSettings-dropdown { - - &.ProseMirror-menu-dropdown { - width: 10px; - height: 25px; - margin: 0; - padding: 0 2px; - background-color: #323232; - text-align: center; - - &:after { - border-top: 4px solid white; - right: 2px; - } - - &:hover { - background-color: black; - } - } - - &.ProseMirror-menu-dropdown-menu { - min-width: 150px; - left: -27px; - top: 31px; - background-color: #323232; - border: 1px solid #4d4d4d; - color: $light-color-secondary; - // border: none; - // border: 1px solid $light-color-secondary; - border-radius: 0 6px 6px 6px; - padding: 3px; - box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.25); - - .ProseMirror-menu-dropdown-item{ - cursor: default; - - &:last-child { - border-bottom: none; - } - - &:hover { - background-color: #323232; - } - - .button-setting, .button-setting-disabled { - padding: 2px; - border-radius: 2px; - } - - .button-setting:hover { - cursor: pointer; - background-color: black; - } - - .separated-button { - border-top: 1px solid $light-color-secondary; - padding-top: 6px; - } - - input { - color: black; - border: none; - border-radius: 1px; - padding: 3px; - } - - button { - padding: 6px; - background-color: #323232; - border: 1px solid black; - border-radius: 1px; - - &:hover { - background-color: black; - } - } - } - - - } -} - -.colorPicker-wrapper { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - margin-top: 3px; - margin-left: -3px; - width: calc(100% + 6px); -} - -button.colorPicker { - width: 20px; - height: 20px; - border-radius: 15px !important; - margin: 3px; - border: none !important; - - &.active { - border: 2px solid white !important; - } -} diff --git a/src/client/util/marks_rts.ts b/src/client/util/marks_rts.ts deleted file mode 100644 index 75d7109e4..000000000 --- a/src/client/util/marks_rts.ts +++ /dev/null @@ -1,296 +0,0 @@ -import React = require("react"); -import { DOMOutputSpecArray, Fragment, MarkSpec, Node, NodeSpec, Schema, Slice } from "prosemirror-model"; -import { Doc } from "../../new_fields/Doc"; - - -const emDOM: DOMOutputSpecArray = ["em", 0]; -const strongDOM: DOMOutputSpecArray = ["strong", 0]; -const codeDOM: DOMOutputSpecArray = ["code", 0]; - -// :: Object [Specs](#model.MarkSpec) for the marks in the schema. -export const marks: { [index: string]: MarkSpec } = { - // :: MarkSpec A link. Has `href` and `title` attributes. `title` - // defaults to the empty string. Rendered and parsed as an `` - // element. - link: { - attrs: { - href: {}, - targetId: { default: "" }, - linkId: { default: "" }, - showPreview: { default: true }, - location: { default: null }, - title: { default: null }, - docref: { default: false } // flags whether the linked text comes from a document within Dash. If so, an attribution label is appended after the text - }, - inclusive: false, - parseDOM: [{ - tag: "a[href]", getAttrs(dom: any) { - return { href: dom.getAttribute("href"), location: dom.getAttribute("location"), title: dom.getAttribute("title"), targetId: dom.getAttribute("id") }; - } - }], - toDOM(node: any) { - return node.attrs.docref && node.attrs.title ? - ["div", ["span", `"`], ["span", 0], ["span", `"`], ["br"], ["a", { ...node.attrs, class: "prosemirror-attribution", title: `${node.attrs.title}` }, node.attrs.title], ["br"]] : - ["a", { ...node.attrs, id: node.attrs.linkId + node.attrs.targetId, title: `${node.attrs.title}` }, 0]; - } - }, - - - // :: MarkSpec Coloring on text. Has `color` attribute that defined the color of the marked text. - pFontColor: { - attrs: { - color: { default: "#000" } - }, - inclusive: true, - parseDOM: [{ - tag: "span", getAttrs(dom: any) { - return { color: dom.getAttribute("color") }; - } - }], - toDOM(node: any) { - return node.attrs.color ? ['span', { style: 'color:' + node.attrs.color }] : ['span', 0]; - } - }, - - marker: { - attrs: { - highlight: { default: "transparent" } - }, - inclusive: true, - parseDOM: [{ - tag: "span", getAttrs(dom: any) { - return { highlight: dom.getAttribute("backgroundColor") }; - } - }], - toDOM(node: any) { - return node.attrs.highlight ? ['span', { style: 'background-color:' + node.attrs.highlight }] : ['span', { style: 'background-color: transparent' }]; - } - }, - - // :: MarkSpec An emphasis mark. Rendered as an `` element. - // Has parse rules that also match `` and `font-style: italic`. - em: { - parseDOM: [{ tag: "i" }, { tag: "em" }, { style: "font-style: italic" }], - toDOM() { return emDOM; } - }, - - // :: MarkSpec A strong mark. Rendered as ``, parse rules - // also match `` and `font-weight: bold`. - strong: { - parseDOM: [{ tag: "strong" }, - { tag: "b" }, - { style: "font-weight" }], - toDOM() { return strongDOM; } - }, - - strikethrough: { - parseDOM: [ - { tag: 'strike' }, - { style: 'text-decoration=line-through' }, - { style: 'text-decoration-line=line-through' } - ], - toDOM: () => ['span', { - style: 'text-decoration-line:line-through' - }] - }, - - subscript: { - excludes: 'superscript', - parseDOM: [ - { tag: 'sub' }, - { style: 'vertical-align=sub' } - ], - toDOM: () => ['sub'] - }, - - superscript: { - excludes: 'subscript', - parseDOM: [ - { tag: 'sup' }, - { style: 'vertical-align=super' } - ], - toDOM: () => ['sup'] - }, - - mbulletType: { - attrs: { - bulletType: { default: "decimal" } - }, - toDOM(node: any) { - return ['span', { - style: `background: ${node.attrs.bulletType === "decimal" ? "yellow" : node.attrs.bulletType === "upper-alpha" ? "blue" : "green"}` - }]; - } - }, - - metadata: { - toDOM() { - return ['span', { style: 'font-size:75%; background:rgba(100, 100, 100, 0.2); ' }]; - } - }, - metadataKey: { - toDOM() { - return ['span', { style: 'font-style:italic; ' }]; - } - }, - metadataVal: { - toDOM() { - return ['span']; - } - }, - - summarizeInclusive: { - parseDOM: [ - { - tag: "span", - getAttrs: (p: any) => { - if (typeof (p) !== "string") { - const style = getComputedStyle(p); - if (style.textDecoration === "underline") return null; - if (p.parentElement.outerHTML.indexOf("text-decoration: underline") !== -1 && - p.parentElement.outerHTML.indexOf("text-decoration-style: solid") !== -1) { - return null; - } - } - return false; - } - }, - ], - inclusive: true, - toDOM() { - return ['span', { - style: 'text-decoration: underline; text-decoration-style: solid; text-decoration-color: rgba(204, 206, 210, 0.92)' - }]; - } - }, - - summarize: { - inclusive: false, - parseDOM: [ - { - tag: "span", - getAttrs: (p: any) => { - if (typeof (p) !== "string") { - const style = getComputedStyle(p); - if (style.textDecoration === "underline") return null; - if (p.parentElement.outerHTML.indexOf("text-decoration: underline") !== -1 && - p.parentElement.outerHTML.indexOf("text-decoration-style: dotted") !== -1) { - return null; - } - } - return false; - } - }, - ], - toDOM() { - return ['span', { - style: 'text-decoration: underline; text-decoration-style: dotted; text-decoration-color: rgba(204, 206, 210, 0.92)' - }]; - } - }, - - underline: { - parseDOM: [ - { - tag: "span", - getAttrs: (p: any) => { - if (typeof (p) !== "string") { - const style = getComputedStyle(p); - if (style.textDecoration === "underline" || p.parentElement.outerHTML.indexOf("text-decoration-style:line") !== -1) { - return null; - } - } - return false; - } - } - // { style: "text-decoration=underline" } - ], - toDOM: () => ['span', { - style: 'text-decoration:underline;text-decoration-style:line' - }] - }, - - search_highlight: { - attrs: { - selected: { default: false } - }, - parseDOM: [{ style: 'background: yellow' }], - toDOM(node: any) { - return ['span', { - style: `background: ${node.attrs.selected ? "orange" : "yellow"}` - }]; - } - }, - - // the id of the user who entered the text - user_mark: { - attrs: { - userid: { default: "" }, - modified: { default: "when?" }, // 1 second intervals since 1970 - }, - group: "inline", - toDOM(node: any) { - const uid = node.attrs.userid.replace(".", "").replace("@", ""); - const min = Math.round(node.attrs.modified / 12); - const hr = Math.round(min / 60); - const day = Math.round(hr / 60 / 24); - const remote = node.attrs.userid !== Doc.CurrentUserEmail ? " userMark-remote" : ""; - return ['span', { class: "userMark-" + uid + remote + " userMark-min-" + min + " userMark-hr-" + hr + " userMark-day-" + day }, 0]; - } - }, - // the id of the user who entered the text - user_tag: { - attrs: { - userid: { default: "" }, - modified: { default: "when?" }, // 1 second intervals since 1970 - tag: { default: "" } - }, - group: "inline", - inclusive: false, - toDOM(node: any) { - const uid = node.attrs.userid.replace(".", "").replace("@", ""); - return ['span', { class: "userTag-" + uid + " userTag-" + node.attrs.tag }, 0]; - } - }, - - - // :: MarkSpec Code font mark. Represented as a `` element. - code: { - parseDOM: [{ tag: "code" }], - toDOM() { return codeDOM; } - }, - - /* FONTS */ - pFontFamily: { - attrs: { - family: { default: "Crimson Text" }, - }, - parseDOM: [{ - tag: "span", getAttrs(dom: any) { - const cstyle = getComputedStyle(dom); - if (cstyle.font) { - if (cstyle.font.indexOf("Times New Roman") !== -1) return { family: "Times New Roman" }; - if (cstyle.font.indexOf("Arial") !== -1) return { family: "Arial" }; - if (cstyle.font.indexOf("Georgia") !== -1) return { family: "Georgia" }; - if (cstyle.font.indexOf("Comic Sans") !== -1) return { family: "Comic Sans MS" }; - if (cstyle.font.indexOf("Tahoma") !== -1) return { family: "Tahoma" }; - if (cstyle.font.indexOf("Crimson") !== -1) return { family: "Crimson Text" }; - } - } - }], - toDOM: (node) => ['span', { - style: `font-family: "${node.attrs.family}";` - }] - }, - - /** FONT SIZES */ - pFontSize: { - attrs: { - fontSize: { default: 10 } - }, - parseDOM: [{ style: 'font-size: 10px;' }], - toDOM: (node) => ['span', { - style: `font-size: ${node.attrs.fontSize}px;` - }] - }, -}; diff --git a/src/client/util/nodes_rts.ts b/src/client/util/nodes_rts.ts deleted file mode 100644 index e7bcf444a..000000000 --- a/src/client/util/nodes_rts.ts +++ /dev/null @@ -1,264 +0,0 @@ -import React = require("react"); -import { DOMOutputSpecArray, Fragment, MarkSpec, Node, NodeSpec, Schema, Slice } from "prosemirror-model"; -import { bulletList, listItem, orderedList } from 'prosemirror-schema-list'; -import ParagraphNodeSpec from "./ParagraphNodeSpec"; - -const blockquoteDOM: DOMOutputSpecArray = ["blockquote", 0], hrDOM: DOMOutputSpecArray = ["hr"], - preDOM: DOMOutputSpecArray = ["pre", ["code", 0]], brDOM: DOMOutputSpecArray = ["br"], ulDOM: DOMOutputSpecArray = ["ul", 0]; - -// :: Object -// [Specs](#model.NodeSpec) for the nodes defined in this schema. -export const nodes: { [index: string]: NodeSpec } = { - // :: NodeSpec The top level document node. - doc: { - content: "block+" - }, - - footnote: { - group: "inline", - content: "inline*", - inline: true, - attrs: { - visibility: { default: false } - }, - // This makes the view treat the node as a leaf, even though it - // technically has content - atom: true, - toDOM: () => ["footnote", 0], - parseDOM: [{ tag: "footnote" }] - }, - - paragraph: ParagraphNodeSpec, - - // :: NodeSpec A blockquote (`
`) wrapping one or more blocks. - blockquote: { - content: "block+", - group: "block", - defining: true, - parseDOM: [{ tag: "blockquote" }], - toDOM() { return blockquoteDOM; } - }, - - // :: NodeSpec A horizontal rule (`
`). - horizontal_rule: { - group: "block", - parseDOM: [{ tag: "hr" }], - toDOM() { return hrDOM; } - }, - - // :: NodeSpec A heading textblock, with a `level` attribute that - // should hold the number 1 to 6. Parsed and serialized as `

` to - // `

` elements. - heading: { - attrs: { level: { default: 1 } }, - content: "inline*", - group: "block", - defining: true, - parseDOM: [{ tag: "h1", attrs: { level: 1 } }, - { tag: "h2", attrs: { level: 2 } }, - { tag: "h3", attrs: { level: 3 } }, - { tag: "h4", attrs: { level: 4 } }, - { tag: "h5", attrs: { level: 5 } }, - { tag: "h6", attrs: { level: 6 } }], - toDOM(node: any) { return ["h" + node.attrs.level, 0]; } - }, - - // :: NodeSpec A code listing. Disallows marks or non-text inline - // nodes by default. Represented as a `
` element with a
-    // `` element inside of it.
-    code_block: {
-        content: "text*",
-        marks: "",
-        group: "block",
-        code: true,
-        defining: true,
-        parseDOM: [{ tag: "pre", preserveWhitespace: "full" }],
-        toDOM() { return preDOM; }
-    },
-
-    // :: NodeSpec The text node.
-    text: {
-        group: "inline"
-    },
-
-    dashComment: {
-        attrs: {
-            docid: { default: "" },
-        },
-        inline: true,
-        group: "inline",
-        toDOM(node) {
-            const attrs = { style: `width: 40px` };
-            return ["span", { ...node.attrs, ...attrs }, "←"];
-        },
-    },
-
-    summary: {
-        inline: true,
-        attrs: {
-            visibility: { default: false },
-            text: { default: undefined },
-            textslice: { default: undefined },
-        },
-        group: "inline",
-        toDOM(node) {
-            const attrs = { style: `width: 40px` };
-            return ["span", { ...node.attrs, ...attrs }];
-        },
-    },
-
-    // :: NodeSpec An inline image (``) node. Supports `src`,
-    // `alt`, and `href` attributes. The latter two default to the empty
-    // string.
-    image: {
-        inline: true,
-        attrs: {
-            src: {},
-            agnostic: { default: null },
-            width: { default: 100 },
-            alt: { default: null },
-            title: { default: null },
-            float: { default: "left" },
-            location: { default: "onRight" },
-            docid: { default: "" }
-        },
-        group: "inline",
-        draggable: true,
-        parseDOM: [{
-            tag: "img[src]", getAttrs(dom: any) {
-                return {
-                    src: dom.getAttribute("src"),
-                    title: dom.getAttribute("title"),
-                    alt: dom.getAttribute("alt"),
-                    width: Math.min(100, Number(dom.getAttribute("width"))),
-                };
-            }
-        }],
-        // TODO if we don't define toDom, dragging the image crashes. Why?
-        toDOM(node) {
-            const attrs = { style: `width: ${node.attrs.width}` };
-            return ["img", { ...node.attrs, ...attrs }];
-        }
-    },
-
-    dashDoc: {
-        inline: true,
-        attrs: {
-            width: { default: 200 },
-            height: { default: 100 },
-            title: { default: null },
-            float: { default: "right" },
-            location: { default: "onRight" },
-            hidden: { default: false },
-            fieldKey: { default: "" },
-            docid: { default: "" },
-            alias: { default: "" }
-        },
-        group: "inline",
-        draggable: false,
-        toDOM(node) {
-            const attrs = { style: `width: ${node.attrs.width}, height: ${node.attrs.height}` };
-            return ["div", { ...node.attrs, ...attrs }];
-        }
-    },
-
-    dashField: {
-        inline: true,
-        attrs: {
-            fieldKey: { default: "" },
-            docid: { default: "" }
-        },
-        group: "inline",
-        draggable: false,
-        toDOM(node) {
-            const attrs = { style: `width: ${node.attrs.width}, height: ${node.attrs.height}` };
-            return ["div", { ...node.attrs, ...attrs }];
-        }
-    },
-
-    video: {
-        inline: true,
-        attrs: {
-            src: {},
-            width: { default: "100px" },
-            alt: { default: null },
-            title: { default: null }
-        },
-        group: "inline",
-        draggable: true,
-        parseDOM: [{
-            tag: "video[src]", getAttrs(dom: any) {
-                return {
-                    src: dom.getAttribute("src"),
-                    title: dom.getAttribute("title"),
-                    alt: dom.getAttribute("alt"),
-                    width: Math.min(100, Number(dom.getAttribute("width"))),
-                };
-            }
-        }],
-        toDOM(node) {
-            const attrs = { style: `width: ${node.attrs.width}` };
-            return ["video", { ...node.attrs, ...attrs }];
-        }
-    },
-
-    // :: NodeSpec A hard line break, represented in the DOM as `
`. - hard_break: { - inline: true, - group: "inline", - selectable: false, - parseDOM: [{ tag: "br" }], - toDOM() { return brDOM; } - }, - - ordered_list: { - ...orderedList, - content: 'list_item+', - group: 'block', - attrs: { - bulletStyle: { default: 0 }, - mapStyle: { default: "decimal" }, - setFontSize: { default: undefined }, - setFontFamily: { default: "inherit" }, - setFontColor: { default: "inherit" }, - inheritedFontSize: { default: undefined }, - visibility: { default: true }, - indent: { default: undefined } - }, - toDOM(node: Node) { - if (node.attrs.mapStyle === "bullet") return ['ul', 0]; - const map = node.attrs.bulletStyle ? node.attrs.mapStyle + node.attrs.bulletStyle : ""; - const fsize = node.attrs.setFontSize ? node.attrs.setFontSize : node.attrs.inheritedFontSize; - const ffam = node.attrs.setFontFamily; - const color = node.attrs.setFontColor; - return node.attrs.visibility ? - ['ol', { class: `${map}-ol`, style: `list-style: none; font-size: ${fsize}; font-family: ${ffam}; color:${color}; margin-left: ${node.attrs.indent}` }, 0] : - ['ol', { class: `${map}-ol`, style: `list-style: none;` }]; - } - }, - - bullet_list: { - ...bulletList, - content: 'list_item+', - group: 'block', - // parseDOM: [{ tag: "ul" }, { style: 'list-style-type=disc' }], - toDOM(node: Node) { - return ['ul', 0]; - } - }, - - list_item: { - attrs: { - bulletStyle: { default: 0 }, - mapStyle: { default: "decimal" }, - visibility: { default: true } - }, - ...listItem, - content: 'paragraph block*', - toDOM(node: any) { - const map = node.attrs.bulletStyle ? node.attrs.mapStyle + node.attrs.bulletStyle : ""; - return node.attrs.visibility ? ["li", { class: `${map}` }, 0] : ["li", { class: `${map}` }, "..."]; - //return ["li", { class: `${map}` }, 0]; - } - }, -}; \ No newline at end of file diff --git a/src/client/util/prosemirrorPatches.js b/src/client/util/prosemirrorPatches.js deleted file mode 100644 index 269423482..000000000 --- a/src/client/util/prosemirrorPatches.js +++ /dev/null @@ -1,139 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -var prosemirrorInputRules = require('prosemirror-inputrules'); -var prosemirrorTransform = require('prosemirror-transform'); -var prosemirrorModel = require('prosemirror-model'); - -exports.liftListItem = liftListItem; -exports.sinkListItem = sinkListItem; -exports.wrappingInputRule = wrappingInputRule; -// :: (NodeType) → (state: EditorState, dispatch: ?(tr: Transaction)) → bool -// Create a command to lift the list item around the selection up into -// a wrapping list. -function liftListItem(itemType) { - return function (tx, dispatch) { - var ref = tx.selection; - var $from = ref.$from; - var $to = ref.$to; - var range = $from.blockRange($to, function (node) { return node.childCount && node.firstChild.type == itemType; }); - if (!range) { return false } - if (!dispatch) { return true } - if ($from.node(range.depth - 1).type == itemType) // Inside a parent list - { return liftToOuterList(tx, dispatch, itemType, range) } - else // Outer list node - { return liftOutOfList(tx, dispatch, range) } - } -} - -function liftToOuterList(tr, dispatch, itemType, range) { - var end = range.end, endOfList = range.$to.end(range.depth); - if (end < endOfList) { - // There are siblings after the lifted items, which must become - // children of the last item - tr.step(new prosemirrorTransform.ReplaceAroundStep(end - 1, endOfList, end, endOfList, - new prosemirrorModel.Slice(prosemirrorModel.Fragment.from(itemType.create(null, range.parent.copy())), 1, 0), 1, true)); - range = new prosemirrorModel.NodeRange(tr.doc.resolve(range.$from.pos), tr.doc.resolve(endOfList), range.depth); - } - dispatch(tr.lift(range, prosemirrorTransform.liftTarget(range)).scrollIntoView()); - return true -} - -function liftOutOfList(tr, dispatch, range) { - var list = range.parent; - // Merge the list items into a single big item - for (var pos = range.end, i = range.endIndex - 1, e = range.startIndex; i > e; i--) { - pos -= list.child(i).nodeSize; - tr.delete(pos - 1, pos + 1); - } - var $start = tr.doc.resolve(range.start), item = $start.nodeAfter; - var atStart = range.startIndex == 0, atEnd = range.endIndex == list.childCount; - var parent = $start.node(-1), indexBefore = $start.index(-1); - if (!parent.canReplace(indexBefore + (atStart ? 0 : 1), indexBefore + 1, - item.content.append(atEnd ? prosemirrorModel.Fragment.empty : prosemirrorModel.Fragment.from(list)))) { return false } - var start = $start.pos, end = start + item.nodeSize; - // Strip off the surrounding list. At the sides where we're not at - // the end of the list, the existing list is closed. At sides where - // this is the end, it is overwritten to its end. - tr.step(new prosemirrorTransform.ReplaceAroundStep(start - (atStart ? 1 : 0), end + (atEnd ? 1 : 0), start + 1, end - 1, - new prosemirrorModel.Slice((atStart ? prosemirrorModel.Fragment.empty : prosemirrorModel.Fragment.from(list.copy(prosemirrorModel.Fragment.empty))) - .append(atEnd ? prosemirrorModel.Fragment.empty : prosemirrorModel.Fragment.from(list.copy(prosemirrorModel.Fragment.empty))), - atStart ? 0 : 1, atEnd ? 0 : 1), atStart ? 0 : 1)); - dispatch(tr.scrollIntoView()); - return true -} - -// :: (NodeType) → (state: EditorState, dispatch: ?(tr: Transaction)) → bool -// Create a command to sink the list item around the selection down -// into an inner list. -function sinkListItem(itemType) { - return function (state, dispatch) { - var ref = state.selection; - var $from = ref.$from; - var $to = ref.$to; - var range = $from.blockRange($to, function (node) { return node.childCount && node.firstChild.type == itemType; }); - if (!range) { return false } - var startIndex = range.startIndex; - if (startIndex == 0) { return false } - var parent = range.parent, nodeBefore = parent.child(startIndex - 1); - if (nodeBefore.type != itemType) { return false; } - - if (dispatch) { - var nestedBefore = nodeBefore.lastChild && nodeBefore.lastChild.type == parent.type; - var inner = prosemirrorModel.Fragment.from(nestedBefore ? itemType.create() : null); - let slice = new prosemirrorModel.Slice(prosemirrorModel.Fragment.from(itemType.create(null, prosemirrorModel.Fragment.from(parent.type.create({ ...parent.attrs, fontSize: parent.attrs.fontSize ? parent.attrs.fontSize - 4 : undefined }, inner)))), - nestedBefore ? 3 : 1, 0); - var before = range.start, after = range.end; - dispatch(state.tr.step(new prosemirrorTransform.ReplaceAroundStep(before - (nestedBefore ? 3 : 1), after, - before, after, slice, 1, true)) - .scrollIntoView()); - } - return true - } -} - -function findWrappingOutside(range, type) { - var parent = range.parent; - var startIndex = range.startIndex; - var endIndex = range.endIndex; - var around = parent.contentMatchAt(startIndex).findWrapping(type); - if (!around) { return null } - var outer = around.length ? around[0] : type; - return parent.canReplaceWith(startIndex, endIndex, outer) ? around : null -} - -function findWrappingInside(range, type) { - var parent = range.parent; - var startIndex = range.startIndex; - var endIndex = range.endIndex; - var inner = parent.child(startIndex); - var inside = type.contentMatch.findWrapping(inner.type); - if (!inside) { return null } - var lastType = inside.length ? inside[inside.length - 1] : type; - var innerMatch = lastType.contentMatch; - for (var i = startIndex; innerMatch && i < endIndex; i++) { innerMatch = innerMatch.matchType(parent.child(i).type); } - if (!innerMatch || !innerMatch.validEnd) { return null } - return inside -} -function findWrapping(range, nodeType, attrs, innerRange, customWithAttrs = null) { - if (innerRange === void 0) innerRange = range; - let withAttrs = (type) => ({ type: type, attrs: null }); - var around = findWrappingOutside(range, nodeType); - var inner = around && findWrappingInside(innerRange, nodeType); - if (!inner) { return null } - return around.map(withAttrs).concat({ type: nodeType, attrs: attrs }).concat(inner.map(customWithAttrs ? customWithAttrs : withAttrs)) -} -function wrappingInputRule(regexp, nodeType, getAttrs, joinPredicate, customWithAttrs = null) { - return new prosemirrorInputRules.InputRule(regexp, function (state, match, start, end) { - var attrs = getAttrs instanceof Function ? getAttrs(match) : getAttrs; - var tr = state.tr.delete(start, end); - var $start = tr.doc.resolve(start), range = $start.blockRange(), wrapping = range && findWrapping(range, nodeType, attrs, undefined, customWithAttrs); - if (!wrapping) { return null } - tr.wrap(range, wrapping); - var before = tr.doc.resolve(start - 1).nodeBefore; - if (before && before.type == nodeType && prosemirrorTransform.canJoin(tr.doc, start - 1) && - (!joinPredicate || joinPredicate(match, before))) { tr.join(start - 1); } - return tr - }) -} \ No newline at end of file diff --git a/src/client/util/schema_rts.ts b/src/client/util/schema_rts.ts deleted file mode 100644 index 83561073c..000000000 --- a/src/client/util/schema_rts.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Schema, Slice } from "prosemirror-model"; - -import { nodes } from "./nodes_rts"; -import { marks } from "./marks_rts"; - - -// :: Schema -// This schema rougly corresponds to the document schema used by -// [CommonMark](http://commonmark.org/), minus the list elements, -// which are defined in the [`prosemirror-schema-list`](#schema-list) -// module. -// -// To reuse elements from this schema, extend or read from its -// `spec.nodes` and `spec.marks` [properties](#model.Schema.spec). - -export const schema = new Schema({ nodes, marks }); - -const fromJson = schema.nodeFromJSON; - -schema.nodeFromJSON = (json: any) => { - const node = fromJson(json); - if (json.type === schema.nodes.summary.name) { - node.attrs.text = Slice.fromJSON(schema, node.attrs.textslice); - } - return node; -}; \ No newline at end of file diff --git a/src/client/views/DocumentButtonBar.tsx b/src/client/views/DocumentButtonBar.tsx index c02f79187..3624cdb6d 100644 --- a/src/client/views/DocumentButtonBar.tsx +++ b/src/client/views/DocumentButtonBar.tsx @@ -15,7 +15,7 @@ import './collections/ParentDocumentSelector.scss'; import './DocumentButtonBar.scss'; import { LinkMenu } from "./linking/LinkMenu"; import { DocumentView } from './nodes/DocumentView'; -import { GoogleRef } from "./nodes/FormattedTextBox"; +import { GoogleRef } from "./nodes/formattedText/FormattedTextBox"; import { TemplateMenu } from "./TemplateMenu"; import { Template, Templates } from "./Templates"; import React = require("react"); diff --git a/src/client/views/InkingControl.tsx b/src/client/views/InkingControl.tsx index 172c1864a..70ea955e1 100644 --- a/src/client/views/InkingControl.tsx +++ b/src/client/views/InkingControl.tsx @@ -8,7 +8,7 @@ import { Scripting } from "../util/Scripting"; import { SelectionManager } from "../util/SelectionManager"; import { undoBatch } from "../util/UndoManager"; import GestureOverlay from "./GestureOverlay"; -import { FormattedTextBox } from "./nodes/FormattedTextBox"; +import { FormattedTextBox } from "./nodes/formattedText/FormattedTextBox"; export class InkingControl { @observable static Instance: InkingControl; diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx index 8fb67c435..20238985d 100644 --- a/src/client/views/MainView.tsx +++ b/src/client/views/MainView.tsx @@ -19,7 +19,7 @@ import { DocServer } from '../DocServer'; import { Docs, DocumentOptions } from '../documents/Documents'; import { DocumentType } from '../documents/DocumentTypes'; import { HistoryUtil } from '../util/History'; -import RichTextMenu from '../util/RichTextMenu'; +import RichTextMenu from './nodes/formattedText/RichTextMenu'; import { Scripting } from '../util/Scripting'; import SettingsManager from '../util/SettingsManager'; import SharingManager from '../util/SharingManager'; diff --git a/src/client/views/collections/CollectionCarouselView.tsx b/src/client/views/collections/CollectionCarouselView.tsx index f4250e96d..eda8e5684 100644 --- a/src/client/views/collections/CollectionCarouselView.tsx +++ b/src/client/views/collections/CollectionCarouselView.tsx @@ -11,7 +11,7 @@ import "./CollectionCarouselView.scss"; import { CollectionSubView } from './CollectionSubView'; import { faCaretLeft, faCaretRight } from '@fortawesome/free-solid-svg-icons'; import { Doc } from '../../../new_fields/Doc'; -import { FormattedTextBox } from '../nodes/FormattedTextBox'; +import { FormattedTextBox } from '../nodes/formattedText/FormattedTextBox'; import { ContextMenu } from '../ContextMenu'; import { ObjectField } from '../../../new_fields/ObjectField'; diff --git a/src/client/views/collections/CollectionSubView.tsx b/src/client/views/collections/CollectionSubView.tsx index 49abc6ee6..fb7535d9f 100644 --- a/src/client/views/collections/CollectionSubView.tsx +++ b/src/client/views/collections/CollectionSubView.tsx @@ -15,7 +15,7 @@ import { DragManager, dropActionType } from "../../util/DragManager"; import { undoBatch, UndoManager } from "../../util/UndoManager"; import { DocComponent } from "../DocComponent"; import { FieldViewProps } from "../nodes/FieldView"; -import { FormattedTextBox, GoogleRef } from "../nodes/FormattedTextBox"; +import { FormattedTextBox, GoogleRef } from "../nodes/formattedText/FormattedTextBox"; import { CollectionView } from "./CollectionView"; import React = require("react"); import { basename } from 'path'; diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index 28b461313..92b27a0c6 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -32,7 +32,7 @@ import { ContextMenuProps } from "../../ContextMenuItem"; import { InkingControl } from "../../InkingControl"; import { CollectionFreeFormDocumentView } from "../../nodes/CollectionFreeFormDocumentView"; import { DocumentViewProps, DocumentView } from "../../nodes/DocumentView"; -import { FormattedTextBox } from "../../nodes/FormattedTextBox"; +import { FormattedTextBox } from "../../nodes/formattedText/FormattedTextBox"; import { pageSchema } from "../../nodes/ImageBox"; import PDFMenu from "../../pdf/PDFMenu"; import { CollectionDockingView } from "../CollectionDockingView"; diff --git a/src/client/views/collections/collectionFreeForm/MarqueeView.tsx b/src/client/views/collections/collectionFreeForm/MarqueeView.tsx index cd8166309..2d3bb6f3c 100644 --- a/src/client/views/collections/collectionFreeForm/MarqueeView.tsx +++ b/src/client/views/collections/collectionFreeForm/MarqueeView.tsx @@ -19,7 +19,7 @@ import React = require("react"); import { CognitiveServices } from "../../../cognitive_services/CognitiveServices"; import { RichTextField } from "../../../../new_fields/RichTextField"; import { CollectionView } from "../CollectionView"; -import { FormattedTextBox } from "../../nodes/FormattedTextBox"; +import { FormattedTextBox } from "../../nodes/formattedText/FormattedTextBox"; import { ScriptField } from "../../../../new_fields/ScriptField"; interface MarqueeViewProps { diff --git a/src/client/views/nodes/DocumentContentsView.tsx b/src/client/views/nodes/DocumentContentsView.tsx index cd78ac7b3..4d20d3e2c 100644 --- a/src/client/views/nodes/DocumentContentsView.tsx +++ b/src/client/views/nodes/DocumentContentsView.tsx @@ -19,7 +19,7 @@ import { DocumentViewProps } from "./DocumentView"; import "./DocumentView.scss"; import { FontIconBox } from "./FontIconBox"; import { FieldView, FieldViewProps } from "./FieldView"; -import { FormattedTextBox } from "./FormattedTextBox"; +import { FormattedTextBox } from "./formattedText/FormattedTextBox"; import { ImageBox } from "./ImageBox"; import { KeyValueBox } from "./KeyValueBox"; import { PDFBox } from "./PDFBox"; diff --git a/src/client/views/nodes/FormattedTextBox.scss b/src/client/views/nodes/FormattedTextBox.scss deleted file mode 100644 index 3bedb7127..000000000 --- a/src/client/views/nodes/FormattedTextBox.scss +++ /dev/null @@ -1,265 +0,0 @@ -@import "../globalCssVariables"; - -.ProseMirror { - width: 100%; - height: 100%; - min-height: 100%; -} - -.ProseMirror:focus { - outline: none !important; -} - -.formattedTextBox-cont { - touch-action: none; - cursor: text; - background: inherit; - padding: 0; - border-width: 0px; - border-radius: inherit; - border-color: $intermediate-color; - box-sizing: border-box; - background-color: inherit; - border-style: solid; - overflow-y: auto; - overflow-x: hidden; - color: initial; - max-height: 100%; - display: flex; - flex-direction: row; - transition: opacity 1s; - - .formattedTextBox-dictation { - height: 12px; - width: 10px; - top: 0px; - left: 0px; - position: absolute; - } -} -.formattedTextBox-outer { - position: relative; - overflow: auto; - display: inline-block; - width: 100%; - height: 100%; -} - -.formattedTextBox-sidebar-handle { - position: absolute; - top: calc(50% - 17.5px); - width: 10px; - height: 35px; - background: lightgray; - border-radius: 20px; - cursor:grabbing; -} - -.formattedTextBox-cont>.formattedTextBox-sidebar-handle { - right: 0; - left: unset; -} - -.formattedTextBox-sidebar, -.formattedTextBox-sidebar-inking { - border-left: dashed 1px black; - height: 100%; - display: inline-block; - position: absolute; - right: 0; - - .collectionfreeformview-container { - position: relative; - } - - >.formattedTextBox-sidebar-handle { - right: unset; - left: -5; - } -} - -.formattedTextBox-sidebar-inking { - pointer-events: all; -} - -.formattedTextBox-inner-rounded { - height: 70%; - width: 85%; - position: absolute; - overflow: auto; - top: 15%; - left: 10%; -} - -.formattedTextBox-inner-rounded, -.formattedTextBox-inner { - height: 100%; - white-space: pre-wrap; -} - -// .menuicon { -// display: inline-block; -// border-right: 1px solid rgba(0, 0, 0, 0.2); -// color: #888; -// line-height: 1; -// padding: 0 7px; -// margin: 1px; -// cursor: pointer; -// text-align: center; -// min-width: 1.4em; -// } - -.strong, -.heading { - font-weight: bold; -} - -.em { - font-style: italic; -} - -.userMarkOpen { - background: rgba(255, 255, 0, 0.267); - display: inline; -} - -.userMark { - background: rgba(255, 255, 0, 0.267); - font-size: 2px; - display: inline-grid; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - width: 10px; - min-height: 10px; - text-align: center; - align-content: center; -} - -footnote { - display: inline-block; - position: relative; - cursor: pointer; - - div { - padding: 0 !important; - } -} - -footnote::after { - content: counter(prosemirror-footnote); - vertical-align: super; - font-size: 75%; - counter-increment: prosemirror-footnote; -} - -.ProseMirror { - counter-reset: prosemirror-footnote; -} - -.footnote-tooltip { - cursor: auto; - font-size: 75%; - position: absolute; - left: -30px; - top: calc(100% + 10px); - background: silver; - padding: 3px; - border-radius: 2px; - max-width: 100px; - min-width: 50px; - width: max-content; -} - -.prosemirror-attribution { - font-size: 8px; -} - -.footnote-tooltip::before { - border: 5px solid silver; - border-top-width: 0px; - border-left-color: transparent; - border-right-color: transparent; - position: absolute; - top: -5px; - left: 27px; - content: " "; - height: 0; - width: 0; -} - - -.formattedTextBox-inlineComment { - position: relative; - width: 40px; - height: 20px; - &::before { - content: "→"; - } - &:hover { - background: orange; - } -} - -.formattedTextBox-summarizer { - opacity: 0.5; - position: relative; - width: 40px; - height: 20px; - &::after { - content: "←"; - } -} - -.formattedTextBox-summarizer-collapsed { - opacity: 0.5; - position: relative; - width: 40px; - height: 20px; - &::after { - content: "..."; - } -} - -.ProseMirror { - touch-action: none; - span { - font-family: inherit; - } - - ol, ul { - counter-reset: deci1 0 multi1 0; - padding-left: 1em; - font-family: inherit; - } - ol { - margin-left: 1em; - font-family: inherit; - } - - .decimal1-ol { counter-reset: deci1; p {display: inline; font-family: inherit} margin-left: 0; } - .decimal2-ol { counter-reset: deci2; p {display: inline; font-family: inherit} font-size: smaller; padding-left: 1em;} - .decimal3-ol { counter-reset: deci3; p {display: inline; font-family: inherit} font-size: smaller; padding-left: 2em;} - .decimal4-ol { counter-reset: deci4; p {display: inline; font-family: inherit} font-size: smaller; padding-left: 3em;} - .decimal5-ol { counter-reset: deci5; p {display: inline; font-family: inherit} font-size: smaller; } - .decimal6-ol { counter-reset: deci6; p {display: inline; font-family: inherit} font-size: smaller; } - .decimal7-ol { counter-reset: deci7; p {display: inline; font-family: inherit} font-size: smaller; } - - .multi1-ol { counter-reset: multi1; p {display: inline; font-family: inherit} margin-left: 0; padding-left: 1.2em } - .multi2-ol { counter-reset: multi2; p {display: inline; font-family: inherit} font-size: smaller; padding-left: 1.4em;} - .multi3-ol { counter-reset: multi3; p {display: inline; font-family: inherit} font-size: smaller; padding-left: 2em;} - .multi4-ol { counter-reset: multi4; p {display: inline; font-family: inherit} font-size: smaller; padding-left: 3.4em;} - - .decimal1:before { transition: 0.5s;counter-increment: deci1; display: inline-block; margin-left: -1em; width: 1em; content: counter(deci1) ". "; } - .decimal2:before { transition: 0.5s;counter-increment: deci2; display: inline-block; margin-left: -2.1em; width: 2.1em; content: counter(deci1) "."counter(deci2) ". "; } - .decimal3:before { transition: 0.5s;counter-increment: deci3; display: inline-block; margin-left: -2.85em;width: 2.85em; content: counter(deci1) "."counter(deci2) "."counter(deci3) ". "; } - .decimal4:before { transition: 0.5s;counter-increment: deci4; display: inline-block; margin-left: -3.85em;width: 3.85em; content: counter(deci1) "."counter(deci2) "."counter(deci3) "."counter(deci4) ". "; } - .decimal5:before { transition: 0.5s;counter-increment: deci5; display: inline-block; margin-left: -2em; width: 5em; content: counter(deci1) "."counter(deci2) "."counter(deci3) "."counter(deci4) "."counter(deci5) ". "; } - .decimal6:before { transition: 0.5s;counter-increment: deci6; display: inline-block; margin-left: -2em; width: 6em; content: counter(deci1) "."counter(deci2) "."counter(deci3) "."counter(deci4) "."counter(deci5) "."counter(deci6) ". "; } - .decimal7:before { transition: 0.5s;counter-increment: deci7; display: inline-block; margin-left: -2em; width: 7em; content: counter(deci1) "."counter(deci2) "."counter(deci3) "."counter(deci4) "."counter(deci5) "."counter(deci6) "."counter(deci7) ". "; } - - .multi1:before { transition: 0.5s;counter-increment: multi1; display: inline-block; margin-left: -1em; width: 1.2em; content: counter(multi1, upper-alpha) ". "; } - .multi2:before { transition: 0.5s;counter-increment: multi2; display: inline-block; margin-left: -2em; width: 2em; content: counter(multi1, upper-alpha) "."counter(multi2, decimal) ". "; } - .multi3:before { transition: 0.5s;counter-increment: multi3; display: inline-block; margin-left: -2.85em; width:2.85em; content: counter(multi1, upper-alpha) "."counter(multi2, decimal) "."counter(multi3, lower-alpha) ". "; } - .multi4:before { transition: 0.5s;counter-increment: multi4; display: inline-block; margin-left: -4.2em; width: 4.2em; content: counter(multi1, upper-alpha) "."counter(multi2, decimal) "."counter(multi3, lower-alpha) "."counter(multi4, lower-roman) ". "; } -} \ No newline at end of file diff --git a/src/client/views/nodes/FormattedTextBox.tsx b/src/client/views/nodes/FormattedTextBox.tsx deleted file mode 100644 index e65453aa0..000000000 --- a/src/client/views/nodes/FormattedTextBox.tsx +++ /dev/null @@ -1,1306 +0,0 @@ -import { library } from '@fortawesome/fontawesome-svg-core'; -import { faEdit, faSmile, faTextHeight, faUpload } from '@fortawesome/free-solid-svg-icons'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { isEqual } from "lodash"; -import { action, computed, IReactionDisposer, Lambda, observable, reaction, runInAction } from "mobx"; -import { observer } from "mobx-react"; -import { baseKeymap } from "prosemirror-commands"; -import { history } from "prosemirror-history"; -import { inputRules } from 'prosemirror-inputrules'; -import { keymap } from "prosemirror-keymap"; -import { Fragment, Mark, Node, Slice } from "prosemirror-model"; -import { EditorState, NodeSelection, Plugin, TextSelection, Transaction } from "prosemirror-state"; -import { ReplaceStep } from 'prosemirror-transform'; -import { EditorView } from "prosemirror-view"; -import { DateField } from '../../../new_fields/DateField'; -import { DataSym, Doc, DocListCast, DocListCastAsync, Field, HeightSym, Opt, WidthSym } from "../../../new_fields/Doc"; -import { documentSchema } from '../../../new_fields/documentSchemas'; -import { Id } from '../../../new_fields/FieldSymbols'; -import { InkTool } from '../../../new_fields/InkField'; -import { PrefetchProxy } from '../../../new_fields/Proxy'; -import { RichTextField } from "../../../new_fields/RichTextField"; -import { RichTextUtils } from '../../../new_fields/RichTextUtils'; -import { createSchema, makeInterface } from "../../../new_fields/Schema"; -import { Cast, DateCast, NumCast, StrCast } from "../../../new_fields/Types"; -import { TraceMobx } from '../../../new_fields/util'; -import { addStyleSheet, addStyleSheetRule, clearStyleSheetRules, emptyFunction, numberRange, returnOne, returnZero, Utils } from '../../../Utils'; -import { GoogleApiClientUtils, Pulls, Pushes } from '../../apis/google_docs/GoogleApiClientUtils'; -import { DocServer } from "../../DocServer"; -import { Docs, DocUtils } from '../../documents/Documents'; -import { DocumentType } from '../../documents/DocumentTypes'; -import { DictationManager } from '../../util/DictationManager'; -import { DragManager } from "../../util/DragManager"; -import { makeTemplate } from '../../util/DropConverter'; -import buildKeymap from "../../util/ProsemirrorExampleTransfer"; -import RichTextMenu from '../../util/RichTextMenu'; -import { RichTextRules } from "../../util/RichTextRules"; -// import { DashDocCommentView, DashDocView, DashFieldView, FootnoteView, ImageResizeView, OrderedListView, SummaryView } from "../../util/RichTextSchema"; -// import { DashDocCommentView, DashDocView, DashFieldView, FootnoteView, SummaryView } from "../../util/RichTextSchema"; -import { OrderedListView } from "../../util/RichTextSchema"; -import { ImageResizeView } from "../../util/ImageResizeView"; - -import { DashDocCommentView } from "../../util/DashDocCommentView"; -import { DashFieldView } from "../../util/DashFieldView"; -import { FootnoteView } from "../../util/FootnoteView"; -import { SummaryView } from "../../util/SummaryView"; -import { DashDocView } from "../../util/DashDocView"; - -import { schema } from "../../util/schema_rts"; -import { SelectionManager } from "../../util/SelectionManager"; -import { undoBatch, UndoManager } from "../../util/UndoManager"; -import { CollectionFreeFormView } from '../collections/collectionFreeForm/CollectionFreeFormView'; -import { ContextMenu } from '../ContextMenu'; -import { ContextMenuProps } from '../ContextMenuItem'; -import { ViewBoxAnnotatableComponent } from "../DocComponent"; -import { DocumentButtonBar } from '../DocumentButtonBar'; -import { InkingControl } from "../InkingControl"; -import { AudioBox } from './AudioBox'; -import { FieldView, FieldViewProps } from "./FieldView"; -import "./FormattedTextBox.scss"; -import { FormattedTextBoxComment, formattedTextBoxCommentPlugin } from './FormattedTextBoxComment'; -import React = require("react"); - -library.add(faEdit); -library.add(faSmile, faTextHeight, faUpload); - -export interface FormattedTextBoxProps { - hideOnLeave?: boolean; - makeLink?: () => Opt; - xMargin?: number; - yMargin?: number; -} - -const richTextSchema = createSchema({ - documentText: "string" -}); - -export const GoogleRef = "googleDocId"; - -type RichTextDocument = makeInterface<[typeof richTextSchema, typeof documentSchema]>; -const RichTextDocument = makeInterface(richTextSchema, documentSchema); - -type PullHandler = (exportState: Opt, dataDoc: Doc) => void; - -@observer -export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProps & FormattedTextBoxProps), RichTextDocument>(RichTextDocument) { - public static LayoutString(fieldStr: string) { return FieldView.LayoutString(FormattedTextBox, fieldStr); } - public static blankState = () => EditorState.create(FormattedTextBox.Instance.config); - public static Instance: FormattedTextBox; - public ProseRef?: HTMLDivElement; - private _ref: React.RefObject = React.createRef(); - private _scrollRef: React.RefObject = React.createRef(); - private _editorView: Opt; - private _applyingChange: boolean = false; - private _searchIndex = 0; - private _sidebarMovement = 0; - private _lastX = 0; - private _lastY = 0; - private _undoTyping?: UndoManager.Batch; - private _disposers: { [name: string]: IReactionDisposer } = {}; - private dropDisposer?: DragManager.DragDropDisposer; - - @computed get _recording() { return this.dataDoc.audioState === "recording"; } - set _recording(value) { this.dataDoc.audioState = value ? "recording" : undefined; } - - @observable private _entered = false; - - public static FocusedBox: FormattedTextBox | undefined; - public static SelectOnLoad = ""; - public static SelectOnLoadChar = ""; - public static IsFragment(html: string) { - return html.indexOf("data-pm-slice") !== -1; - } - public static GetHref(html: string): string { - const parser = new DOMParser(); - const parsedHtml = parser.parseFromString(html, 'text/html'); - if (parsedHtml.body.childNodes.length === 1 && parsedHtml.body.childNodes[0].childNodes.length === 1 && - (parsedHtml.body.childNodes[0].childNodes[0] as any).href) { - return (parsedHtml.body.childNodes[0].childNodes[0] as any).href; - } - return ""; - } - public static GetDocFromUrl(url: string) { - if (url.startsWith(document.location.origin)) { - const split = new URL(url).pathname.split("doc/"); - const docid = split[split.length - 1]; - return docid; - } - return ""; - } - - @undoBatch - public setFontColor(color: string) { - const view = this._editorView!; - if (view.state.selection.from === view.state.selection.to) return false; - if (view.state.selection.to - view.state.selection.from > view.state.doc.nodeSize - 3) { - this.layoutDoc.color = color; - } - const colorMark = view.state.schema.mark(view.state.schema.marks.pFontColor, { color: color }); - view.dispatch(view.state.tr.addMark(view.state.selection.from, view.state.selection.to, colorMark)); - return true; - } - - constructor(props: any) { - super(props); - FormattedTextBox.Instance = this; - this.updateHighlights(); - } - - public get CurrentDiv(): HTMLDivElement { return this._ref.current!; } - - linkOnDeselect: Map = new Map(); - - doLinkOnDeselect() { - Array.from(this.linkOnDeselect.entries()).map(entry => { - const key = entry[0]; - const value = entry[1]; - const id = Utils.GenerateDeterministicGuid(this.dataDoc[Id] + key); - DocServer.GetRefField(value).then(doc => { - DocServer.GetRefField(id).then(linkDoc => { - this.dataDoc[key] = doc || Docs.Create.FreeformDocument([], { title: value, _width: 500, _height: 500 }, value); - DocUtils.Publish(this.dataDoc[key] as Doc, value, this.props.addDocument, this.props.removeDocument); - if (linkDoc) { (linkDoc as Doc).anchor2 = this.dataDoc[key] as Doc; } - else DocUtils.MakeLink({ doc: this.props.Document }, { doc: this.dataDoc[key] as Doc }, "link to named target", id); - }); - }); - }); - this.linkOnDeselect.clear(); - } - - dispatchTransaction = (tx: Transaction) => { - if (this._editorView) { - const metadata = tx.selection.$from.marks().find((m: Mark) => m.type === schema.marks.metadata); - if (metadata) { - const range = tx.selection.$from.blockRange(tx.selection.$to); - let text = range ? tx.doc.textBetween(range.start, range.end) : ""; - let textEndSelection = tx.selection.to; - for (; textEndSelection < range!.end && text[textEndSelection - range!.start] !== " "; textEndSelection++) { } - text = text.substr(0, textEndSelection - range!.start); - text = text.split(" ")[text.split(" ").length - 1]; - const split = text.split("::"); - if (split.length > 1 && split[1]) { - const key = split[0]; - const value = split[split.length - 1]; - this.linkOnDeselect.set(key, value); - - const id = Utils.GenerateDeterministicGuid(this.dataDoc[Id] + key); - const link = this._editorView.state.schema.marks.link.create({ href: Utils.prepend("/doc/" + id), location: "onRight", title: value }); - const mval = this._editorView.state.schema.marks.metadataVal.create(); - const offset = (tx.selection.to === range!.end - 1 ? -1 : 0); - tx = tx.addMark(textEndSelection - value.length + offset, textEndSelection, link).addMark(textEndSelection - value.length + offset, textEndSelection, mval); - this.dataDoc[key] = value; - } - } - const state = this._editorView.state.apply(tx); - this._editorView.updateState(state); - (tx.storedMarks && !this._editorView.state.storedMarks) && (this._editorView.state.storedMarks = tx.storedMarks); - - const tsel = this._editorView.state.selection.$from; - tsel.marks().filter(m => m.type === this._editorView!.state.schema.marks.user_mark).map(m => AudioBox.SetScrubTime(Math.max(0, m.attrs.modified * 1000))); - const curText = state.doc.textBetween(0, state.doc.content.size, " \n"); - const curTemp = Cast(this.props.Document[this.props.fieldKey + "-textTemplate"], RichTextField); - if (!this._applyingChange) { - this._applyingChange = true; - this.dataDoc[this.props.fieldKey + "-lastModified"] = new DateField(new Date(Date.now())); - if (!curTemp || curText) { // if no template, or there's text, write it to the document. (if this is driven by a template, then this overwrites the template text which is intended) - this.dataDoc[this.props.fieldKey] = new RichTextField(JSON.stringify(state.toJSON()), curText); - this.dataDoc[this.props.fieldKey + "-noTemplate"] = (curTemp?.Text || "") !== curText; // mark the data field as being split from the template if it has been edited - } else { // if we've deleted all the text in a note driven by a template, then restore the template data - this._editorView.updateState(EditorState.fromJSON(this.config, JSON.parse(curTemp.Data))); - this.dataDoc[this.props.fieldKey + "-noTemplate"] = undefined; // mark the data field as not being split from any template it might have - } - this._applyingChange = false; - } - this.updateTitle(); - this.tryUpdateHeight(); - } - } - - updateTitle = () => { - if ((this.props.Document.isTemplateForField === "text" || !this.props.Document.isTemplateForField) && // only update the title if the data document's data field is changing - StrCast(this.dataDoc.title).startsWith("-") && this._editorView && !this.rootDoc.customTitle) { - const str = this._editorView.state.doc.textContent; - const titlestr = str.substr(0, Math.min(40, str.length)); - this.dataDoc.title = "-" + titlestr + (str.length > 40 ? "..." : ""); - } - } - - // needs a better API for taking in a set of words with target documents instead of just one target - public hyperlinkTerms = (terms: string[], target: Doc) => { - if (this._editorView && (this._editorView as any).docView && terms.some(t => t)) { - const res = terms.filter(t => t).map(term => this.findInNode(this._editorView!, this._editorView!.state.doc, term)); - const tr = this._editorView.state.tr; - const flattened: TextSelection[] = []; - res.map(r => r.map(h => flattened.push(h))); - const lastSel = Math.min(flattened.length - 1, this._searchIndex); - this._searchIndex = ++this._searchIndex > flattened.length - 1 ? 0 : this._searchIndex; - const alink = DocUtils.MakeLink({ doc: this.props.Document }, { doc: target }, "automatic")!; - const link = this._editorView.state.schema.marks.link.create({ - href: Utils.prepend("/doc/" + alink[Id]), - title: "a link", location: location, linkId: alink[Id], targetId: target[Id] - }); - this._editorView.dispatch(tr.addMark(flattened[lastSel].from, flattened[lastSel].to, link)); - } - } - public highlightSearchTerms = (terms: string[]) => { - if (this._editorView && (this._editorView as any).docView && terms.some(t => t)) { - const mark = this._editorView.state.schema.mark(this._editorView.state.schema.marks.search_highlight); - const activeMark = this._editorView.state.schema.mark(this._editorView.state.schema.marks.search_highlight, { selected: true }); - const res = terms.filter(t => t).map(term => this.findInNode(this._editorView!, this._editorView!.state.doc, term)); - let tr = this._editorView.state.tr; - const flattened: TextSelection[] = []; - res.map(r => r.map(h => flattened.push(h))); - const lastSel = Math.min(flattened.length - 1, this._searchIndex); - flattened.forEach((h: TextSelection, ind: number) => tr = tr.addMark(h.from, h.to, ind === lastSel ? activeMark : mark)); - this._searchIndex = ++this._searchIndex > flattened.length - 1 ? 0 : this._searchIndex; - this._editorView.dispatch(tr.setSelection(new TextSelection(tr.doc.resolve(flattened[lastSel].from), tr.doc.resolve(flattened[lastSel].to))).scrollIntoView()); - } - } - - public unhighlightSearchTerms = () => { - if (this._editorView && (this._editorView as any).docView) { - const mark = this._editorView.state.schema.mark(this._editorView.state.schema.marks.search_highlight); - const activeMark = this._editorView.state.schema.mark(this._editorView.state.schema.marks.search_highlight, { selected: true }); - const end = this._editorView.state.doc.nodeSize - 2; - this._editorView.dispatch(this._editorView.state.tr.removeMark(0, end, mark).removeMark(0, end, activeMark)); - } - } - adoptAnnotation = (start: number, end: number, mark: Mark) => { - const view = this._editorView!; - const nmark = view.state.schema.marks.user_mark.create({ ...mark.attrs, userid: Doc.CurrentUserEmail }); - view.dispatch(view.state.tr.removeMark(start, end, nmark).addMark(start, end, nmark)); - } - protected createDropTarget = (ele: HTMLDivElement) => { - this.ProseRef = ele; - this.dropDisposer?.(); - ele && (this.dropDisposer = DragManager.MakeDropTarget(ele, this.drop.bind(this), this.props.Document)); - } - - @undoBatch - @action - drop = async (e: Event, de: DragManager.DropEvent) => { - if (de.complete.docDragData) { - const draggedDoc = de.complete.docDragData.draggedDocuments.length && de.complete.docDragData.draggedDocuments[0]; - // replace text contents whend dragging with Alt - if (draggedDoc && draggedDoc.type === DocumentType.RTF && !Doc.AreProtosEqual(draggedDoc, this.props.Document) && de.altKey) { - if (draggedDoc.data instanceof RichTextField) { - Doc.GetProto(this.dataDoc)[this.props.fieldKey] = new RichTextField(draggedDoc.data.Data, draggedDoc.data.Text); - e.stopPropagation(); - } - // embed document when dragging with a userDropAction or an embedDoc flag set - } else if (de.complete.docDragData.userDropAction || de.complete.docDragData.embedDoc) { - const target = de.complete.docDragData.droppedDocuments[0]; - // const link = DocUtils.MakeLink({ doc: this.dataDoc, ctx: this.props.ContainingCollectionDoc }, { doc: target }, "Embedded Doc:" + target.title); - // if (link) { - target._fitToBox = true; - const node = schema.nodes.dashDoc.create({ - width: target[WidthSym](), height: target[HeightSym](), - title: "dashDoc", docid: target[Id], - float: "right" - }); - const view = this._editorView!; - view.dispatch(view.state.tr.insert(view.posAtCoords({ left: de.x, top: de.y })!.pos, node)); - this.tryUpdateHeight(); - e.stopPropagation(); - // } - } // otherwise, fall through to outer collection to handle drop - } else if (de.complete.linkDragData) { - de.complete.linkDragData.linkDropCallback = this.linkDrop; - } - } - linkDrop = (data: DragManager.LinkDragData) => { - const linkDoc = data.linkDocument!; - const anchor1Title = linkDoc.anchor1 instanceof Doc ? StrCast(linkDoc.anchor1.title) : "-untitled-"; - const anchor1Id = linkDoc.anchor1 instanceof Doc ? linkDoc.anchor1[Id] : ""; - this.makeLinkToSelection(linkDoc[Id], anchor1Title, "onRight", anchor1Id); - } - - getNodeEndpoints(context: Node, node: Node): { from: number, to: number } | null { - let offset = 0; - - if (context === node) return { from: offset, to: offset + node.nodeSize }; - - if (node.isBlock) { - // tslint:disable-next-line: prefer-for-of - for (let i = 0; i < (context.content as any).content.length; i++) { - const result = this.getNodeEndpoints((context.content as any).content[i], node); - if (result) { - return { - from: result.from + offset + (context.type.name === "doc" ? 0 : 1), - to: result.to + offset + (context.type.name === "doc" ? 0 : 1) - }; - } - offset += (context.content as any).content[i].nodeSize; - } - return null; - } else { - return null; - } - } - - - //Recursively finds matches within a given node - findInNode(pm: EditorView, node: Node, find: string) { - let ret: TextSelection[] = []; - - if (node.isTextblock) { - let index = 0, foundAt; - const ep = this.getNodeEndpoints(pm.state.doc, node); - while (ep && (foundAt = node.textContent.slice(index).search(RegExp(find, "i"))) > -1) { - const sel = new TextSelection(pm.state.doc.resolve(ep.from + index + foundAt + 1), pm.state.doc.resolve(ep.from + index + foundAt + find.length + 1)); - ret.push(sel); - index = index + foundAt + find.length; - } - } else { - node.content.forEach((child, i) => ret = ret.concat(this.findInNode(pm, child, find))); - } - return ret; - } - static _highlights: string[] = ["Text from Others", "Todo Items", "Important Items", "Disagree Items", "Ignore Items"]; - - updateHighlights = () => { - clearStyleSheetRules(FormattedTextBox._userStyleSheet); - if (FormattedTextBox._highlights.indexOf("Text from Others") !== -1) { - addStyleSheetRule(FormattedTextBox._userStyleSheet, "UM-remote", { background: "yellow" }); - } - if (FormattedTextBox._highlights.indexOf("My Text") !== -1) { - addStyleSheetRule(FormattedTextBox._userStyleSheet, "UM-" + Doc.CurrentUserEmail.replace(".", "").replace("@", ""), { background: "moccasin" }); - } - if (FormattedTextBox._highlights.indexOf("Todo Items") !== -1) { - addStyleSheetRule(FormattedTextBox._userStyleSheet, "userTag-" + "todo", { outline: "black solid 1px" }); - } - if (FormattedTextBox._highlights.indexOf("Important Items") !== -1) { - addStyleSheetRule(FormattedTextBox._userStyleSheet, "userTag-" + "important", { "font-size": "larger" }); - } - if (FormattedTextBox._highlights.indexOf("Disagree Items") !== -1) { - addStyleSheetRule(FormattedTextBox._userStyleSheet, "userTag-" + "disagree", { "text-decoration": "line-through" }); - } - if (FormattedTextBox._highlights.indexOf("Ignore Items") !== -1) { - addStyleSheetRule(FormattedTextBox._userStyleSheet, "userTag-" + "ignore", { "font-size": "1" }); - } - if (FormattedTextBox._highlights.indexOf("By Recent Minute") !== -1) { - addStyleSheetRule(FormattedTextBox._userStyleSheet, "UM-" + Doc.CurrentUserEmail.replace(".", "").replace("@", ""), { opacity: "0.1" }); - const min = Math.round(Date.now() / 1000 / 60); - numberRange(10).map(i => addStyleSheetRule(FormattedTextBox._userStyleSheet, "UM-min-" + (min - i), { opacity: ((10 - i - 1) / 10).toString() })); - setTimeout(() => this.updateHighlights()); - } - if (FormattedTextBox._highlights.indexOf("By Recent Hour") !== -1) { - addStyleSheetRule(FormattedTextBox._userStyleSheet, "UM-" + Doc.CurrentUserEmail.replace(".", "").replace("@", ""), { opacity: "0.1" }); - const hr = Math.round(Date.now() / 1000 / 60 / 60); - numberRange(10).map(i => addStyleSheetRule(FormattedTextBox._userStyleSheet, "UM-hr-" + (hr - i), { opacity: ((10 - i - 1) / 10).toString() })); - } - } - - sidebarDown = (e: React.PointerEvent) => { - this._lastX = e.clientX; - this._lastY = e.clientY; - this._sidebarMovement = 0; - document.addEventListener("pointermove", this.sidebarMove); - document.addEventListener("pointerup", this.sidebarUp); - e.stopPropagation(); - e.preventDefault(); // prevents text from being selected during drag - } - sidebarMove = (e: PointerEvent) => { - const bounds = this.CurrentDiv.getBoundingClientRect(); - this._sidebarMovement += Math.sqrt((e.clientX - this._lastX) * (e.clientX - this._lastX) + (e.clientY - this._lastY) * (e.clientY - this._lastY)); - this.props.Document.sidebarWidthPercent = "" + 100 * (1 - (e.clientX - bounds.left) / bounds.width) + "%"; - } - sidebarUp = (e: PointerEvent) => { - document.removeEventListener("pointermove", this.sidebarMove); - document.removeEventListener("pointerup", this.sidebarUp); - } - - toggleSidebar = () => this._sidebarMovement < 5 && (this.props.Document.sidebarWidthPercent = StrCast(this.props.Document.sidebarWidthPercent, "0%") === "0%" ? "25%" : "0%"); - - public static get DefaultLayout(): Doc | string | undefined { - return Cast(Doc.UserDoc().defaultTextLayout, Doc, null) || StrCast(Doc.UserDoc().defaultTextLayout, null); - } - specificContextMenu = (e: React.MouseEvent): void => { - const cm = ContextMenu.Instance; - - const funcs: ContextMenuProps[] = []; - this.props.Document.isTemplateDoc && funcs.push({ description: "Make Default Layout", event: async () => Doc.UserDoc().defaultTextLayout = new PrefetchProxy(this.props.Document), icon: "eye" }); - funcs.push({ description: "Reset Default Layout", event: () => Doc.UserDoc().defaultTextLayout = undefined, icon: "eye" }); - !this.props.Document.rootDocument && funcs.push({ - description: "Make Template", event: () => { - this.props.Document.isTemplateDoc = makeTemplate(this.props.Document); - Doc.AddDocToList(Cast(Doc.UserDoc()["template-notes"], Doc, null), "data", this.props.Document); - }, icon: "eye" - }); - funcs.push({ description: "Toggle Single Line", event: () => this.props.Document._singleLine = !this.props.Document._singleLine, icon: "expand-arrows-alt" }); - funcs.push({ description: "Toggle Sidebar", event: () => this.props.Document._showSidebar = !this.props.Document._showSidebar, icon: "expand-arrows-alt" }); - funcs.push({ description: "Toggle Dictation Icon", event: () => this.props.Document._showAudio = !this.props.Document._showAudio, icon: "expand-arrows-alt" }); - funcs.push({ description: "Toggle Menubar", event: () => this.toggleMenubar(), icon: "expand-arrows-alt" }); - - const highlighting: ContextMenuProps[] = []; - ["My Text", "Text from Others", "Todo Items", "Important Items", "Ignore Items", "Disagree Items", "By Recent Minute", "By Recent Hour"].forEach(option => - highlighting.push({ - description: (FormattedTextBox._highlights.indexOf(option) === -1 ? "Highlight " : "Unhighlight ") + option, event: () => { - e.stopPropagation(); - if (FormattedTextBox._highlights.indexOf(option) === -1) { - FormattedTextBox._highlights.push(option); - } else { - FormattedTextBox._highlights.splice(FormattedTextBox._highlights.indexOf(option), 1); - } - this.updateHighlights(); - }, icon: "expand-arrows-alt" - })); - funcs.push({ description: "highlighting...", subitems: highlighting, icon: "hand-point-right" }); - - ContextMenu.Instance.addItem({ description: "Options...", subitems: funcs, icon: "asterisk" }); - - const change = cm.findByDescription("Change Perspective..."); - const changeItems: ContextMenuProps[] = change && "subitems" in change ? change.subitems : []; - - const noteTypesDoc = Cast(Doc.UserDoc()["template-notes"], Doc, null); - DocListCast(noteTypesDoc?.data).forEach(note => { - changeItems.push({ - description: StrCast(note.title), event: undoBatch(() => { - Doc.setNativeView(this.props.Document); - Doc.makeCustomViewClicked(this.rootDoc, Docs.Create.TreeDocument, StrCast(note.title), note); - }), icon: "eye" - }); - }); - changeItems.push({ description: "FreeForm", event: undoBatch(() => Doc.makeCustomViewClicked(this.rootDoc, Docs.Create.FreeformDocument, "freeform"), "change view"), icon: "eye" }); - !change && cm.addItem({ description: "Change Perspective...", subitems: changeItems, icon: "external-link-alt" }); - - const open = cm.findByDescription("Add a Perspective..."); - const openItems: ContextMenuProps[] = open && "subitems" in open ? open.subitems : []; - - openItems.push({ - description: "FreeForm", event: undoBatch(() => { - const alias = Doc.MakeAlias(this.rootDoc); - Doc.makeCustomViewClicked(alias, Docs.Create.FreeformDocument, "freeform"); - this.props.addDocTab(alias, "onRight"); - }), icon: "eye" - }); - !open && cm.addItem({ description: "Add a Perspective...", subitems: openItems, icon: "external-link-alt" }); - - } - - recordDictation = () => { - DictationManager.Controls.listen({ - interimHandler: this.setCurrentBulletContent, - continuous: { indefinite: false }, - }).then(results => { - if (results && [DictationManager.Controls.Infringed].includes(results)) { - DictationManager.Controls.stop(); - } - //this._editorView!.focus(); - }); - } - stopDictation = (abort: boolean) => { DictationManager.Controls.stop(!abort); }; - - @action - toggleMenubar = () => { - this.props.Document._chromeStatus = this.props.Document._chromeStatus === "disabled" ? "enabled" : "disabled"; - } - - recordBullet = async () => { - const completedCue = "end session"; - const results = await DictationManager.Controls.listen({ - interimHandler: this.setCurrentBulletContent, - continuous: { indefinite: false }, - terminators: [completedCue, "bullet", "next"] - }); - if (results && [DictationManager.Controls.Infringed, completedCue].includes(results)) { - DictationManager.Controls.stop(); - return; - } - this.nextBullet(this._editorView!.state.selection.to); - setTimeout(this.recordBullet, 2000); - } - - setCurrentBulletContent = (value: string) => { - if (this._editorView) { - const state = this._editorView.state; - const now = Date.now(); - let mark = schema.marks.user_mark.create({ userid: Doc.CurrentUserEmail, modified: Math.floor(now / 1000) }); - if (!this._break && state.selection.to !== state.selection.from) { - for (let i = state.selection.from; i <= state.selection.to; i++) { - const pos = state.doc.resolve(i); - const um = Array.from(pos.marks()).find(m => m.type === schema.marks.user_mark); - if (um) { - mark = um; - break; - } - } - } - const recordingStart = DateCast(this.props.Document.recordingStart).date.getTime(); - this._break = false; - value = "" + (mark.attrs.modified * 1000 - recordingStart) / 1000 + value; - const from = state.selection.from; - const inserted = state.tr.insertText(value).addMark(from, from + value.length + 1, mark); - this._editorView.dispatch(inserted.setSelection(TextSelection.create(inserted.doc, from, from + value.length + 1))); - } - } - - nextBullet = (pos: number) => { - if (this._editorView) { - const frag = Fragment.fromArray(this.newListItems(2)); - if (this._editorView.state.doc.resolve(pos).depth >= 2) { - const slice = new Slice(frag, 2, 2); - let state = this._editorView.state; - this._editorView.dispatch(state.tr.step(new ReplaceStep(pos, pos, slice))); - pos += 4; - state = this._editorView.state; - this._editorView.dispatch(state.tr.setSelection(TextSelection.create(this._editorView.state.doc, pos, pos))); - } - } - } - - private newListItems = (count: number) => { - return numberRange(count).map(x => schema.nodes.list_item.create(undefined, schema.nodes.paragraph.create())); - } - - _keymap: any = undefined; - _rules: RichTextRules | undefined; - @computed get config() { - this._keymap = buildKeymap(schema, this.props); - this._rules = new RichTextRules(this.props.Document, this); - return { - schema, - plugins: [ - inputRules(this._rules.inpRules), - this.richTextMenuPlugin(), - history(), - keymap(this._keymap), - keymap(baseKeymap), - new Plugin({ - props: { - attributes: { class: "ProseMirror-example-setup-style" } - } - }), - formattedTextBoxCommentPlugin - ] - }; - } - - makeLinkToSelection(linkDocId: string, title: string, location: string, targetDocId: string) { - if (this._editorView) { - const link = this._editorView.state.schema.marks.link.create({ href: Utils.prepend("/doc/" + linkDocId), title: title, location: location, linkId: linkDocId, targetId: targetDocId }); - this._editorView.dispatch(this._editorView.state.tr.removeMark(this._editorView.state.selection.from, this._editorView.state.selection.to, this._editorView.state.schema.marks.link). - addMark(this._editorView.state.selection.from, this._editorView.state.selection.to, link)); - } - } - componentDidMount() { - this._disposers.buttonBar = reaction( - () => DocumentButtonBar.Instance, - instance => { - if (instance) { - this.pullFromGoogleDoc(this.checkState); - this.dataDoc[GoogleRef] && this.dataDoc.unchanged && runInAction(() => instance.isAnimatingFetch = true); - } - } - ); - this._disposers.linkMaker = reaction( - () => this.props.makeLink?.(), - (linkDoc: Opt) => { - if (linkDoc) { - const anchor2Title = linkDoc.anchor2 instanceof Doc ? StrCast(linkDoc.anchor2.title) : "-untitled-"; - const anchor2Id = linkDoc.anchor2 instanceof Doc ? linkDoc.anchor2[Id] : ""; - this.makeLinkToSelection(linkDoc[Id], anchor2Title, "onRight", anchor2Id); - } - }, - { fireImmediately: true } - ); - this._disposers.editorState = reaction( - () => { - if (this.dataDoc[this.props.fieldKey + "-noTemplate"] || !this.props.Document[this.props.fieldKey + "-textTemplate"]) { - return Cast(this.dataDoc[this.props.fieldKey], RichTextField, null)?.Data; - } - return Cast(this.props.Document[this.props.fieldKey + "-textTemplate"], RichTextField, null)?.Data; - }, - incomingValue => { - if (incomingValue !== undefined && this._editorView && !this._applyingChange) { - const updatedState = JSON.parse(incomingValue); - this._editorView.updateState(EditorState.fromJSON(this.config, updatedState)); - this.tryUpdateHeight(); - } - } - ); - this._disposers.pullDoc = reaction( - () => this.props.Document[Pulls], - () => { - if (!DocumentButtonBar.hasPulledHack) { - DocumentButtonBar.hasPulledHack = true; - const unchanged = this.dataDoc.unchanged; - this.pullFromGoogleDoc(unchanged ? this.checkState : this.updateState); - } - } - ); - this._disposers.pushDoc = reaction( - () => this.props.Document[Pushes], - () => { - if (!DocumentButtonBar.hasPushedHack) { - DocumentButtonBar.hasPushedHack = true; - this.pushToGoogleDoc(); - } - } - ); - this._disposers.height = reaction( - () => [this.layoutDoc[WidthSym](), this.layoutDoc._autoHeight], - () => this.tryUpdateHeight() - ); - - this.setupEditor(this.config, this.props.fieldKey); - - this._disposers.search = reaction(() => this.rootDoc.searchMatch, - search => search ? this.highlightSearchTerms([Doc.SearchQuery()]) : this.unhighlightSearchTerms(), - { fireImmediately: true }); - - this._disposers.record = reaction(() => this._recording, - () => { - if (this._recording) { - setTimeout(action(() => { - this.stopDictation(true); - setTimeout(() => this.recordDictation(), 500); - }), 500); - } else setTimeout(() => this.stopDictation(true), 0); - } - ); - this._disposers.scrollToRegion = reaction( - () => StrCast(this.layoutDoc.scrollToLinkID), - async (scrollToLinkID) => { - const findLinkFrag = (frag: Fragment, editor: EditorView) => { - const nodes: Node[] = []; - frag.forEach((node, index) => { - const examinedNode = findLinkNode(node, editor); - if (examinedNode && examinedNode.textContent) { - nodes.push(examinedNode); - start += index; - } - }); - return { frag: Fragment.fromArray(nodes), start: start }; - }; - const findLinkNode = (node: Node, editor: EditorView) => { - if (!node.isText) { - const content = findLinkFrag(node.content, editor); - return node.copy(content.frag); - } - const marks = [...node.marks]; - const linkIndex = marks.findIndex(mark => mark.type === editor.state.schema.marks.link); - return linkIndex !== -1 && scrollToLinkID === marks[linkIndex].attrs.href.replace(/.*\/doc\//, "") ? node : undefined; - }; - - let start = -1; - if (this._editorView && scrollToLinkID) { - const editor = this._editorView; - const ret = findLinkFrag(editor.state.doc.content, editor); - - if (ret.frag.size > 2 && ret.start >= 0) { - let selection = TextSelection.near(editor.state.doc.resolve(ret.start)); // default to near the start - if (ret.frag.firstChild) { - selection = TextSelection.between(editor.state.doc.resolve(ret.start), editor.state.doc.resolve(ret.start + ret.frag.firstChild.nodeSize)); // bcz: looks better to not have the target selected - } - editor.dispatch(editor.state.tr.setSelection(new TextSelection(selection.$from, selection.$from)).scrollIntoView()); - const mark = editor.state.schema.mark(this._editorView.state.schema.marks.search_highlight); - setTimeout(() => editor.dispatch(editor.state.tr.addMark(selection.from, selection.to, mark)), 0); - setTimeout(() => this.unhighlightSearchTerms(), 2000); - } - Doc.SetInPlace(this.layoutDoc, "scrollToLinkID", undefined, false); - } - - }, - { fireImmediately: true } - ); - this._disposers.scroll = reaction(() => NumCast(this.props.Document.scrollPos), - pos => this._scrollRef.current && this._scrollRef.current.scrollTo({ top: pos }), { fireImmediately: true } - ); - - setTimeout(() => this.tryUpdateHeight(NumCast(this.layoutDoc.limitHeight, 0))); - } - - pushToGoogleDoc = async () => { - this.pullFromGoogleDoc(async (exportState: Opt, dataDoc: Doc) => { - const modes = GoogleApiClientUtils.Docs.WriteMode; - let mode = modes.Replace; - let reference: Opt = Cast(this.dataDoc[GoogleRef], "string"); - if (!reference) { - mode = modes.Insert; - reference = { title: StrCast(this.dataDoc.title) }; - } - const redo = async () => { - if (this._editorView && reference) { - const content = await RichTextUtils.GoogleDocs.Export(this._editorView.state); - const response = await GoogleApiClientUtils.Docs.write({ reference, content, mode }); - response && (this.dataDoc[GoogleRef] = response.documentId); - const pushSuccess = response !== undefined && !("errors" in response); - dataDoc.unchanged = pushSuccess; - DocumentButtonBar.Instance.startPushOutcome(pushSuccess); - } - }; - const undo = () => { - if (!exportState) { - return; - } - const content: GoogleApiClientUtils.Docs.Content = { - text: exportState.text, - requests: [] - }; - if (reference && content) { - GoogleApiClientUtils.Docs.write({ reference, content, mode }); - } - }; - UndoManager.AddEvent({ undo, redo }); - redo(); - }); - } - - pullFromGoogleDoc = async (handler: PullHandler) => { - const dataDoc = this.dataDoc; - const documentId = StrCast(dataDoc[GoogleRef]); - let exportState: Opt; - if (documentId) { - exportState = await RichTextUtils.GoogleDocs.Import(documentId, dataDoc); - } - UndoManager.RunInBatch(() => handler(exportState, dataDoc), Pulls); - } - - updateState = (exportState: Opt, dataDoc: Doc) => { - let pullSuccess = false; - if (exportState !== undefined) { - pullSuccess = true; - dataDoc.data = new RichTextField(JSON.stringify(exportState.state.toJSON())); - setTimeout(() => { - if (this._editorView) { - const state = this._editorView.state; - const end = state.doc.content.size - 1; - this._editorView.dispatch(state.tr.setSelection(TextSelection.create(state.doc, end, end))); - } - }, 0); - dataDoc.title = exportState.title; - this.rootDoc.customTitle = true; - dataDoc.unchanged = true; - } else { - delete dataDoc[GoogleRef]; - } - DocumentButtonBar.Instance.startPullOutcome(pullSuccess); - } - - checkState = (exportState: Opt, dataDoc: Doc) => { - if (exportState && this._editorView) { - const equalContent = isEqual(this._editorView.state.doc, exportState.state.doc); - const equalTitles = dataDoc.title === exportState.title; - const unchanged = equalContent && equalTitles; - dataDoc.unchanged = unchanged; - DocumentButtonBar.Instance.setPullState(unchanged); - } - } - - clipboardTextSerializer = (slice: Slice): string => { - let text = "", separated = true; - const from = 0, to = slice.content.size; - slice.content.nodesBetween(from, to, (node, pos) => { - if (node.isText) { - text += node.text!.slice(Math.max(from, pos) - pos, to - pos); - separated = false; - } else if (!separated && node.isBlock) { - text += "\n"; - separated = true; - } else if (node.type.name === "hard_break") { - text += "\n"; - } - }, 0); - return text; - } - - sliceSingleNode(slice: Slice) { - return slice.openStart === 0 && slice.openEnd === 0 && slice.content.childCount === 1 ? slice.content.firstChild : null; - } - - handlePaste = (view: EditorView, event: Event, slice: Slice): boolean => { - const cbe = event as ClipboardEvent; - const pdfDocId = cbe.clipboardData && cbe.clipboardData.getData("dash/pdfOrigin"); - const pdfRegionId = cbe.clipboardData && cbe.clipboardData.getData("dash/pdfRegion"); - if (pdfDocId && pdfRegionId) { - DocServer.GetRefField(pdfDocId).then(pdfDoc => { - DocServer.GetRefField(pdfRegionId).then(pdfRegion => { - if ((pdfDoc instanceof Doc) && (pdfRegion instanceof Doc)) { - setTimeout(async () => { - const targetField = Doc.LayoutFieldKey(pdfDoc); - const targetAnnotations = await DocListCastAsync(pdfDoc[DataSym][targetField + "-annotations"]);// bcz: better to have the PDF's view handle updating its own annotations - targetAnnotations?.push(pdfRegion); - }); - - const link = DocUtils.MakeLink({ doc: this.props.Document }, { doc: pdfRegion }, "PDF pasted"); - if (link) { - cbe.clipboardData!.setData("dash/linkDoc", link[Id]); - const linkId = link[Id]; - const frag = addMarkToFrag(slice.content, (node: Node) => addLinkMark(node, StrCast(pdfDoc.title), linkId)); - slice = new Slice(frag, slice.openStart, slice.openEnd); - const tr = view.state.tr.replaceSelection(slice); - view.dispatch(tr.scrollIntoView().setMeta("paste", true).setMeta("uiEvent", "paste")); - } - } - }); - }); - return true; - } - return false; - - - function addMarkToFrag(frag: Fragment, marker: (node: Node) => Node) { - const nodes: Node[] = []; - frag.forEach(node => nodes.push(marker(node))); - return Fragment.fromArray(nodes); - } - function addLinkMark(node: Node, title: string, linkId: string) { - if (!node.isText) { - const content = addMarkToFrag(node.content, (node: Node) => addLinkMark(node, title, linkId)); - return node.copy(content); - } - const marks = [...node.marks]; - const linkIndex = marks.findIndex(mark => mark.type.name === "link"); - const link = view.state.schema.mark(view.state.schema.marks.link, { href: `http://localhost:1050/doc/${linkId}`, location: "onRight", title: title, docref: true }); - marks.splice(linkIndex === -1 ? 0 : linkIndex, 1, link); - return node.mark(marks); - } - } - - private setupEditor(config: any, fieldKey: string) { - const curText = Cast(this.dataDoc[this.props.fieldKey], RichTextField, null); - const useTemplate = !curText?.Text && this.props.Document[this.props.fieldKey + "-textTemplate"]; - const rtfField = Cast((useTemplate && this.props.Document[this.props.fieldKey + "-textTemplate"]) || this.dataDoc[fieldKey], RichTextField); - if (this.ProseRef) { - const self = this; - this._editorView?.destroy(); - this._editorView = new EditorView(this.ProseRef, { - state: rtfField?.Data ? EditorState.fromJSON(config, JSON.parse(rtfField.Data)) : EditorState.create(config), - handleScrollToSelection: (editorView) => { - const docPos = editorView.coordsAtPos(editorView.state.selection.from); - const viewRect = self._ref.current!.getBoundingClientRect(); - if (docPos.top < viewRect.top || docPos.top > viewRect.bottom) { - docPos && (self._scrollRef.current!.scrollTop += (docPos.top - viewRect.top) * self.props.ScreenToLocalTransform().Scale); - } - return true; - }, - dispatchTransaction: this.dispatchTransaction, - nodeViews: { - //dashComment(node, view, getPos) { return new DashDocCommentView({ node, view, getPos }); }, - dashField(node, view, getPos) { return new DashFieldView(node, view, getPos, self); }, - //dashDoc(node, view, getPos) { return new DashDocView(node, view, getPos, self); }, - // dashDoc(node, view, getPos) { return new DashDocView({ node, view, getPos, self }); }, - - // image(node, view, getPos) { - // //const addDocTab = this.props.addDocTab; - // return new ImageResizeView({ node, view, getPos, addDocTab: this.props.addDocTab }); - // }, - - - // // WAS : - // //image(node, view, getPos) { return new ImageResizeView(node, view, getPos, this.props.addDocTab); }, - - // summary(node, view, getPos) { return new SummaryView({ node, view, getPos }); }, - // ordered_list(node, view, getPos) { return new OrderedListView(); }, - // footnote(node, view, getPos) { return new FootnoteView({ node, outerView, getPos }); } - }, - clipboardTextSerializer: this.clipboardTextSerializer, - handlePaste: this.handlePaste, - }); - const startupText = !rtfField && this._editorView && Field.toString(this.dataDoc[fieldKey] as Field); - if (startupText) { - const { state: { tr }, dispatch } = this._editorView; - dispatch(tr.insertText(startupText)); - } - } - - const selectOnLoad = this.rootDoc[Id] === FormattedTextBox.SelectOnLoad; - if (selectOnLoad && !this.props.dontRegisterView) { - FormattedTextBox.SelectOnLoad = ""; - this.props.select(false); - FormattedTextBox.SelectOnLoadChar && this._editorView!.dispatch(this._editorView!.state.tr.insertText(FormattedTextBox.SelectOnLoadChar)); - FormattedTextBox.SelectOnLoadChar = ""; - - } - (selectOnLoad /* || !rtfField?.Text*/) && this._editorView!.focus(); - // add user mark for any first character that was typed since the user mark that gets set in KeyPress won't have been called yet. - this._editorView!.state.storedMarks = [...(this._editorView!.state.storedMarks ? this._editorView!.state.storedMarks : []), schema.marks.user_mark.create({ userid: Doc.CurrentUserEmail, modified: Math.floor(Date.now() / 1000) })]; - } - getFont(font: string) { - switch (font) { - case "Arial": return schema.marks.arial.create(); - case "Times New Roman": return schema.marks.timesNewRoman.create(); - case "Georgia": return schema.marks.georgia.create(); - case "Comic Sans MS": return schema.marks.comicSans.create(); - case "Tahoma": return schema.marks.tahoma.create(); - case "Impact": return schema.marks.impact.create(); - case "ACrimson Textrial": return schema.marks.crimson.create(); - } - return schema.marks.arial.create(); - } - - componentWillUnmount() { - Object.values(this._disposers).forEach(disposer => disposer?.()); - this._editorView?.destroy(); - } - - static _downEvent: any; - _downX = 0; - _downY = 0; - _break = false; - onPointerDown = (e: React.PointerEvent): void => { - if (this._recording && !e.ctrlKey && e.button === 0) { - this.stopDictation(true); - this._break = true; - const state = this._editorView!.state; - const to = state.selection.to; - const updated = TextSelection.create(state.doc, to, to); - this._editorView!.dispatch(this._editorView!.state.tr.setSelection(updated).insertText("\n", to)); - e.preventDefault(); - e.stopPropagation(); - if (this._recording) setTimeout(() => this.recordDictation(), 500); - } - this._downX = e.clientX; - this._downY = e.clientY; - this.doLinkOnDeselect(); - FormattedTextBox._downEvent = true; - FormattedTextBoxComment.textBox = this; - if (this.props.onClick && e.button === 0 && !this.props.isSelected(false)) { - e.preventDefault(); - } - if (e.button === 0 && this.active(true) && !e.altKey && !e.ctrlKey && !e.metaKey) { - if (e.clientX < this.ProseRef!.getBoundingClientRect().right) { // don't stop propagation if clicking in the sidebar - e.stopPropagation(); - } - } - if (e.button === 2 || (e.button === 0 && e.ctrlKey)) { - e.preventDefault(); - } - } - - onPointerUp = (e: React.PointerEvent): void => { - if (!FormattedTextBox._downEvent) return; - FormattedTextBox._downEvent = false; - if (!(e.nativeEvent as any).formattedHandled) { - FormattedTextBoxComment.textBox = this; - FormattedTextBoxComment.update(this._editorView!); - } - (e.nativeEvent as any).formattedHandled = true; - - if (e.buttons === 1 && this.props.isSelected(true) && !e.altKey) { - e.stopPropagation(); - } - this._downX = this._downY = Number.NaN; - } - - @action - onFocused = (e: React.FocusEvent): void => { - FormattedTextBox.FocusedBox = this; - this.tryUpdateHeight(); - - // see if we need to preserve the insertion point - const prosediv = this.ProseRef?.children?.[0] as any; - const keeplocation = prosediv?.keeplocation; - prosediv && (prosediv.keeplocation = undefined); - const pos = this._editorView?.state.selection.$from.pos || 1; - keeplocation && setTimeout(() => this._editorView?.dispatch(this._editorView?.state.tr.setSelection(TextSelection.create(this._editorView.state.doc, pos)))); - const coords = !Number.isNaN(this._downX) ? { left: this._downX, top: this._downY, bottom: this._downY, right: this._downX } : this._editorView?.coordsAtPos(pos); - - // jump rich text menu to this textbox - const bounds = this._ref.current?.getBoundingClientRect(); - if (bounds && this.props.Document._chromeStatus !== "disabled") { - const x = Math.min(Math.max(bounds.left, 0), window.innerWidth - RichTextMenu.Instance.width); - let y = Math.min(Math.max(0, bounds.top - RichTextMenu.Instance.height - 50), window.innerHeight - RichTextMenu.Instance.height); - if (coords && coords.left > x && coords.left < x + RichTextMenu.Instance.width && coords.top > y && coords.top < y + RichTextMenu.Instance.height + 50) { - y = Math.min(bounds.bottom, window.innerHeight - RichTextMenu.Instance.height); - } - RichTextMenu.Instance.jumpTo(x, y); - } - } - onPointerWheel = (e: React.WheelEvent): void => { - // if a text note is not selected and scrollable, this prevents us from being able to scroll and zoom out at the same time - if (this.props.isSelected(true) || e.currentTarget.scrollHeight > e.currentTarget.clientHeight) { - e.stopPropagation(); - } - } - - static _bulletStyleSheet: any = addStyleSheet(); - static _userStyleSheet: any = addStyleSheet(); - - onClick = (e: React.MouseEvent): void => { - if ((this._editorView!.root as any).getSelection().isCollapsed) { // this is a hack to allow the cursor to be placed at the end of a document when the document ends in an inline dash comment. Apparently Chrome on Windows has a bug/feature which breaks this when clicking after the end of the text. - const pcords = this._editorView!.posAtCoords({ left: e.clientX, top: e.clientY }); - const node = pcords && this._editorView!.state.doc.nodeAt(pcords.pos); // get what prosemirror thinks the clicked node is (if it's null, then we didn't click on any text) - if (pcords && node?.type === this._editorView!.state.schema.nodes.dashComment) { - this._editorView!.dispatch(this._editorView!.state.tr.setSelection(TextSelection.create(this._editorView!.state.doc, pcords.pos + 2))); - e.preventDefault(); - } - if (!node && this.ProseRef) { - const lastNode = this.ProseRef.children[this.ProseRef.children.length - 1].children[this.ProseRef.children[this.ProseRef.children.length - 1].children.length - 1]; // get the last prosemirror div - if (e.clientY > lastNode?.getBoundingClientRect().bottom) { // if we clicked below the last prosemirror div, then set the selection to be the end of the document - this._editorView!.dispatch(this._editorView!.state.tr.setSelection(TextSelection.create(this._editorView!.state.doc, this._editorView!.state.doc.content.size))); - } - } - } - if ((e.nativeEvent as any).formattedHandled) { e.stopPropagation(); return; } - (e.nativeEvent as any).formattedHandled = true; - // if (e.button === 0 && ((!this.props.isSelected(true) && !e.ctrlKey) || (this.props.isSelected(true) && e.ctrlKey)) && !e.metaKey && e.target) { - // let href = (e.target as any).href; - // let location: string; - // if ((e.target as any).attributes.location) { - // location = (e.target as any).attributes.location.value; - // } - // let pcords = this._editorView!.posAtCoords({ left: e.clientX, top: e.clientY }); - // let node = pcords && this._editorView!.state.doc.nodeAt(pcords.pos); - // if (node) { - // let link = node.marks.find(m => m.type === this._editorView!.state.schema.marks.link); - // if (link && !(link.attrs.docref && link.attrs.title)) { // bcz: getting hacky. this indicates that we clicked on a PDF excerpt quotation. In this case, we don't want to follow the link (we follow only the actual hyperlink for the quotation which is handled above). - // href = link && link.attrs.href; - // location = link && link.attrs.location; - // } - // } - // if (href) { - // if (href.indexOf(Utils.prepend("/doc/")) === 0) { - // let linkClicked = href.replace(Utils.prepend("/doc/"), "").split("?")[0]; - // if (linkClicked) { - // DocServer.GetRefField(linkClicked).then(async linkDoc => { - // (linkDoc instanceof Doc) && - // DocumentManager.Instance.FollowLink(linkDoc, this.props.Document, document => this.props.addDocTab(document, location ? location : "inTab"), false); - // }); - // } - // } else { - // let webDoc = Docs.Create.WebDocument(href, { x: NumCast(this.layoutDoc.x, 0) + NumCast(this.layoutDoc.width, 0), y: NumCast(this.layoutDoc.y) }); - // this.props.addDocument && this.props.addDocument(webDoc); - // } - // e.stopPropagation(); - // e.preventDefault(); - // } - // } - - if (Math.abs(e.clientX - this._downX) < 4 && Math.abs(e.clientX - this._downX) < 4) { - this.props.select(e.ctrlKey); - this.hitBulletTargets(e.clientX, e.clientY, e.shiftKey, false); - } - } - - // this hackiness handles clicking on the list item bullets to do expand/collapse. the bullets are ::before pseudo elements so there's no real way to hit test against them. - hitBulletTargets(x: number, y: number, select: boolean, highlightOnly: boolean) { - clearStyleSheetRules(FormattedTextBox._bulletStyleSheet); - const pos = this._editorView!.posAtCoords({ left: x, top: y }); - if (pos && this.props.isSelected(true)) { - // let beforeEle = document.querySelector("." + hit.className) as Element; // const before = hit ? window.getComputedStyle(hit, ':before') : undefined; - //const node = this._editorView!.state.doc.nodeAt(pos.pos); - const $pos = this._editorView!.state.doc.resolve(pos.pos); - let list_node = $pos.node().type === schema.nodes.list_item ? $pos.node() : undefined; - if ($pos.node().type === schema.nodes.ordered_list) { - for (let off = 1; off < 100; off++) { - const pos = this._editorView!.posAtCoords({ left: x + off, top: y }); - const node = pos && this._editorView!.state.doc.nodeAt(pos.pos); - if (node?.type === schema.nodes.list_item) { - list_node = node; - break; - } - } - } - if (list_node && pos.inside >= 0 && this._editorView!.state.doc.nodeAt(pos.inside)!.attrs.bulletStyle === list_node.attrs.bulletStyle) { - if (select) { - const $olist_pos = this._editorView!.state.doc.resolve($pos.pos - $pos.parentOffset - 1); - if (!highlightOnly) { - this._editorView!.dispatch(this._editorView!.state.tr.setSelection(new NodeSelection($olist_pos))); - } - addStyleSheetRule(FormattedTextBox._bulletStyleSheet, list_node.attrs.mapStyle + list_node.attrs.bulletStyle + ":hover:before", { background: "lightgray" }); - } else if (Math.abs(pos.pos - pos.inside) < 2) { - if (!highlightOnly) { - const offset = this._editorView!.state.doc.nodeAt(pos.inside)?.type === schema.nodes.ordered_list ? 1 : 0; - this._editorView!.dispatch(this._editorView!.state.tr.setNodeMarkup(pos.inside + offset, list_node.type, { ...list_node.attrs, visibility: !list_node.attrs.visibility })); - this._editorView!.dispatch(this._editorView!.state.tr.setSelection(TextSelection.create(this._editorView!.state.doc, pos.inside + offset))); - } - addStyleSheetRule(FormattedTextBox._bulletStyleSheet, list_node.attrs.mapStyle + list_node.attrs.bulletStyle + ":hover:before", { background: "lightgray" }); - } - } - } - } - onMouseUp = (e: React.MouseEvent): void => { - e.stopPropagation(); - - const view = this._editorView as any; - // this interposes on prosemirror's upHandler to prevent prosemirror's up from invoked multiple times when there - // are nested prosemirrors. We only want the lowest level prosemirror to be invoked. - if (view.mouseDown) { - const originalUpHandler = view.mouseDown.up; - view.root.removeEventListener("mouseup", originalUpHandler); - view.mouseDown.up = (e: MouseEvent) => { - !(e as any).formattedHandled && originalUpHandler(e); - // e.stopPropagation(); - (e as any).formattedHandled = true; - }; - view.root.addEventListener("mouseup", view.mouseDown.up); - } - } - - richTextMenuPlugin() { - return new Plugin({ - view(newView) { - RichTextMenu.Instance && RichTextMenu.Instance.changeView(newView); - return RichTextMenu.Instance; - } - }); - } - - public static HadSelection: boolean = false; - onBlur = (e: any) => { - FormattedTextBox.HadSelection = window.getSelection()?.toString() !== ""; - //DictationManager.Controls.stop(false); - if (this._undoTyping) { - this._undoTyping.end(); - this._undoTyping = undefined; - } - this.doLinkOnDeselect(); - - // move the richtextmenu offscreen - if (!RichTextMenu.Instance.Pinned && !RichTextMenu.Instance.overMenu) RichTextMenu.Instance.jumpTo(-300, -300); - } - - _lastTimedMark: Mark | undefined = undefined; - onKeyPress = (e: React.KeyboardEvent) => { - if (e.altKey) { - e.preventDefault(); - return; - } - const state = this._editorView!.state; - if (!state.selection.empty && e.key === "%") { - this._rules!.EnteringStyle = true; - e.preventDefault(); - e.stopPropagation(); - return; - } - - if (state.selection.empty || !this._rules!.EnteringStyle) { - this._rules!.EnteringStyle = false; - } - if (e.key === "Escape") { - this._editorView!.dispatch(state.tr.setSelection(TextSelection.create(state.doc, state.selection.from, state.selection.from))); - (document.activeElement as any).blur?.(); - SelectionManager.DeselectAll(); - } - e.stopPropagation(); - if (e.key === "Tab" || e.key === "Enter") { - e.preventDefault(); - } - const mark = e.key !== " " && this._lastTimedMark ? this._lastTimedMark : schema.marks.user_mark.create({ userid: Doc.CurrentUserEmail, modified: Math.floor(Date.now() / 1000) }); - this._lastTimedMark = mark; - this._editorView!.dispatch(this._editorView!.state.tr.removeStoredMark(schema.marks.user_mark.create({})).addStoredMark(mark)); - - if (!this._undoTyping) { - this._undoTyping = UndoManager.StartBatch("undoTyping"); - } - } - - onscrolled = (ev: React.UIEvent) => { - this.props.Document.scrollPos = this._scrollRef.current!.scrollTop; - } - @action - tryUpdateHeight(limitHeight?: number) { - let scrollHeight = this._ref.current?.scrollHeight; - if (this.layoutDoc._autoHeight && scrollHeight && - getComputedStyle(this._ref.current!.parentElement!).top === "0px") { // if top === 0, then the text box is growing upward (as the overlay caption) which doesn't contribute to the height computation - if (limitHeight && scrollHeight > limitHeight) { - scrollHeight = limitHeight; - this.layoutDoc.limitHeight = undefined; - this.layoutDoc._autoHeight = false; - } - const nh = this.layoutDoc.isTemplateForField ? 0 : NumCast(this.dataDoc._nativeHeight, 0); - const dh = NumCast(this.layoutDoc._height, 0); - const newHeight = Math.max(10, (nh ? dh / nh * scrollHeight : scrollHeight) + (this.props.ChromeHeight ? this.props.ChromeHeight() : 0)); - if (Math.abs(newHeight - dh) > 1) { // bcz: Argh! without this, we get into a React crash if the same document is opened in a freeform view and in the treeview. no idea why, but after dragging the freeform document, selecting it, and selecting text, it will compute to 1 pixel higher than the treeview which causes a cycle - this.layoutDoc._height = newHeight; - this.dataDoc._nativeHeight = nh ? scrollHeight : undefined; - } - } - } - - @computed get sidebarWidthPercent() { return StrCast(this.props.Document.sidebarWidthPercent, "0%"); } - sidebarWidth = () => Number(this.sidebarWidthPercent.substring(0, this.sidebarWidthPercent.length - 1)) / 100 * this.props.PanelWidth(); - sidebarScreenToLocal = () => this.props.ScreenToLocalTransform().translate(-(this.props.PanelWidth() - this.sidebarWidth()), 0); - @computed get sidebarColor() { return StrCast(this.layoutDoc[this.props.fieldKey + "-backgroundColor"], StrCast(this.layoutDoc[this.props.fieldKey + "-backgroundColor"], "transparent")); } - render() { - TraceMobx(); - const rounded = StrCast(this.layoutDoc.borderRounding) === "100%" ? "-rounded" : ""; - const interactive = InkingControl.Instance.selectedTool || this.layoutDoc.isBackground; - if (this.props.isSelected()) { - this._editorView && RichTextMenu.Instance.updateFromDash(this._editorView, undefined, this.props); - } else if (FormattedTextBoxComment.textBox === this) { - FormattedTextBoxComment.Hide(); - } - return ( - -
this.hitBulletTargets(e.clientX, e.clientY, e.shiftKey, true)} - onBlur={this.onBlur} - onPointerUp={this.onPointerUp} - onPointerDown={this.onPointerDown} - onMouseUp={this.onMouseUp} - onWheel={this.onPointerWheel} - onPointerEnter={action(() => this._entered = true)} - onPointerLeave={action((e: React.PointerEvent) => { - this._entered = false; - const target = document.elementFromPoint(e.nativeEvent.x, e.nativeEvent.y); - for (let child: any = target; child; child = child?.parentElement) { - if (child === this._ref.current!) { - this._entered = true; - } - } - })} - > -
-
-
- {!this.props.Document._showSidebar ? (null) : this.sidebarWidthPercent === "0%" ? -
this.toggleSidebar()} /> : -
- - -
this.toggleSidebar()} /> -
} - {!this.props.Document._showAudio ? (null) : -
{ - runInAction(() => this._recording = !this._recording); - setTimeout(() => this._editorView!.focus(), 500); - e.stopPropagation(); - }} > - -
} -
- ); - } -} diff --git a/src/client/views/nodes/FormattedTextBoxComment.scss b/src/client/views/nodes/FormattedTextBoxComment.scss deleted file mode 100644 index 2dd63ec21..000000000 --- a/src/client/views/nodes/FormattedTextBoxComment.scss +++ /dev/null @@ -1,33 +0,0 @@ -.FormattedTextBox-tooltip { - position: absolute; - pointer-events: none; - z-index: 20; - background: white; - border: 1px solid silver; - border-radius: 2px; - margin-bottom: 7px; - -webkit-transform: translateX(-50%); - transform: translateX(-50%); - } - .FormattedTextBox-tooltip:before { - content: ""; - height: 0; width: 0; - position: absolute; - left: 50%; - margin-left: -5px; - bottom: -6px; - border: 5px solid transparent; - border-bottom-width: 0; - border-top-color: silver; - } - .FormattedTextBox-tooltip:after { - content: ""; - height: 0; width: 0; - position: absolute; - left: 50%; - margin-left: -5px; - bottom: -4.5px; - border: 5px solid transparent; - border-bottom-width: 0; - border-top-color: white; - } \ No newline at end of file diff --git a/src/client/views/nodes/FormattedTextBoxComment.tsx b/src/client/views/nodes/FormattedTextBoxComment.tsx deleted file mode 100644 index dfea0f6bb..000000000 --- a/src/client/views/nodes/FormattedTextBoxComment.tsx +++ /dev/null @@ -1,236 +0,0 @@ -import { Mark, ResolvedPos } from "prosemirror-model"; -import { EditorState, Plugin } from "prosemirror-state"; -import { EditorView } from "prosemirror-view"; -import * as ReactDOM from 'react-dom'; -import { Doc, DocCastAsync } from "../../../new_fields/Doc"; -import { Cast, FieldValue, NumCast } from "../../../new_fields/Types"; -import { emptyFunction, returnEmptyString, returnFalse, Utils, emptyPath } from "../../../Utils"; -import { DocServer } from "../../DocServer"; -import { DocumentManager } from "../../util/DocumentManager"; -import { schema } from "../../util/schema_rts"; -import { Transform } from "../../util/Transform"; -import { ContentFittingDocumentView } from "./ContentFittingDocumentView"; -import { FormattedTextBox } from "./FormattedTextBox"; -import './FormattedTextBoxComment.scss'; -import React = require("react"); -import { Docs } from "../../documents/Documents"; -import wiki from "wikijs"; -import { DocumentType } from "../../documents/DocumentTypes"; - -export let formattedTextBoxCommentPlugin = new Plugin({ - view(editorView) { return new FormattedTextBoxComment(editorView); } -}); -export function findOtherUserMark(marks: Mark[]): Mark | undefined { - return marks.find(m => m.attrs.userid && m.attrs.userid !== Doc.CurrentUserEmail); -} -export function findUserMark(marks: Mark[]): Mark | undefined { - return marks.find(m => m.attrs.userid); -} -export function findLinkMark(marks: Mark[]): Mark | undefined { - return marks.find(m => m.type === schema.marks.link); -} -export function findStartOfMark(rpos: ResolvedPos, view: EditorView, finder: (marks: Mark[]) => Mark | undefined) { - let before = 0; - let nbef = rpos.nodeBefore; - while (nbef && finder(nbef.marks)) { - before += nbef.nodeSize; - rpos = view.state.doc.resolve(rpos.pos - nbef.nodeSize); - rpos && (nbef = rpos.nodeBefore); - } - return before; -} -export function findEndOfMark(rpos: ResolvedPos, view: EditorView, finder: (marks: Mark[]) => Mark | undefined) { - let after = 0; - let naft = rpos.nodeAfter; - while (naft && finder(naft.marks)) { - after += naft.nodeSize; - rpos = view.state.doc.resolve(rpos.pos + naft.nodeSize); - rpos && (naft = rpos.nodeAfter); - } - return after; -} - - -export class FormattedTextBoxComment { - static tooltip: HTMLElement; - static tooltipText: HTMLElement; - static tooltipInput: HTMLInputElement; - static start: number; - static end: number; - static mark: Mark; - static textBox: FormattedTextBox | undefined; - static linkDoc: Doc | undefined; - constructor(view: any) { - if (!FormattedTextBoxComment.tooltip) { - const root = document.getElementById("root"); - FormattedTextBoxComment.tooltipInput = document.createElement("input"); - FormattedTextBoxComment.tooltipInput.type = "checkbox"; - FormattedTextBoxComment.tooltip = document.createElement("div"); - FormattedTextBoxComment.tooltipText = document.createElement("div"); - FormattedTextBoxComment.tooltipText.style.width = "100%"; - FormattedTextBoxComment.tooltipText.style.height = "100%"; - FormattedTextBoxComment.tooltipText.style.textOverflow = "ellipsis"; - FormattedTextBoxComment.tooltip.appendChild(FormattedTextBoxComment.tooltipText); - FormattedTextBoxComment.tooltip.className = "FormattedTextBox-tooltip"; - FormattedTextBoxComment.tooltip.style.pointerEvents = "all"; - FormattedTextBoxComment.tooltip.style.maxWidth = "350px"; - FormattedTextBoxComment.tooltip.style.maxHeight = "250px"; - FormattedTextBoxComment.tooltip.style.width = "100%"; - FormattedTextBoxComment.tooltip.style.height = "100%"; - FormattedTextBoxComment.tooltip.style.overflow = "hidden"; - FormattedTextBoxComment.tooltip.style.display = "none"; - FormattedTextBoxComment.tooltip.appendChild(FormattedTextBoxComment.tooltipInput); - FormattedTextBoxComment.tooltip.onpointerdown = (e: PointerEvent) => { - const keep = e.target && (e.target as any).type === "checkbox" ? true : false; - const textBox = FormattedTextBoxComment.textBox; - if (FormattedTextBoxComment.linkDoc && !keep && textBox) { - if (FormattedTextBoxComment.linkDoc.type !== DocumentType.LINK) { - textBox.props.addDocTab(FormattedTextBoxComment.linkDoc, e.ctrlKey ? "inTab" : "onRight"); - } else { - DocumentManager.Instance.FollowLink(FormattedTextBoxComment.linkDoc, textBox.props.Document, - (doc: Doc, followLinkLocation: string) => textBox.props.addDocTab(doc, e.ctrlKey ? "inTab" : followLinkLocation)); - } - } else if (textBox && (FormattedTextBoxComment.tooltipText as any).href) { - textBox.props.addDocTab(Docs.Create.WebDocument((FormattedTextBoxComment.tooltipText as any).href, { title: (FormattedTextBoxComment.tooltipText as any).href, _width: 200, _height: 400 }), "onRight"); - } - keep && textBox && FormattedTextBoxComment.start !== undefined && textBox.adoptAnnotation( - FormattedTextBoxComment.start, FormattedTextBoxComment.end, FormattedTextBoxComment.mark); - e.stopPropagation(); - e.preventDefault(); - }; - root && root.appendChild(FormattedTextBoxComment.tooltip); - } - } - - public static Hide() { - FormattedTextBoxComment.textBox = undefined; - FormattedTextBoxComment.tooltip && (FormattedTextBoxComment.tooltip.style.display = "none"); - ReactDOM.unmountComponentAtNode(FormattedTextBoxComment.tooltipText); - } - public static SetState(textBox: any, start: number, end: number, mark: Mark) { - FormattedTextBoxComment.textBox = textBox; - FormattedTextBoxComment.start = start; - FormattedTextBoxComment.end = end; - FormattedTextBoxComment.mark = mark; - FormattedTextBoxComment.tooltip && (FormattedTextBoxComment.tooltip.style.display = ""); - } - - static update(view: EditorView, lastState?: EditorState) { - const state = view.state; - // Don't do anything if the document/selection didn't change - if (lastState && lastState.doc.eq(state.doc) && - lastState.selection.eq(state.selection)) { - return; - } - FormattedTextBoxComment.linkDoc = undefined; - - const textBox = FormattedTextBoxComment.textBox; - if (!textBox || !textBox.props) { - return; - } - let set = "none"; - let nbef = 0; - FormattedTextBoxComment.tooltipInput.style.display = "none"; - FormattedTextBoxComment.tooltip.style.width = ""; - FormattedTextBoxComment.tooltip.style.height = ""; - (FormattedTextBoxComment.tooltipText as any).href = ""; - FormattedTextBoxComment.tooltipText.style.whiteSpace = ""; - FormattedTextBoxComment.tooltipText.style.overflow = ""; - // this section checks to see if the insertion point is over text entered by a different user. If so, it sets ths comment text to indicate the user and the modification date - if (state.selection.$from) { - nbef = findStartOfMark(state.selection.$from, view, findOtherUserMark); - const naft = findEndOfMark(state.selection.$from, view, findOtherUserMark); - const noselection = view.state.selection.$from === view.state.selection.$to; - let child: any = null; - state.doc.nodesBetween(state.selection.from, state.selection.to, (node: any, pos: number, parent: any) => !child && node.marks.length && (child = node)); - const mark = child && findOtherUserMark(child.marks); - if (mark && child && (nbef || naft) && (!mark.attrs.opened || noselection)) { - FormattedTextBoxComment.SetState(FormattedTextBoxComment.textBox, state.selection.$from.pos - nbef, state.selection.$from.pos + naft, mark); - } - if (mark && child && ((nbef && naft) || !noselection)) { - FormattedTextBoxComment.tooltipText.textContent = mark.attrs.userid + " date=" + (new Date(mark.attrs.modified * 5000)).toDateString(); - set = ""; - FormattedTextBoxComment.tooltipInput.style.display = ""; - } - } - // this checks if the selection is a hyperlink. If so, it displays the target doc's text for internal links, and the url of the target for external links. - if (set === "none" && state.selection.$from) { - nbef = findStartOfMark(state.selection.$from, view, findLinkMark); - const naft = findEndOfMark(state.selection.$from, view, findLinkMark); - let child: any = null; - state.doc.nodesBetween(state.selection.from, state.selection.to, (node: any, pos: number, parent: any) => !child && node.marks.length && (child = node)); - const mark = child && findLinkMark(child.marks); - if (mark && child && nbef && naft && mark.attrs.showPreview) { - FormattedTextBoxComment.tooltipText.textContent = "external => " + mark.attrs.href; - (FormattedTextBoxComment.tooltipText as any).href = mark.attrs.href; - if (mark.attrs.href.startsWith("https://en.wikipedia.org/wiki/")) { - wiki().page(mark.attrs.href.replace("https://en.wikipedia.org/wiki/", "")).then(page => page.summary().then(summary => FormattedTextBoxComment.tooltipText.textContent = summary.substring(0, 500))); - } else { - FormattedTextBoxComment.tooltipText.style.whiteSpace = "pre"; - FormattedTextBoxComment.tooltipText.style.overflow = "hidden"; - } - if (mark.attrs.href.indexOf(Utils.prepend("/doc/")) === 0) { - FormattedTextBoxComment.tooltipText.textContent = "target not found..."; - (FormattedTextBoxComment.tooltipText as any).href = ""; - const docTarget = mark.attrs.href.replace(Utils.prepend("/doc/"), "").split("?")[0]; - try { - ReactDOM.unmountComponentAtNode(FormattedTextBoxComment.tooltipText); - } catch (e) { } - docTarget && DocServer.GetRefField(docTarget).then(async linkDoc => { - if (linkDoc instanceof Doc) { - (FormattedTextBoxComment.tooltipText as any).href = mark.attrs.href; - FormattedTextBoxComment.linkDoc = linkDoc; - const anchor = FieldValue(Doc.AreProtosEqual(FieldValue(Cast(linkDoc.anchor1, Doc)), textBox.dataDoc) ? Cast(linkDoc.anchor2, Doc) : (Cast(linkDoc.anchor1, Doc)) || linkDoc); - const target = anchor?.annotationOn ? await DocCastAsync(anchor.annotationOn) : anchor; - if (anchor !== target && anchor && target) { - target.scrollY = NumCast(anchor?.y); - } - if (target) { - ReactDOM.render( Math.min(350, NumCast(target._width, 350))} - PanelHeight={() => Math.min(250, NumCast(target._height, 250))} - focus={emptyFunction} - whenActiveChanged={returnFalse} - />, FormattedTextBoxComment.tooltipText); - FormattedTextBoxComment.tooltip.style.width = NumCast(target.width) ? `${NumCast(target.width)}` : "100%"; - FormattedTextBoxComment.tooltip.style.height = NumCast(target.height) ? `${NumCast(target.height)}` : "100%"; - } - // let ext = (target && target.type !== DocumentType.PDFANNO && Doc.fieldExtensionDoc(target, "data")) || target; // try guessing that the target doc's data is in the 'data' field. probably need an 'overviewLayout' and then just display the target Document .... - // let text = ext && StrCast(ext.text); - // ext && (FormattedTextBoxComment.tooltipText.textContent = (target && target.type === DocumentType.PDFANNO ? "Quoted from " : "") + "=> " + (text || StrCast(ext.title))); - } - }); - } - set = ""; - } - } - if (set !== "none") { - // These are in screen coordinates - // let start = view.coordsAtPos(state.selection.from), end = view.coordsAtPos(state.selection.to); - const start = view.coordsAtPos(state.selection.from - nbef), end = view.coordsAtPos(state.selection.from - nbef); - // The box in which the tooltip is positioned, to use as base - const box = (document.getElementsByClassName("mainView-container") as any)[0].getBoundingClientRect(); - // Find a center-ish x position from the selection endpoints (when - // crossing lines, end may be more to the left) - const left = Math.max((start.left + end.left) / 2, start.left + 3); - FormattedTextBoxComment.tooltip.style.left = (left - box.left) + "px"; - FormattedTextBoxComment.tooltip.style.bottom = (box.bottom - start.top) + "px"; - } - FormattedTextBoxComment.tooltip && (FormattedTextBoxComment.tooltip.style.display = set); - } - - destroy() { } -} diff --git a/src/client/views/nodes/formattedText/DashDocCommentView.tsx b/src/client/views/nodes/formattedText/DashDocCommentView.tsx new file mode 100644 index 000000000..d94fe7fc6 --- /dev/null +++ b/src/client/views/nodes/formattedText/DashDocCommentView.tsx @@ -0,0 +1,95 @@ +import { IReactionDisposer, observable, reaction, runInAction } from "mobx"; +import { baseKeymap, toggleMark } from "prosemirror-commands"; +import { redo, undo } from "prosemirror-history"; +import { keymap } from "prosemirror-keymap"; +import { DOMOutputSpecArray, Fragment, MarkSpec, Node, NodeSpec, Schema, Slice } from "prosemirror-model"; +import { bulletList, listItem, orderedList } from 'prosemirror-schema-list'; +import { EditorState, NodeSelection, Plugin, TextSelection } from "prosemirror-state"; +import { StepMap } from "prosemirror-transform"; +import { EditorView } from "prosemirror-view"; +import * as ReactDOM from 'react-dom'; +import { Doc, DocListCast, Field, HeightSym, WidthSym } from "../../../../new_fields/Doc"; +import { Id } from "../../../../new_fields/FieldSymbols"; +import { List } from "../../../../new_fields/List"; +import { ObjectField } from "../../../../new_fields/ObjectField"; +import { listSpec } from "../../../../new_fields/Schema"; +import { SchemaHeaderField } from "../../../../new_fields/SchemaHeaderField"; +import { ComputedField } from "../../../../new_fields/ScriptField"; +import { BoolCast, Cast, NumCast, StrCast } from "../../../../new_fields/Types"; +import { emptyFunction, returnEmptyString, returnFalse, returnOne, Utils, returnZero } from "../../../../Utils"; +import { DocServer } from "../../../DocServer"; + +import React = require("react"); + +import { schema } from "./schema_rts"; + +interface IDashDocCommentView { + node: any; + view: any; + getPos: any; +} + +export class DashDocCommentView extends React.Component{ + constructor(props: IDashDocCommentView) { + super(props); + } + + targetNode = () => { // search forward in the prosemirror doc for the attached dashDocNode that is the target of the comment anchor + for (let i = this.props.getPos() + 1; i < this.props.view.state.doc.content.size; i++) { + const m = this.props.view.state.doc.nodeAt(i); + if (m && m.type === this.props.view.state.schema.nodes.dashDoc && m.attrs.docid === this.props.node.attrs.docid) { + return { node: m, pos: i, hidden: m.attrs.hidden } as { node: any, pos: number, hidden: boolean }; + } + } + const dashDoc = this.props.view.state.schema.nodes.dashDoc.create({ width: 75, height: 35, title: "dashDoc", docid: this.props.node.attrs.docid, float: "right" }); + this.props.view.dispatch(this.props.view.state.tr.insert(this.props.getPos() + 1, dashDoc)); + setTimeout(() => { try { this.props.view.dispatch(this.props.view.state.tr.setSelection(TextSelection.create(this.props.view.state.tr.doc, this.props.getPos() + 2))); } catch (e) { } }, 0); + return undefined; + } + + onPointerDownCollapse = (e: any) => e.stopPropagation(); + + onPointerUpCollapse = (e: any) => { + const target = this.targetNode(); + if (target) { + const expand = target.hidden; + const tr = this.props.view.state.tr.setNodeMarkup(target.pos, undefined, { ...target.node.attrs, hidden: target.node.attrs.hidden ? false : true }); + this.props.view.dispatch(tr.setSelection(TextSelection.create(tr.doc, this.props.getPos() + (expand ? 2 : 1)))); // update the attrs + setTimeout(() => { + expand && DocServer.GetRefField(this.props.node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowHighlight(dashDoc)); + try { this.props.view.dispatch(this.props.view.state.tr.setSelection(TextSelection.create(this.props.view.state.tr.doc, this.props.getPos() + (expand ? 2 : 1)))); } catch (e) { } + }, 0); + } + e.stopPropagation(); + } + + onPointerEnterCollapse = (e: any) => { + DocServer.GetRefField(this.props.node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowHighlight(dashDoc, false)); + e.preventDefault(); + e.stopPropagation(); + } + + onPointerLeaveCollapse = (e: any) => { + DocServer.GetRefField(this.props.node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowUnhighlight()); + e.preventDefault(); + e.stopPropagation(); + } + + render() { + + const collapsedId = "DashDocCommentView-" + this.props.node.attrs.docid; + + return ( + + + + ); + } +} \ No newline at end of file diff --git a/src/client/views/nodes/formattedText/DashDocView.tsx b/src/client/views/nodes/formattedText/DashDocView.tsx new file mode 100644 index 000000000..9fe8fa320 --- /dev/null +++ b/src/client/views/nodes/formattedText/DashDocView.tsx @@ -0,0 +1,269 @@ +import { IReactionDisposer, reaction } from "mobx"; +import { NodeSelection } from "prosemirror-state"; +import { Doc, HeightSym, WidthSym } from "../../../../new_fields/Doc"; +import { Id } from "../../../../new_fields/FieldSymbols"; +import { ObjectField } from "../../../../new_fields/ObjectField"; +import { ComputedField } from "../../../../new_fields/ScriptField"; +import { BoolCast, Cast, NumCast, StrCast } from "../../../../new_fields/Types"; +import { emptyFunction, returnEmptyString, returnFalse, Utils, returnZero } from "../../../../Utils"; +import { DocServer } from "../../../DocServer"; +import { Docs } from "../../../documents/Documents"; +import { DocumentView } from "../DocumentView"; +import { FormattedTextBox } from "./FormattedTextBox"; +import { Transform } from "../../../util/Transform"; +import React = require("react"); + +interface IDashDocView { + node: any; + view: any; + getPos: any; + tbox?: FormattedTextBox; + self: any; +} + +export class DashDocView extends React.Component { + + _dashDoc: Doc | undefined; + _reactionDisposer: IReactionDisposer | undefined; + _renderDisposer: IReactionDisposer | undefined; + _textBox: FormattedTextBox; + _finalLayout: any; + _resolvedDataDoc: any; + + + // constructor(node: any, view: any, getPos: any, tbox: FormattedTextBox) { + + constructor(props: IDashDocView) { + super(props); + + const node = this.props.node; + this._textBox = this.props.tbox as FormattedTextBox; + + const alias = node.attrs.alias; + const docid = node.attrs.docid || this._textBox.props.Document[Id]; + + DocServer.GetRefField(docid + alias).then(async dashDoc => { + if (!(dashDoc instanceof Doc)) { + alias && DocServer.GetRefField(docid).then(async dashDocBase => { + if (dashDocBase instanceof Doc) { + const aliasedDoc = Doc.MakeAlias(dashDocBase, docid + alias); + aliasedDoc.layoutKey = "layout"; + node.attrs.fieldKey && DocumentView.makeCustomViewClicked(aliasedDoc, Docs.Create.StackingDocument, node.attrs.fieldKey, undefined); + this._dashDoc = aliasedDoc; + // self.doRender(aliasedDoc, removeDoc, node, view, getPos); + } + }); + } else { + this._dashDoc = dashDoc; + // self.doRender(dashDoc, removeDoc, node, view, getPos); + } + }); + + this.onPointerLeave = this.onPointerLeave.bind(this); + this.onPointerEnter = this.onPointerEnter.bind(this); + this.onKeyDown = this.onKeyDown.bind(this); + this.onKeyPress = this.onKeyPress.bind(this); + this.onKeyUp = this.onKeyUp.bind(this); + this.onWheel = this.onWheel.bind(this); + } + /* #region Internal functions */ + + removeDoc = () => { + const view = this.props.view; + const pos = this.props.getPos(); + const ns = new NodeSelection(view.state.doc.resolve(pos)); + view.dispatch(view.state.tr.setSelection(ns).deleteSelection()); + return true; + } + + getDocTransform = () => { + const outerElement = document.getElementById('dash-document-view-outer') as HTMLElement; + const { scale, translateX, translateY } = Utils.GetScreenTransform(outerElement); + return new Transform(-translateX, -translateY, 1).scale(1 / this.contentScaling() / scale); + } + contentScaling = () => NumCast(this._dashDoc!._nativeWidth) > 0 ? this._dashDoc![WidthSym]() / NumCast(this._dashDoc!._nativeWidth) : 1; + + outerFocus = (target: Doc) => this._textBox.props.focus(this._textBox.props.Document); // ideally, this would scroll to show the focus target + + onKeyPress = (e: any) => { + e.stopPropagation(); + } + onWheel = (e: any) => { + e.preventDefault(); + } + onKeyUp = (e: any) => { + e.stopPropagation(); + } + onKeyDown = (e: any) => { + e.stopPropagation(); + if (e.key === "Tab" || e.key === "Enter") { + e.preventDefault(); + } + } + onPointerLeave = () => { + const ele = document.getElementById("DashDocCommentView-" + this.props.node.attrs.docid); + if (ele) { + (ele as HTMLDivElement).style.backgroundColor = ""; + } + } + onPointerEnter = () => { + const ele = document.getElementById("DashDocCommentView-" + this.props.node.attrs.docid); + if (ele) { + (ele as HTMLDivElement).style.backgroundColor = "orange"; + } + } + /*endregion*/ + + componentWillMount = () => { + this._reactionDisposer?.(); + } + + componentDidUpdate = () => { + + this._renderDisposer?.(); + this._renderDisposer = reaction(() => { + + const dashDoc = this._dashDoc as Doc; + const dashLayoutDoc = Doc.Layout(dashDoc); + const finalLayout = this.props.node.attrs.docid ? dashDoc : Doc.expandTemplateLayout(dashLayoutDoc, dashDoc, this.props.node.attrs.fieldKey); + + if (finalLayout) { + if (!Doc.AreProtosEqual(finalLayout, dashDoc)) { + finalLayout.rootDocument = dashDoc.aliasOf; + } + const layoutKey = StrCast(finalLayout.layoutKey); + const finalKey = layoutKey && StrCast(finalLayout[layoutKey]).split("'")?.[1]; + if (finalLayout !== dashDoc && finalKey) { + const finalLayoutField = finalLayout[finalKey]; + if (finalLayoutField instanceof ObjectField) { + finalLayout[finalKey + "-textTemplate"] = ComputedField.MakeFunction(`copyField(this.${finalKey})`, { this: Doc.name }); + } + } + this._finalLayout = finalLayout; + this._resolvedDataDoc = Cast(finalLayout.resolvedDataDoc, Doc, null); + return { finalLayout, resolvedDataDoc: Cast(finalLayout.resolvedDataDoc, Doc, null) }; + } + }, + (res) => { + + if (res) { + this._finalLayout = res.finalLayout; + this._resolvedDataDoc = res.resolvedDataDoc; + + this.forceUpdate(); // doReactRender(res.finalLayout, res.resolvedDataDoc), + } + }, + { fireImmediately: true }); + + } + + render() { + // doRender(dashDoc: Doc, removeDoc: any, node: any, view: any, getPos: any) { + + const node = this.props.node; + const view = this.props.view; + const getPos = this.props.getPos; + + const spanStyle = { + width: this.props.node.props.width, + height: this.props.node.props.height, + position: 'absolute' as 'absolute', + display: 'inline-block' + }; + + + const outerStyle = { + position: "relative" as "relative", + textIndent: "0", + border: "1px solid " + StrCast(this._textBox.Document.color, (Cast(Doc.UserDoc().activeWorkspace, Doc, null).darkScheme ? "dimGray" : "lightGray")), + width: this.props.node.props.width, + height: this.props.node.props.height, + display: this.props.node.props.hidden ? "none" : "inline-block", + float: this.props.node.props.float, + }; + + const dashDoc = this._dashDoc as Doc; + const self = this; + const dashLayoutDoc = Doc.Layout(dashDoc); + const finalLayout = node.attrs.docid ? dashDoc : Doc.expandTemplateLayout(dashLayoutDoc, dashDoc, node.attrs.fieldKey); + const resolvedDataDoc = this._resolvedDataDoc; //Added this + + if (!finalLayout) { + return
; + // if (!finalLayout) setTimeout(() => self.doRender(dashDoc, removeDoc, node, view, getPos), 0); + } else { + + this._reactionDisposer?.(); + this._reactionDisposer = reaction(() => + ({ + dim: [finalLayout[WidthSym](), finalLayout[HeightSym]()], + color: finalLayout.color + }), + ({ dim, color }) => { + spanStyle.width = outerStyle.width = Math.max(20, dim[0]) + "px"; + spanStyle.height = outerStyle.height = Math.max(20, dim[1]) + "px"; + outerStyle.border = "1px solid " + StrCast(finalLayout.color, (Cast(Doc.UserDoc().activeWorkspace, Doc, null).darkScheme ? "dimGray" : "lightGray")); + }, { fireImmediately: true }); + + if (node.attrs.width !== dashDoc._width + "px" || node.attrs.height !== dashDoc._height + "px") { + try { // bcz: an exception will be thrown if two aliases are open at the same time when a doc view comment is made + view.dispatch(view.state.tr.setNodeMarkup(getPos(), null, { ...node.attrs, width: dashDoc._width + "px", height: dashDoc._height + "px" })); + } catch (e) { + console.log(e); + } + } + + + //const doReactRender = (finalLayout: Doc, resolvedDataDoc: Doc) => { + // ReactDOM.unmountComponentAtNode(this._dashSpan); + + return ( + +
+ + +
+
+ ); + + } + } + +} \ No newline at end of file diff --git a/src/client/views/nodes/formattedText/DashFieldView.scss b/src/client/views/nodes/formattedText/DashFieldView.scss new file mode 100644 index 000000000..35ff9c1e6 --- /dev/null +++ b/src/client/views/nodes/formattedText/DashFieldView.scss @@ -0,0 +1,36 @@ +.dashFieldView { + position: relative; + display: inline-block; + + .dashFieldView-enumerables { + width: 10px; + height: 10px; + position: relative; + display: inline-block; + background: dimGray; + } + .dashFieldView-fieldCheck { + min-width: 12px; + position: relative; + display: inline-block; + background-color: rgba(155, 155, 155, 0.24); + } + .dashFieldView-labelSpan { + position: relative; + display: inline-block; + font-size: small; + } + .dashFieldView-fieldSpan { + min-width: 20px; + margin-left: 2px; + margin-right: 5px; + position: relative; + display: inline-block; + background-color: rgba(155, 155, 155, 0.24); + span { + min-width: 100%; + display: inline-block; + } + } +} + \ No newline at end of file diff --git a/src/client/views/nodes/formattedText/DashFieldView.tsx b/src/client/views/nodes/formattedText/DashFieldView.tsx new file mode 100644 index 000000000..82c3185e7 --- /dev/null +++ b/src/client/views/nodes/formattedText/DashFieldView.tsx @@ -0,0 +1,211 @@ +import { IReactionDisposer, observable, runInAction, computed, action } from "mobx"; +import { Doc, DocListCast, Field } from "../../../../new_fields/Doc"; +import { List } from "../../../../new_fields/List"; +import { listSpec } from "../../../../new_fields/Schema"; +import { SchemaHeaderField } from "../../../../new_fields/SchemaHeaderField"; +import { ComputedField } from "../../../../new_fields/ScriptField"; +import { Cast, StrCast } from "../../../../new_fields/Types"; +import { DocServer } from "../../../DocServer"; +import { CollectionViewType } from "../../collections/CollectionView"; +import { FormattedTextBox } from "./FormattedTextBox"; +import React = require("react"); +import * as ReactDOM from 'react-dom'; +import "./DashFieldView.scss"; +import { observer } from "mobx-react"; + + +export class DashFieldView { + _fieldWrapper: HTMLDivElement; // container for label and value + + constructor(node: any, view: any, getPos: any, tbox: FormattedTextBox) { + this._fieldWrapper = document.createElement("div"); + this._fieldWrapper.style.width = node.attrs.width; + this._fieldWrapper.style.height = node.attrs.height; + this._fieldWrapper.style.fontWeight = "bold"; + this._fieldWrapper.style.position = "relative"; + this._fieldWrapper.style.display = "inline-block"; + this._fieldWrapper.onkeypress = function (e: any) { e.stopPropagation(); }; + this._fieldWrapper.onkeydown = function (e: any) { e.stopPropagation(); }; + this._fieldWrapper.onkeyup = function (e: any) { e.stopPropagation(); }; + this._fieldWrapper.onmousedown = function (e: any) { e.stopPropagation(); }; + + ReactDOM.render(, this._fieldWrapper); + (this as any).dom = this._fieldWrapper; + } + destroy() { + ReactDOM.unmountComponentAtNode(this._fieldWrapper); + } + selectNode() { } + +} +interface IDashFieldViewInternal { + fieldKey: string; + docid: string; + view: any; + getPos: any; + tbox: FormattedTextBox; + width: number; + height: number; +} + +@observer +export class DashFieldViewInternal extends React.Component { + _reactionDisposer: IReactionDisposer | undefined; + _textBoxDoc: Doc; + _fieldKey: string; + _fieldStringRef = React.createRef(); + @observable _showEnumerables: boolean = false; + @observable _dashDoc: Doc | undefined; + + constructor(props: IDashFieldViewInternal) { + super(props); + this._fieldKey = this.props.fieldKey; + this._textBoxDoc = this.props.tbox.props.Document; + + if (this.props.docid) { + DocServer.GetRefField(this.props.docid). + then(action(async dashDoc => dashDoc instanceof Doc && (this._dashDoc = dashDoc))); + } else { + this._dashDoc = this.props.tbox.props.DataDoc || this.props.tbox.dataDoc; + } + } + componentWillUnmount() { + this._reactionDisposer?.(); + } + + // set the display of the field's value (checkbox for booleans, span of text for strings) + @computed get fieldValueContent() { + if (this._dashDoc) { + const dashVal = this._dashDoc[this._fieldKey]; + const fval = StrCast(dashVal).startsWith(":=") || dashVal === "" ? Doc.Layout(this._textBoxDoc)[this._fieldKey] : dashVal; + const boolVal = Cast(fval, "boolean", null); + const strVal = Field.toString(fval as Field) || ""; + + // field value is a boolean, so use a checkbox or similar widget to display it + if (boolVal === true || boolVal === false) { + return this._dashDoc![this._fieldKey] = e.target.checked} + />; + } + else // field value is a string, so display it as an editable span + { + // bcz: this is unfortunate, but since this React component is nested within a non-React text box (prosemirror), we can't + // use React events. Essentially, React events occur after native events have been processed, so corresponding React events + // will never fire because Prosemirror has handled the native events. So we add listeners for native events here. + return { + r?.addEventListener("keydown", e => this.fieldSpanKeyDown(e, r)); + r?.addEventListener("blur", e => r && this.updateText(r.textContent!, false)); + r?.addEventListener("pointerdown", action((e) => this._showEnumerables = true)); + }}> + {strVal} + ; + } + } + } + + // we need to handle all key events on the input span or else they will propagate to prosemirror. + @action + fieldSpanKeyDown = (e: KeyboardEvent, span: HTMLSpanElement) => { + if (e.key === "Enter") { // handle the enter key by "submitting" the current text to Dash's database. + e.ctrlKey && Doc.addFieldEnumerations(this._textBoxDoc, this._fieldKey, [{ title: span.textContent! }]); + this.updateText(span.textContent!, true); + e.preventDefault();// prevent default to avoid a newline from being generated and wiping out this field view + } + if (e.key === "a" && (e.ctrlKey || e.metaKey)) { // handle ctrl-A to select all the text within the span + if (window.getSelection) { + const range = document.createRange(); + range.selectNodeContents(span); + window.getSelection()!.removeAllRanges(); + window.getSelection()!.addRange(range); + } + e.preventDefault(); //prevent default so that all the text in the prosemirror text box isn't selected + } + e.stopPropagation(); // we need to handle all events or else they will propagate to prosemirror. + } + + @action + updateText = (nodeText: string, forceMatch: boolean) => { + this._showEnumerables = false; + if (nodeText) { + const newText = nodeText.startsWith(":=") || nodeText.startsWith("=:=") ? ":=-computed-" : nodeText; + + // look for a document whose id === the fieldKey being displayed. If there's a match, then that document + // holds the different enumerated values for the field in the titles of its collected documents. + // if there's a partial match from the start of the input text, complete the text --- TODO: make this an auto suggest box and select from a drop down. + DocServer.GetRefField(this._fieldKey).then(options => { + let modText = ""; + (options instanceof Doc) && DocListCast(options.data).forEach(opt => (forceMatch ? StrCast(opt.title).startsWith(newText) : StrCast(opt.title) === newText) && (modText = StrCast(opt.title))); + if (modText) { + // elementfieldSpan.innerHTML = this._dashDoc![this._fieldKey as string] = modText; + Doc.addFieldEnumerations(this._textBoxDoc, this._fieldKey, []); + this._dashDoc![this._fieldKey] = modText; + } // if the text starts with a ':=' then treat it as an expression by making a computed field from its value storing it in the key + else if (nodeText.startsWith(":=")) { + this._dashDoc![this._fieldKey] = ComputedField.MakeFunction(nodeText.substring(2)); + } else if (nodeText.startsWith("=:=")) { + Doc.Layout(this._textBoxDoc)[this._fieldKey] = ComputedField.MakeFunction(nodeText.substring(3)); + } else { + this._dashDoc![this._fieldKey] = newText; + } + }); + } + } + + // display a collection of all the enumerable values for this field + onPointerDownEnumerables = async (e: any) => { + e.stopPropagation(); + const collview = await Doc.addFieldEnumerations(this._textBoxDoc, this._fieldKey, [{ title: this._fieldKey }]); + collview instanceof Doc && this.props.tbox.props.addDocTab(collview, "onRight"); + } + + + // clicking on the label creates a pivot view collection of all documents + // in the same collection. The pivot field is the fieldKey of this label + onPointerDownLabelSpan = (e: any) => { + e.stopPropagation(); + let container = this.props.tbox.props.ContainingCollectionView; + while (container?.props.Document.isTemplateForField || container?.props.Document.isTemplateDoc) { + container = container.props.ContainingCollectionView; + } + if (container) { + const alias = Doc.MakeAlias(container.props.Document); + alias.viewType = CollectionViewType.Time; + let list = Cast(alias.schemaColumns, listSpec(SchemaHeaderField)); + if (!list) { + alias.schemaColumns = list = new List(); + } + list.map(c => c.heading).indexOf(this._fieldKey) === -1 && list.push(new SchemaHeaderField(this._fieldKey, "#f1efeb")); + list.map(c => c.heading).indexOf("text") === -1 && list.push(new SchemaHeaderField("text", "#f1efeb")); + alias._pivotField = this._fieldKey; + this.props.tbox.props.addDocTab(alias, "onRight"); + } + } + + render() { + return
+ + {this._fieldKey} + + +
+ {this.fieldValueContent} +
+ + {!this._showEnumerables ? (null) :
} + +
; + } +} \ No newline at end of file diff --git a/src/client/views/nodes/formattedText/FootnoteView.tsx b/src/client/views/nodes/formattedText/FootnoteView.tsx new file mode 100644 index 000000000..ee21fb765 --- /dev/null +++ b/src/client/views/nodes/formattedText/FootnoteView.tsx @@ -0,0 +1,162 @@ +import { EditorView } from "prosemirror-view"; +import { EditorState } from "prosemirror-state"; +import { keymap } from "prosemirror-keymap"; +import { baseKeymap, toggleMark } from "prosemirror-commands"; +import { schema } from "./schema_rts"; +import { redo, undo } from "prosemirror-history"; +import { StepMap } from "prosemirror-transform"; + +import React = require("react"); + +interface IFootnoteView { + innerView: any; + outerView: any; + node: any; + dom: any; + getPos: any; +} + +export class FootnoteView extends React.Component { + _innerView: any; + _node: any; + + constructor(props: IFootnoteView) { + super(props); + const node = this.props.node; + const outerView = this.props.outerView; + const _innerView = this.props.innerView; + const getPos = this.props.getPos; + } + + selectNode() { + const attrs = { ...this.props.node.attrs }; + attrs.visibility = true; + this.dom.classList.add("ProseMirror-selectednode"); + if (!this.props.innerView) this.open(); + } + + deselectNode() { + const attrs = { ...this.props.node.attrs }; + attrs.visibility = false; + this.dom.classList.remove("ProseMirror-selectednode"); + if (this.props.innerView) this.close(); + } + open() { + // Append a tooltip to the outer node + const tooltip = this.dom.appendChild(document.createElement("div")); + tooltip.className = "footnote-tooltip"; + // And put a sub-ProseMirror into that + this.props.innerView.defineProperty(new EditorView(tooltip, { + // You can use any node as an editor document + state: EditorState.create({ + doc: this.props.node, + plugins: [keymap(baseKeymap), + keymap({ + "Mod-z": () => undo(this.props.outerView.state, this.props.outerView.dispatch), + "Mod-y": () => redo(this.props.outerView.state, this.props.outerView.dispatch), + "Mod-b": toggleMark(schema.marks.strong) + }), + // new Plugin({ + // view(newView) { + // // TODO -- make this work with RichTextMenu + // // return FormattedTextBox.getToolTip(newView); + // } + // }) + ], + + }), + // This is the magic part + dispatchTransaction: this.dispatchInner.bind(this), + handleDOMEvents: { + pointerdown: ((view: any, e: PointerEvent) => { + // Kludge to prevent issues due to the fact that the whole + // footnote is node-selected (and thus DOM-selected) when + // the parent editor is focused. + e.stopPropagation(); + document.addEventListener("pointerup", this.ignore, true); + if (this.props.outerView.hasFocus()) this.props.innerView.focus(); + }) as any + } + })); + setTimeout(() => this.props.innerView && this.props.innerView.docView.setSelection(0, 0, this.props.innerView.root, true), 0); + } + + ignore = (e: PointerEvent) => { + e.stopPropagation(); + document.removeEventListener("pointerup", this.ignore, true); + } + + dispatchInner(tr: any) { + const { state, transactions } = this.props.innerView.state.applyTransaction(tr); + this.props.innerView.updateState(state); + + if (!tr.getMeta("fromOutside")) { + const outerTr = this.props.outerView.state.tr, offsetMap = StepMap.offset(this.props.getPos() + 1); + for (const transaction of transactions) { + const steps = transaction.steps; + for (const step of steps) { + outerTr.step(step.map(offsetMap)); + } + } + if (outerTr.docChanged) this.props.outerView.dispatch(outerTr); + } + } + update(node: any) { + if (!node.sameMarkup(this.props.node)) return false; + this._node = node; //not sure + if (this.props.innerView) { + const state = this.props.innerView.state; + const start = node.content.findDiffStart(state.doc.content); + if (start !== null) { + let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content); + const overlap = start - Math.min(endA, endB); + if (overlap > 0) { endA += overlap; endB += overlap; } + this.props.innerView.dispatch( + state.tr + .replace(start, endB, node.slice(start, endA)) + .setMeta("fromOutside", true)); + } + } + return true; + } + onPointerUp = (e: any) => { + this.toggle(e); + } + + toggle = (e: any) => { + e.preventDefault(); + if (this.props.innerView) this.close(); + else { + this.open(); + } + } + + close() { + this.props.innerView && this.props.innerView.destroy(); + this._innerView = null; + this.dom.textContent = ""; + } + + destroy() { + if (this.props.innerView) this.close(); + } + + stopEvent(event: any) { + return this.props.innerView && this.props.innerView.dom.contains(event.target); + } + + ignoreMutation() { return true; } + + + render() { + return ( +
+
+ +
+
+ ); + } +} diff --git a/src/client/views/nodes/formattedText/FormattedTextBox.scss b/src/client/views/nodes/formattedText/FormattedTextBox.scss new file mode 100644 index 000000000..477a2ca08 --- /dev/null +++ b/src/client/views/nodes/formattedText/FormattedTextBox.scss @@ -0,0 +1,265 @@ +@import "../../globalCssVariables"; + +.ProseMirror { + width: 100%; + height: 100%; + min-height: 100%; +} + +.ProseMirror:focus { + outline: none !important; +} + +.formattedTextBox-cont { + touch-action: none; + cursor: text; + background: inherit; + padding: 0; + border-width: 0px; + border-radius: inherit; + border-color: $intermediate-color; + box-sizing: border-box; + background-color: inherit; + border-style: solid; + overflow-y: auto; + overflow-x: hidden; + color: initial; + max-height: 100%; + display: flex; + flex-direction: row; + transition: opacity 1s; + + .formattedTextBox-dictation { + height: 12px; + width: 10px; + top: 0px; + left: 0px; + position: absolute; + } +} +.formattedTextBox-outer { + position: relative; + overflow: auto; + display: inline-block; + width: 100%; + height: 100%; +} + +.formattedTextBox-sidebar-handle { + position: absolute; + top: calc(50% - 17.5px); + width: 10px; + height: 35px; + background: lightgray; + border-radius: 20px; + cursor:grabbing; +} + +.formattedTextBox-cont>.formattedTextBox-sidebar-handle { + right: 0; + left: unset; +} + +.formattedTextBox-sidebar, +.formattedTextBox-sidebar-inking { + border-left: dashed 1px black; + height: 100%; + display: inline-block; + position: absolute; + right: 0; + + .collectionfreeformview-container { + position: relative; + } + + >.formattedTextBox-sidebar-handle { + right: unset; + left: -5; + } +} + +.formattedTextBox-sidebar-inking { + pointer-events: all; +} + +.formattedTextBox-inner-rounded { + height: 70%; + width: 85%; + position: absolute; + overflow: auto; + top: 15%; + left: 10%; +} + +.formattedTextBox-inner-rounded, +.formattedTextBox-inner { + height: 100%; + white-space: pre-wrap; +} + +// .menuicon { +// display: inline-block; +// border-right: 1px solid rgba(0, 0, 0, 0.2); +// color: #888; +// line-height: 1; +// padding: 0 7px; +// margin: 1px; +// cursor: pointer; +// text-align: center; +// min-width: 1.4em; +// } + +.strong, +.heading { + font-weight: bold; +} + +.em { + font-style: italic; +} + +.userMarkOpen { + background: rgba(255, 255, 0, 0.267); + display: inline; +} + +.userMark { + background: rgba(255, 255, 0, 0.267); + font-size: 2px; + display: inline-grid; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + width: 10px; + min-height: 10px; + text-align: center; + align-content: center; +} + +footnote { + display: inline-block; + position: relative; + cursor: pointer; + + div { + padding: 0 !important; + } +} + +footnote::after { + content: counter(prosemirror-footnote); + vertical-align: super; + font-size: 75%; + counter-increment: prosemirror-footnote; +} + +.ProseMirror { + counter-reset: prosemirror-footnote; +} + +.footnote-tooltip { + cursor: auto; + font-size: 75%; + position: absolute; + left: -30px; + top: calc(100% + 10px); + background: silver; + padding: 3px; + border-radius: 2px; + max-width: 100px; + min-width: 50px; + width: max-content; +} + +.prosemirror-attribution { + font-size: 8px; +} + +.footnote-tooltip::before { + border: 5px solid silver; + border-top-width: 0px; + border-left-color: transparent; + border-right-color: transparent; + position: absolute; + top: -5px; + left: 27px; + content: " "; + height: 0; + width: 0; +} + + +.formattedTextBox-inlineComment { + position: relative; + width: 40px; + height: 20px; + &::before { + content: "→"; + } + &:hover { + background: orange; + } +} + +.formattedTextBox-summarizer { + opacity: 0.5; + position: relative; + width: 40px; + height: 20px; + &::after { + content: "←"; + } +} + +.formattedTextBox-summarizer-collapsed { + opacity: 0.5; + position: relative; + width: 40px; + height: 20px; + &::after { + content: "..."; + } +} + +.ProseMirror { + touch-action: none; + span { + font-family: inherit; + } + + ol, ul { + counter-reset: deci1 0 multi1 0; + padding-left: 1em; + font-family: inherit; + } + ol { + margin-left: 1em; + font-family: inherit; + } + + .decimal1-ol { counter-reset: deci1; p {display: inline; font-family: inherit} margin-left: 0; } + .decimal2-ol { counter-reset: deci2; p {display: inline; font-family: inherit} font-size: smaller; padding-left: 1em;} + .decimal3-ol { counter-reset: deci3; p {display: inline; font-family: inherit} font-size: smaller; padding-left: 2em;} + .decimal4-ol { counter-reset: deci4; p {display: inline; font-family: inherit} font-size: smaller; padding-left: 3em;} + .decimal5-ol { counter-reset: deci5; p {display: inline; font-family: inherit} font-size: smaller; } + .decimal6-ol { counter-reset: deci6; p {display: inline; font-family: inherit} font-size: smaller; } + .decimal7-ol { counter-reset: deci7; p {display: inline; font-family: inherit} font-size: smaller; } + + .multi1-ol { counter-reset: multi1; p {display: inline; font-family: inherit} margin-left: 0; padding-left: 1.2em } + .multi2-ol { counter-reset: multi2; p {display: inline; font-family: inherit} font-size: smaller; padding-left: 1.4em;} + .multi3-ol { counter-reset: multi3; p {display: inline; font-family: inherit} font-size: smaller; padding-left: 2em;} + .multi4-ol { counter-reset: multi4; p {display: inline; font-family: inherit} font-size: smaller; padding-left: 3.4em;} + + .decimal1:before { transition: 0.5s;counter-increment: deci1; display: inline-block; margin-left: -1em; width: 1em; content: counter(deci1) ". "; } + .decimal2:before { transition: 0.5s;counter-increment: deci2; display: inline-block; margin-left: -2.1em; width: 2.1em; content: counter(deci1) "."counter(deci2) ". "; } + .decimal3:before { transition: 0.5s;counter-increment: deci3; display: inline-block; margin-left: -2.85em;width: 2.85em; content: counter(deci1) "."counter(deci2) "."counter(deci3) ". "; } + .decimal4:before { transition: 0.5s;counter-increment: deci4; display: inline-block; margin-left: -3.85em;width: 3.85em; content: counter(deci1) "."counter(deci2) "."counter(deci3) "."counter(deci4) ". "; } + .decimal5:before { transition: 0.5s;counter-increment: deci5; display: inline-block; margin-left: -2em; width: 5em; content: counter(deci1) "."counter(deci2) "."counter(deci3) "."counter(deci4) "."counter(deci5) ". "; } + .decimal6:before { transition: 0.5s;counter-increment: deci6; display: inline-block; margin-left: -2em; width: 6em; content: counter(deci1) "."counter(deci2) "."counter(deci3) "."counter(deci4) "."counter(deci5) "."counter(deci6) ". "; } + .decimal7:before { transition: 0.5s;counter-increment: deci7; display: inline-block; margin-left: -2em; width: 7em; content: counter(deci1) "."counter(deci2) "."counter(deci3) "."counter(deci4) "."counter(deci5) "."counter(deci6) "."counter(deci7) ". "; } + + .multi1:before { transition: 0.5s;counter-increment: multi1; display: inline-block; margin-left: -1em; width: 1.2em; content: counter(multi1, upper-alpha) ". "; } + .multi2:before { transition: 0.5s;counter-increment: multi2; display: inline-block; margin-left: -2em; width: 2em; content: counter(multi1, upper-alpha) "."counter(multi2, decimal) ". "; } + .multi3:before { transition: 0.5s;counter-increment: multi3; display: inline-block; margin-left: -2.85em; width:2.85em; content: counter(multi1, upper-alpha) "."counter(multi2, decimal) "."counter(multi3, lower-alpha) ". "; } + .multi4:before { transition: 0.5s;counter-increment: multi4; display: inline-block; margin-left: -4.2em; width: 4.2em; content: counter(multi1, upper-alpha) "."counter(multi2, decimal) "."counter(multi3, lower-alpha) "."counter(multi4, lower-roman) ". "; } +} \ No newline at end of file diff --git a/src/client/views/nodes/formattedText/FormattedTextBox.tsx b/src/client/views/nodes/formattedText/FormattedTextBox.tsx new file mode 100644 index 000000000..248b4f467 --- /dev/null +++ b/src/client/views/nodes/formattedText/FormattedTextBox.tsx @@ -0,0 +1,1303 @@ +import { library } from '@fortawesome/fontawesome-svg-core'; +import { faEdit, faSmile, faTextHeight, faUpload } from '@fortawesome/free-solid-svg-icons'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { isEqual } from "lodash"; +import { action, computed, IReactionDisposer, Lambda, observable, reaction, runInAction } from "mobx"; +import { observer } from "mobx-react"; +import { baseKeymap } from "prosemirror-commands"; +import { history } from "prosemirror-history"; +import { inputRules } from 'prosemirror-inputrules'; +import { keymap } from "prosemirror-keymap"; +import { Fragment, Mark, Node, Slice } from "prosemirror-model"; +import { EditorState, NodeSelection, Plugin, TextSelection, Transaction } from "prosemirror-state"; +import { ReplaceStep } from 'prosemirror-transform'; +import { EditorView } from "prosemirror-view"; +import { DateField } from '../../../../new_fields/DateField'; +import { DataSym, Doc, DocListCast, DocListCastAsync, Field, HeightSym, Opt, WidthSym } from "../../../../new_fields/Doc"; +import { documentSchema } from '../../../../new_fields/documentSchemas'; +import { Id } from '../../../../new_fields/FieldSymbols'; +import { InkTool } from '../../../../new_fields/InkField'; +import { PrefetchProxy } from '../../../../new_fields/Proxy'; +import { RichTextField } from "../../../../new_fields/RichTextField"; +import { RichTextUtils } from '../../../../new_fields/RichTextUtils'; +import { createSchema, makeInterface } from "../../../../new_fields/Schema"; +import { Cast, DateCast, NumCast, StrCast } from "../../../../new_fields/Types"; +import { TraceMobx } from '../../../../new_fields/util'; +import { addStyleSheet, addStyleSheetRule, clearStyleSheetRules, emptyFunction, numberRange, returnOne, returnZero, Utils } from '../../../../Utils'; +import { GoogleApiClientUtils, Pulls, Pushes } from '../../../apis/google_docs/GoogleApiClientUtils'; +import { DocServer } from "../../../DocServer"; +import { Docs, DocUtils } from '../../../documents/Documents'; +import { DocumentType } from '../../../documents/DocumentTypes'; +import { DictationManager } from '../../../util/DictationManager'; +import { DragManager } from "../../../util/DragManager"; +import { makeTemplate } from '../../../util/DropConverter'; +import buildKeymap from "./ProsemirrorExampleTransfer"; +import RichTextMenu from './RichTextMenu'; +import { RichTextRules } from "./RichTextRules"; +import { DashDocCommentView, DashDocView, FootnoteView, ImageResizeView, OrderedListView, SummaryView } from "./RichTextSchema"; +// import { DashDocCommentView, DashDocView, DashFieldView, FootnoteView, SummaryView } from "./RichTextSchema"; +// import { OrderedListView } from "./RichTextSchema"; +// import { ImageResizeView } from "./ImageResizeView"; +// import { DashDocCommentView } from "./DashDocCommentView"; +// import { FootnoteView } from "./FootnoteView"; +// import { SummaryView } from "./SummaryView"; +// import { DashDocView } from "./DashDocView"; +import { DashFieldView } from "./DashFieldView"; + +import { schema } from "./schema_rts"; +import { SelectionManager } from "../../../util/SelectionManager"; +import { undoBatch, UndoManager } from "../../../util/UndoManager"; +import { CollectionFreeFormView } from '../../collections/collectionFreeForm/CollectionFreeFormView'; +import { ContextMenu } from '../../ContextMenu'; +import { ContextMenuProps } from '../../ContextMenuItem'; +import { ViewBoxAnnotatableComponent } from "../../DocComponent"; +import { DocumentButtonBar } from '../../DocumentButtonBar'; +import { InkingControl } from "../../InkingControl"; +import { AudioBox } from '../AudioBox'; +import { FieldView, FieldViewProps } from "../FieldView"; +import "./FormattedTextBox.scss"; +import { FormattedTextBoxComment, formattedTextBoxCommentPlugin } from './FormattedTextBoxComment'; +import React = require("react"); + +library.add(faEdit); +library.add(faSmile, faTextHeight, faUpload); + +export interface FormattedTextBoxProps { + hideOnLeave?: boolean; + makeLink?: () => Opt; + xMargin?: number; + yMargin?: number; +} + +const richTextSchema = createSchema({ + documentText: "string" +}); + +export const GoogleRef = "googleDocId"; + +type RichTextDocument = makeInterface<[typeof richTextSchema, typeof documentSchema]>; +const RichTextDocument = makeInterface(richTextSchema, documentSchema); + +type PullHandler = (exportState: Opt, dataDoc: Doc) => void; + +@observer +export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProps & FormattedTextBoxProps), RichTextDocument>(RichTextDocument) { + public static LayoutString(fieldStr: string) { return FieldView.LayoutString(FormattedTextBox, fieldStr); } + public static blankState = () => EditorState.create(FormattedTextBox.Instance.config); + public static Instance: FormattedTextBox; + public ProseRef?: HTMLDivElement; + private _ref: React.RefObject = React.createRef(); + private _scrollRef: React.RefObject = React.createRef(); + private _editorView: Opt; + private _applyingChange: boolean = false; + private _searchIndex = 0; + private _sidebarMovement = 0; + private _lastX = 0; + private _lastY = 0; + private _undoTyping?: UndoManager.Batch; + private _disposers: { [name: string]: IReactionDisposer } = {}; + private dropDisposer?: DragManager.DragDropDisposer; + + @computed get _recording() { return this.dataDoc.audioState === "recording"; } + set _recording(value) { this.dataDoc.audioState = value ? "recording" : undefined; } + + @observable private _entered = false; + + public static FocusedBox: FormattedTextBox | undefined; + public static SelectOnLoad = ""; + public static SelectOnLoadChar = ""; + public static IsFragment(html: string) { + return html.indexOf("data-pm-slice") !== -1; + } + public static GetHref(html: string): string { + const parser = new DOMParser(); + const parsedHtml = parser.parseFromString(html, 'text/html'); + if (parsedHtml.body.childNodes.length === 1 && parsedHtml.body.childNodes[0].childNodes.length === 1 && + (parsedHtml.body.childNodes[0].childNodes[0] as any).href) { + return (parsedHtml.body.childNodes[0].childNodes[0] as any).href; + } + return ""; + } + public static GetDocFromUrl(url: string) { + if (url.startsWith(document.location.origin)) { + const split = new URL(url).pathname.split("doc/"); + const docid = split[split.length - 1]; + return docid; + } + return ""; + } + + @undoBatch + public setFontColor(color: string) { + const view = this._editorView!; + if (view.state.selection.from === view.state.selection.to) return false; + if (view.state.selection.to - view.state.selection.from > view.state.doc.nodeSize - 3) { + this.layoutDoc.color = color; + } + const colorMark = view.state.schema.mark(view.state.schema.marks.pFontColor, { color: color }); + view.dispatch(view.state.tr.addMark(view.state.selection.from, view.state.selection.to, colorMark)); + return true; + } + + constructor(props: any) { + super(props); + FormattedTextBox.Instance = this; + this.updateHighlights(); + } + + public get CurrentDiv(): HTMLDivElement { return this._ref.current!; } + + linkOnDeselect: Map = new Map(); + + doLinkOnDeselect() { + Array.from(this.linkOnDeselect.entries()).map(entry => { + const key = entry[0]; + const value = entry[1]; + const id = Utils.GenerateDeterministicGuid(this.dataDoc[Id] + key); + DocServer.GetRefField(value).then(doc => { + DocServer.GetRefField(id).then(linkDoc => { + this.dataDoc[key] = doc || Docs.Create.FreeformDocument([], { title: value, _width: 500, _height: 500 }, value); + DocUtils.Publish(this.dataDoc[key] as Doc, value, this.props.addDocument, this.props.removeDocument); + if (linkDoc) { (linkDoc as Doc).anchor2 = this.dataDoc[key] as Doc; } + else DocUtils.MakeLink({ doc: this.props.Document }, { doc: this.dataDoc[key] as Doc }, "link to named target", id); + }); + }); + }); + this.linkOnDeselect.clear(); + } + + dispatchTransaction = (tx: Transaction) => { + if (this._editorView) { + const metadata = tx.selection.$from.marks().find((m: Mark) => m.type === schema.marks.metadata); + if (metadata) { + const range = tx.selection.$from.blockRange(tx.selection.$to); + let text = range ? tx.doc.textBetween(range.start, range.end) : ""; + let textEndSelection = tx.selection.to; + for (; textEndSelection < range!.end && text[textEndSelection - range!.start] !== " "; textEndSelection++) { } + text = text.substr(0, textEndSelection - range!.start); + text = text.split(" ")[text.split(" ").length - 1]; + const split = text.split("::"); + if (split.length > 1 && split[1]) { + const key = split[0]; + const value = split[split.length - 1]; + this.linkOnDeselect.set(key, value); + + const id = Utils.GenerateDeterministicGuid(this.dataDoc[Id] + key); + const link = this._editorView.state.schema.marks.link.create({ href: Utils.prepend("/doc/" + id), location: "onRight", title: value }); + const mval = this._editorView.state.schema.marks.metadataVal.create(); + const offset = (tx.selection.to === range!.end - 1 ? -1 : 0); + tx = tx.addMark(textEndSelection - value.length + offset, textEndSelection, link).addMark(textEndSelection - value.length + offset, textEndSelection, mval); + this.dataDoc[key] = value; + } + } + const state = this._editorView.state.apply(tx); + this._editorView.updateState(state); + (tx.storedMarks && !this._editorView.state.storedMarks) && (this._editorView.state.storedMarks = tx.storedMarks); + + const tsel = this._editorView.state.selection.$from; + tsel.marks().filter(m => m.type === this._editorView!.state.schema.marks.user_mark).map(m => AudioBox.SetScrubTime(Math.max(0, m.attrs.modified * 1000))); + const curText = state.doc.textBetween(0, state.doc.content.size, " \n"); + const curTemp = Cast(this.props.Document[this.props.fieldKey + "-textTemplate"], RichTextField); + if (!this._applyingChange) { + this._applyingChange = true; + this.dataDoc[this.props.fieldKey + "-lastModified"] = new DateField(new Date(Date.now())); + if (!curTemp || curText) { // if no template, or there's text, write it to the document. (if this is driven by a template, then this overwrites the template text which is intended) + this.dataDoc[this.props.fieldKey] = new RichTextField(JSON.stringify(state.toJSON()), curText); + this.dataDoc[this.props.fieldKey + "-noTemplate"] = (curTemp?.Text || "") !== curText; // mark the data field as being split from the template if it has been edited + } else { // if we've deleted all the text in a note driven by a template, then restore the template data + this._editorView.updateState(EditorState.fromJSON(this.config, JSON.parse(curTemp.Data))); + this.dataDoc[this.props.fieldKey + "-noTemplate"] = undefined; // mark the data field as not being split from any template it might have + } + this._applyingChange = false; + } + this.updateTitle(); + this.tryUpdateHeight(); + } + } + + updateTitle = () => { + if ((this.props.Document.isTemplateForField === "text" || !this.props.Document.isTemplateForField) && // only update the title if the data document's data field is changing + StrCast(this.dataDoc.title).startsWith("-") && this._editorView && !this.rootDoc.customTitle) { + const str = this._editorView.state.doc.textContent; + const titlestr = str.substr(0, Math.min(40, str.length)); + this.dataDoc.title = "-" + titlestr + (str.length > 40 ? "..." : ""); + } + } + + // needs a better API for taking in a set of words with target documents instead of just one target + public hyperlinkTerms = (terms: string[], target: Doc) => { + if (this._editorView && (this._editorView as any).docView && terms.some(t => t)) { + const res = terms.filter(t => t).map(term => this.findInNode(this._editorView!, this._editorView!.state.doc, term)); + const tr = this._editorView.state.tr; + const flattened: TextSelection[] = []; + res.map(r => r.map(h => flattened.push(h))); + const lastSel = Math.min(flattened.length - 1, this._searchIndex); + this._searchIndex = ++this._searchIndex > flattened.length - 1 ? 0 : this._searchIndex; + const alink = DocUtils.MakeLink({ doc: this.props.Document }, { doc: target }, "automatic")!; + const link = this._editorView.state.schema.marks.link.create({ + href: Utils.prepend("/doc/" + alink[Id]), + title: "a link", location: location, linkId: alink[Id], targetId: target[Id] + }); + this._editorView.dispatch(tr.addMark(flattened[lastSel].from, flattened[lastSel].to, link)); + } + } + public highlightSearchTerms = (terms: string[]) => { + if (this._editorView && (this._editorView as any).docView && terms.some(t => t)) { + const mark = this._editorView.state.schema.mark(this._editorView.state.schema.marks.search_highlight); + const activeMark = this._editorView.state.schema.mark(this._editorView.state.schema.marks.search_highlight, { selected: true }); + const res = terms.filter(t => t).map(term => this.findInNode(this._editorView!, this._editorView!.state.doc, term)); + let tr = this._editorView.state.tr; + const flattened: TextSelection[] = []; + res.map(r => r.map(h => flattened.push(h))); + const lastSel = Math.min(flattened.length - 1, this._searchIndex); + flattened.forEach((h: TextSelection, ind: number) => tr = tr.addMark(h.from, h.to, ind === lastSel ? activeMark : mark)); + this._searchIndex = ++this._searchIndex > flattened.length - 1 ? 0 : this._searchIndex; + this._editorView.dispatch(tr.setSelection(new TextSelection(tr.doc.resolve(flattened[lastSel].from), tr.doc.resolve(flattened[lastSel].to))).scrollIntoView()); + } + } + + public unhighlightSearchTerms = () => { + if (this._editorView && (this._editorView as any).docView) { + const mark = this._editorView.state.schema.mark(this._editorView.state.schema.marks.search_highlight); + const activeMark = this._editorView.state.schema.mark(this._editorView.state.schema.marks.search_highlight, { selected: true }); + const end = this._editorView.state.doc.nodeSize - 2; + this._editorView.dispatch(this._editorView.state.tr.removeMark(0, end, mark).removeMark(0, end, activeMark)); + } + } + adoptAnnotation = (start: number, end: number, mark: Mark) => { + const view = this._editorView!; + const nmark = view.state.schema.marks.user_mark.create({ ...mark.attrs, userid: Doc.CurrentUserEmail }); + view.dispatch(view.state.tr.removeMark(start, end, nmark).addMark(start, end, nmark)); + } + protected createDropTarget = (ele: HTMLDivElement) => { + this.ProseRef = ele; + this.dropDisposer?.(); + ele && (this.dropDisposer = DragManager.MakeDropTarget(ele, this.drop.bind(this), this.props.Document)); + } + + @undoBatch + @action + drop = async (e: Event, de: DragManager.DropEvent) => { + if (de.complete.docDragData) { + const draggedDoc = de.complete.docDragData.draggedDocuments.length && de.complete.docDragData.draggedDocuments[0]; + // replace text contents whend dragging with Alt + if (draggedDoc && draggedDoc.type === DocumentType.RTF && !Doc.AreProtosEqual(draggedDoc, this.props.Document) && de.altKey) { + if (draggedDoc.data instanceof RichTextField) { + Doc.GetProto(this.dataDoc)[this.props.fieldKey] = new RichTextField(draggedDoc.data.Data, draggedDoc.data.Text); + e.stopPropagation(); + } + // embed document when dragging with a userDropAction or an embedDoc flag set + } else if (de.complete.docDragData.userDropAction || de.complete.docDragData.embedDoc) { + const target = de.complete.docDragData.droppedDocuments[0]; + // const link = DocUtils.MakeLink({ doc: this.dataDoc, ctx: this.props.ContainingCollectionDoc }, { doc: target }, "Embedded Doc:" + target.title); + // if (link) { + target._fitToBox = true; + const node = schema.nodes.dashDoc.create({ + width: target[WidthSym](), height: target[HeightSym](), + title: "dashDoc", docid: target[Id], + float: "right" + }); + const view = this._editorView!; + view.dispatch(view.state.tr.insert(view.posAtCoords({ left: de.x, top: de.y })!.pos, node)); + this.tryUpdateHeight(); + e.stopPropagation(); + // } + } // otherwise, fall through to outer collection to handle drop + } else if (de.complete.linkDragData) { + de.complete.linkDragData.linkDropCallback = this.linkDrop; + } + } + linkDrop = (data: DragManager.LinkDragData) => { + const linkDoc = data.linkDocument!; + const anchor1Title = linkDoc.anchor1 instanceof Doc ? StrCast(linkDoc.anchor1.title) : "-untitled-"; + const anchor1Id = linkDoc.anchor1 instanceof Doc ? linkDoc.anchor1[Id] : ""; + this.makeLinkToSelection(linkDoc[Id], anchor1Title, "onRight", anchor1Id); + } + + getNodeEndpoints(context: Node, node: Node): { from: number, to: number } | null { + let offset = 0; + + if (context === node) return { from: offset, to: offset + node.nodeSize }; + + if (node.isBlock) { + // tslint:disable-next-line: prefer-for-of + for (let i = 0; i < (context.content as any).content.length; i++) { + const result = this.getNodeEndpoints((context.content as any).content[i], node); + if (result) { + return { + from: result.from + offset + (context.type.name === "doc" ? 0 : 1), + to: result.to + offset + (context.type.name === "doc" ? 0 : 1) + }; + } + offset += (context.content as any).content[i].nodeSize; + } + return null; + } else { + return null; + } + } + + + //Recursively finds matches within a given node + findInNode(pm: EditorView, node: Node, find: string) { + let ret: TextSelection[] = []; + + if (node.isTextblock) { + let index = 0, foundAt; + const ep = this.getNodeEndpoints(pm.state.doc, node); + while (ep && (foundAt = node.textContent.slice(index).search(RegExp(find, "i"))) > -1) { + const sel = new TextSelection(pm.state.doc.resolve(ep.from + index + foundAt + 1), pm.state.doc.resolve(ep.from + index + foundAt + find.length + 1)); + ret.push(sel); + index = index + foundAt + find.length; + } + } else { + node.content.forEach((child, i) => ret = ret.concat(this.findInNode(pm, child, find))); + } + return ret; + } + static _highlights: string[] = ["Text from Others", "Todo Items", "Important Items", "Disagree Items", "Ignore Items"]; + + updateHighlights = () => { + clearStyleSheetRules(FormattedTextBox._userStyleSheet); + if (FormattedTextBox._highlights.indexOf("Text from Others") !== -1) { + addStyleSheetRule(FormattedTextBox._userStyleSheet, "UM-remote", { background: "yellow" }); + } + if (FormattedTextBox._highlights.indexOf("My Text") !== -1) { + addStyleSheetRule(FormattedTextBox._userStyleSheet, "UM-" + Doc.CurrentUserEmail.replace(".", "").replace("@", ""), { background: "moccasin" }); + } + if (FormattedTextBox._highlights.indexOf("Todo Items") !== -1) { + addStyleSheetRule(FormattedTextBox._userStyleSheet, "userTag-" + "todo", { outline: "black solid 1px" }); + } + if (FormattedTextBox._highlights.indexOf("Important Items") !== -1) { + addStyleSheetRule(FormattedTextBox._userStyleSheet, "userTag-" + "important", { "font-size": "larger" }); + } + if (FormattedTextBox._highlights.indexOf("Disagree Items") !== -1) { + addStyleSheetRule(FormattedTextBox._userStyleSheet, "userTag-" + "disagree", { "text-decoration": "line-through" }); + } + if (FormattedTextBox._highlights.indexOf("Ignore Items") !== -1) { + addStyleSheetRule(FormattedTextBox._userStyleSheet, "userTag-" + "ignore", { "font-size": "1" }); + } + if (FormattedTextBox._highlights.indexOf("By Recent Minute") !== -1) { + addStyleSheetRule(FormattedTextBox._userStyleSheet, "UM-" + Doc.CurrentUserEmail.replace(".", "").replace("@", ""), { opacity: "0.1" }); + const min = Math.round(Date.now() / 1000 / 60); + numberRange(10).map(i => addStyleSheetRule(FormattedTextBox._userStyleSheet, "UM-min-" + (min - i), { opacity: ((10 - i - 1) / 10).toString() })); + setTimeout(() => this.updateHighlights()); + } + if (FormattedTextBox._highlights.indexOf("By Recent Hour") !== -1) { + addStyleSheetRule(FormattedTextBox._userStyleSheet, "UM-" + Doc.CurrentUserEmail.replace(".", "").replace("@", ""), { opacity: "0.1" }); + const hr = Math.round(Date.now() / 1000 / 60 / 60); + numberRange(10).map(i => addStyleSheetRule(FormattedTextBox._userStyleSheet, "UM-hr-" + (hr - i), { opacity: ((10 - i - 1) / 10).toString() })); + } + } + + sidebarDown = (e: React.PointerEvent) => { + this._lastX = e.clientX; + this._lastY = e.clientY; + this._sidebarMovement = 0; + document.addEventListener("pointermove", this.sidebarMove); + document.addEventListener("pointerup", this.sidebarUp); + e.stopPropagation(); + e.preventDefault(); // prevents text from being selected during drag + } + sidebarMove = (e: PointerEvent) => { + const bounds = this.CurrentDiv.getBoundingClientRect(); + this._sidebarMovement += Math.sqrt((e.clientX - this._lastX) * (e.clientX - this._lastX) + (e.clientY - this._lastY) * (e.clientY - this._lastY)); + this.props.Document.sidebarWidthPercent = "" + 100 * (1 - (e.clientX - bounds.left) / bounds.width) + "%"; + } + sidebarUp = (e: PointerEvent) => { + document.removeEventListener("pointermove", this.sidebarMove); + document.removeEventListener("pointerup", this.sidebarUp); + } + + toggleSidebar = () => this._sidebarMovement < 5 && (this.props.Document.sidebarWidthPercent = StrCast(this.props.Document.sidebarWidthPercent, "0%") === "0%" ? "25%" : "0%"); + + public static get DefaultLayout(): Doc | string | undefined { + return Cast(Doc.UserDoc().defaultTextLayout, Doc, null) || StrCast(Doc.UserDoc().defaultTextLayout, null); + } + specificContextMenu = (e: React.MouseEvent): void => { + const cm = ContextMenu.Instance; + + const funcs: ContextMenuProps[] = []; + this.props.Document.isTemplateDoc && funcs.push({ description: "Make Default Layout", event: async () => Doc.UserDoc().defaultTextLayout = new PrefetchProxy(this.props.Document), icon: "eye" }); + funcs.push({ description: "Reset Default Layout", event: () => Doc.UserDoc().defaultTextLayout = undefined, icon: "eye" }); + !this.props.Document.rootDocument && funcs.push({ + description: "Make Template", event: () => { + this.props.Document.isTemplateDoc = makeTemplate(this.props.Document); + Doc.AddDocToList(Cast(Doc.UserDoc()["template-notes"], Doc, null), "data", this.props.Document); + }, icon: "eye" + }); + funcs.push({ description: "Toggle Single Line", event: () => this.props.Document._singleLine = !this.props.Document._singleLine, icon: "expand-arrows-alt" }); + funcs.push({ description: "Toggle Sidebar", event: () => this.props.Document._showSidebar = !this.props.Document._showSidebar, icon: "expand-arrows-alt" }); + funcs.push({ description: "Toggle Dictation Icon", event: () => this.props.Document._showAudio = !this.props.Document._showAudio, icon: "expand-arrows-alt" }); + funcs.push({ description: "Toggle Menubar", event: () => this.toggleMenubar(), icon: "expand-arrows-alt" }); + + const highlighting: ContextMenuProps[] = []; + ["My Text", "Text from Others", "Todo Items", "Important Items", "Ignore Items", "Disagree Items", "By Recent Minute", "By Recent Hour"].forEach(option => + highlighting.push({ + description: (FormattedTextBox._highlights.indexOf(option) === -1 ? "Highlight " : "Unhighlight ") + option, event: () => { + e.stopPropagation(); + if (FormattedTextBox._highlights.indexOf(option) === -1) { + FormattedTextBox._highlights.push(option); + } else { + FormattedTextBox._highlights.splice(FormattedTextBox._highlights.indexOf(option), 1); + } + this.updateHighlights(); + }, icon: "expand-arrows-alt" + })); + funcs.push({ description: "highlighting...", subitems: highlighting, icon: "hand-point-right" }); + + ContextMenu.Instance.addItem({ description: "Options...", subitems: funcs, icon: "asterisk" }); + + const change = cm.findByDescription("Change Perspective..."); + const changeItems: ContextMenuProps[] = change && "subitems" in change ? change.subitems : []; + + const noteTypesDoc = Cast(Doc.UserDoc()["template-notes"], Doc, null); + DocListCast(noteTypesDoc?.data).forEach(note => { + changeItems.push({ + description: StrCast(note.title), event: undoBatch(() => { + Doc.setNativeView(this.props.Document); + Doc.makeCustomViewClicked(this.rootDoc, Docs.Create.TreeDocument, StrCast(note.title), note); + }), icon: "eye" + }); + }); + changeItems.push({ description: "FreeForm", event: undoBatch(() => Doc.makeCustomViewClicked(this.rootDoc, Docs.Create.FreeformDocument, "freeform"), "change view"), icon: "eye" }); + !change && cm.addItem({ description: "Change Perspective...", subitems: changeItems, icon: "external-link-alt" }); + + const open = cm.findByDescription("Add a Perspective..."); + const openItems: ContextMenuProps[] = open && "subitems" in open ? open.subitems : []; + + openItems.push({ + description: "FreeForm", event: undoBatch(() => { + const alias = Doc.MakeAlias(this.rootDoc); + Doc.makeCustomViewClicked(alias, Docs.Create.FreeformDocument, "freeform"); + this.props.addDocTab(alias, "onRight"); + }), icon: "eye" + }); + !open && cm.addItem({ description: "Add a Perspective...", subitems: openItems, icon: "external-link-alt" }); + + } + + recordDictation = () => { + DictationManager.Controls.listen({ + interimHandler: this.setCurrentBulletContent, + continuous: { indefinite: false }, + }).then(results => { + if (results && [DictationManager.Controls.Infringed].includes(results)) { + DictationManager.Controls.stop(); + } + //this._editorView!.focus(); + }); + } + stopDictation = (abort: boolean) => { DictationManager.Controls.stop(!abort); }; + + @action + toggleMenubar = () => { + this.props.Document._chromeStatus = this.props.Document._chromeStatus === "disabled" ? "enabled" : "disabled"; + } + + recordBullet = async () => { + const completedCue = "end session"; + const results = await DictationManager.Controls.listen({ + interimHandler: this.setCurrentBulletContent, + continuous: { indefinite: false }, + terminators: [completedCue, "bullet", "next"] + }); + if (results && [DictationManager.Controls.Infringed, completedCue].includes(results)) { + DictationManager.Controls.stop(); + return; + } + this.nextBullet(this._editorView!.state.selection.to); + setTimeout(this.recordBullet, 2000); + } + + setCurrentBulletContent = (value: string) => { + if (this._editorView) { + const state = this._editorView.state; + const now = Date.now(); + let mark = schema.marks.user_mark.create({ userid: Doc.CurrentUserEmail, modified: Math.floor(now / 1000) }); + if (!this._break && state.selection.to !== state.selection.from) { + for (let i = state.selection.from; i <= state.selection.to; i++) { + const pos = state.doc.resolve(i); + const um = Array.from(pos.marks()).find(m => m.type === schema.marks.user_mark); + if (um) { + mark = um; + break; + } + } + } + const recordingStart = DateCast(this.props.Document.recordingStart).date.getTime(); + this._break = false; + value = "" + (mark.attrs.modified * 1000 - recordingStart) / 1000 + value; + const from = state.selection.from; + const inserted = state.tr.insertText(value).addMark(from, from + value.length + 1, mark); + this._editorView.dispatch(inserted.setSelection(TextSelection.create(inserted.doc, from, from + value.length + 1))); + } + } + + nextBullet = (pos: number) => { + if (this._editorView) { + const frag = Fragment.fromArray(this.newListItems(2)); + if (this._editorView.state.doc.resolve(pos).depth >= 2) { + const slice = new Slice(frag, 2, 2); + let state = this._editorView.state; + this._editorView.dispatch(state.tr.step(new ReplaceStep(pos, pos, slice))); + pos += 4; + state = this._editorView.state; + this._editorView.dispatch(state.tr.setSelection(TextSelection.create(this._editorView.state.doc, pos, pos))); + } + } + } + + private newListItems = (count: number) => { + return numberRange(count).map(x => schema.nodes.list_item.create(undefined, schema.nodes.paragraph.create())); + } + + _keymap: any = undefined; + _rules: RichTextRules | undefined; + @computed get config() { + this._keymap = buildKeymap(schema, this.props); + this._rules = new RichTextRules(this.props.Document, this); + return { + schema, + plugins: [ + inputRules(this._rules.inpRules), + this.richTextMenuPlugin(), + history(), + keymap(this._keymap), + keymap(baseKeymap), + new Plugin({ + props: { + attributes: { class: "ProseMirror-example-setup-style" } + } + }), + formattedTextBoxCommentPlugin + ] + }; + } + + makeLinkToSelection(linkDocId: string, title: string, location: string, targetDocId: string) { + if (this._editorView) { + const link = this._editorView.state.schema.marks.link.create({ href: Utils.prepend("/doc/" + linkDocId), title: title, location: location, linkId: linkDocId, targetId: targetDocId }); + this._editorView.dispatch(this._editorView.state.tr.removeMark(this._editorView.state.selection.from, this._editorView.state.selection.to, this._editorView.state.schema.marks.link). + addMark(this._editorView.state.selection.from, this._editorView.state.selection.to, link)); + } + } + componentDidMount() { + this._disposers.buttonBar = reaction( + () => DocumentButtonBar.Instance, + instance => { + if (instance) { + this.pullFromGoogleDoc(this.checkState); + this.dataDoc[GoogleRef] && this.dataDoc.unchanged && runInAction(() => instance.isAnimatingFetch = true); + } + } + ); + this._disposers.linkMaker = reaction( + () => this.props.makeLink?.(), + (linkDoc: Opt) => { + if (linkDoc) { + const anchor2Title = linkDoc.anchor2 instanceof Doc ? StrCast(linkDoc.anchor2.title) : "-untitled-"; + const anchor2Id = linkDoc.anchor2 instanceof Doc ? linkDoc.anchor2[Id] : ""; + this.makeLinkToSelection(linkDoc[Id], anchor2Title, "onRight", anchor2Id); + } + }, + { fireImmediately: true } + ); + this._disposers.editorState = reaction( + () => { + if (this.dataDoc[this.props.fieldKey + "-noTemplate"] || !this.props.Document[this.props.fieldKey + "-textTemplate"]) { + return Cast(this.dataDoc[this.props.fieldKey], RichTextField, null)?.Data; + } + return Cast(this.props.Document[this.props.fieldKey + "-textTemplate"], RichTextField, null)?.Data; + }, + incomingValue => { + if (incomingValue !== undefined && this._editorView && !this._applyingChange) { + const updatedState = JSON.parse(incomingValue); + this._editorView.updateState(EditorState.fromJSON(this.config, updatedState)); + this.tryUpdateHeight(); + } + } + ); + this._disposers.pullDoc = reaction( + () => this.props.Document[Pulls], + () => { + if (!DocumentButtonBar.hasPulledHack) { + DocumentButtonBar.hasPulledHack = true; + const unchanged = this.dataDoc.unchanged; + this.pullFromGoogleDoc(unchanged ? this.checkState : this.updateState); + } + } + ); + this._disposers.pushDoc = reaction( + () => this.props.Document[Pushes], + () => { + if (!DocumentButtonBar.hasPushedHack) { + DocumentButtonBar.hasPushedHack = true; + this.pushToGoogleDoc(); + } + } + ); + this._disposers.height = reaction( + () => [this.layoutDoc[WidthSym](), this.layoutDoc._autoHeight], + () => this.tryUpdateHeight() + ); + + this.setupEditor(this.config, this.props.fieldKey); + + this._disposers.search = reaction(() => this.rootDoc.searchMatch, + search => search ? this.highlightSearchTerms([Doc.SearchQuery()]) : this.unhighlightSearchTerms(), + { fireImmediately: true }); + + this._disposers.record = reaction(() => this._recording, + () => { + if (this._recording) { + setTimeout(action(() => { + this.stopDictation(true); + setTimeout(() => this.recordDictation(), 500); + }), 500); + } else setTimeout(() => this.stopDictation(true), 0); + } + ); + this._disposers.scrollToRegion = reaction( + () => StrCast(this.layoutDoc.scrollToLinkID), + async (scrollToLinkID) => { + const findLinkFrag = (frag: Fragment, editor: EditorView) => { + const nodes: Node[] = []; + frag.forEach((node, index) => { + const examinedNode = findLinkNode(node, editor); + if (examinedNode && examinedNode.textContent) { + nodes.push(examinedNode); + start += index; + } + }); + return { frag: Fragment.fromArray(nodes), start: start }; + }; + const findLinkNode = (node: Node, editor: EditorView) => { + if (!node.isText) { + const content = findLinkFrag(node.content, editor); + return node.copy(content.frag); + } + const marks = [...node.marks]; + const linkIndex = marks.findIndex(mark => mark.type === editor.state.schema.marks.link); + return linkIndex !== -1 && scrollToLinkID === marks[linkIndex].attrs.href.replace(/.*\/doc\//, "") ? node : undefined; + }; + + let start = -1; + if (this._editorView && scrollToLinkID) { + const editor = this._editorView; + const ret = findLinkFrag(editor.state.doc.content, editor); + + if (ret.frag.size > 2 && ret.start >= 0) { + let selection = TextSelection.near(editor.state.doc.resolve(ret.start)); // default to near the start + if (ret.frag.firstChild) { + selection = TextSelection.between(editor.state.doc.resolve(ret.start), editor.state.doc.resolve(ret.start + ret.frag.firstChild.nodeSize)); // bcz: looks better to not have the target selected + } + editor.dispatch(editor.state.tr.setSelection(new TextSelection(selection.$from, selection.$from)).scrollIntoView()); + const mark = editor.state.schema.mark(this._editorView.state.schema.marks.search_highlight); + setTimeout(() => editor.dispatch(editor.state.tr.addMark(selection.from, selection.to, mark)), 0); + setTimeout(() => this.unhighlightSearchTerms(), 2000); + } + Doc.SetInPlace(this.layoutDoc, "scrollToLinkID", undefined, false); + } + + }, + { fireImmediately: true } + ); + this._disposers.scroll = reaction(() => NumCast(this.props.Document.scrollPos), + pos => this._scrollRef.current && this._scrollRef.current.scrollTo({ top: pos }), { fireImmediately: true } + ); + + setTimeout(() => this.tryUpdateHeight(NumCast(this.layoutDoc.limitHeight, 0))); + } + + pushToGoogleDoc = async () => { + this.pullFromGoogleDoc(async (exportState: Opt, dataDoc: Doc) => { + const modes = GoogleApiClientUtils.Docs.WriteMode; + let mode = modes.Replace; + let reference: Opt = Cast(this.dataDoc[GoogleRef], "string"); + if (!reference) { + mode = modes.Insert; + reference = { title: StrCast(this.dataDoc.title) }; + } + const redo = async () => { + if (this._editorView && reference) { + const content = await RichTextUtils.GoogleDocs.Export(this._editorView.state); + const response = await GoogleApiClientUtils.Docs.write({ reference, content, mode }); + response && (this.dataDoc[GoogleRef] = response.documentId); + const pushSuccess = response !== undefined && !("errors" in response); + dataDoc.unchanged = pushSuccess; + DocumentButtonBar.Instance.startPushOutcome(pushSuccess); + } + }; + const undo = () => { + if (!exportState) { + return; + } + const content: GoogleApiClientUtils.Docs.Content = { + text: exportState.text, + requests: [] + }; + if (reference && content) { + GoogleApiClientUtils.Docs.write({ reference, content, mode }); + } + }; + UndoManager.AddEvent({ undo, redo }); + redo(); + }); + } + + pullFromGoogleDoc = async (handler: PullHandler) => { + const dataDoc = this.dataDoc; + const documentId = StrCast(dataDoc[GoogleRef]); + let exportState: Opt; + if (documentId) { + exportState = await RichTextUtils.GoogleDocs.Import(documentId, dataDoc); + } + UndoManager.RunInBatch(() => handler(exportState, dataDoc), Pulls); + } + + updateState = (exportState: Opt, dataDoc: Doc) => { + let pullSuccess = false; + if (exportState !== undefined) { + pullSuccess = true; + dataDoc.data = new RichTextField(JSON.stringify(exportState.state.toJSON())); + setTimeout(() => { + if (this._editorView) { + const state = this._editorView.state; + const end = state.doc.content.size - 1; + this._editorView.dispatch(state.tr.setSelection(TextSelection.create(state.doc, end, end))); + } + }, 0); + dataDoc.title = exportState.title; + this.rootDoc.customTitle = true; + dataDoc.unchanged = true; + } else { + delete dataDoc[GoogleRef]; + } + DocumentButtonBar.Instance.startPullOutcome(pullSuccess); + } + + checkState = (exportState: Opt, dataDoc: Doc) => { + if (exportState && this._editorView) { + const equalContent = isEqual(this._editorView.state.doc, exportState.state.doc); + const equalTitles = dataDoc.title === exportState.title; + const unchanged = equalContent && equalTitles; + dataDoc.unchanged = unchanged; + DocumentButtonBar.Instance.setPullState(unchanged); + } + } + + clipboardTextSerializer = (slice: Slice): string => { + let text = "", separated = true; + const from = 0, to = slice.content.size; + slice.content.nodesBetween(from, to, (node, pos) => { + if (node.isText) { + text += node.text!.slice(Math.max(from, pos) - pos, to - pos); + separated = false; + } else if (!separated && node.isBlock) { + text += "\n"; + separated = true; + } else if (node.type.name === "hard_break") { + text += "\n"; + } + }, 0); + return text; + } + + sliceSingleNode(slice: Slice) { + return slice.openStart === 0 && slice.openEnd === 0 && slice.content.childCount === 1 ? slice.content.firstChild : null; + } + + handlePaste = (view: EditorView, event: Event, slice: Slice): boolean => { + const cbe = event as ClipboardEvent; + const pdfDocId = cbe.clipboardData && cbe.clipboardData.getData("dash/pdfOrigin"); + const pdfRegionId = cbe.clipboardData && cbe.clipboardData.getData("dash/pdfRegion"); + if (pdfDocId && pdfRegionId) { + DocServer.GetRefField(pdfDocId).then(pdfDoc => { + DocServer.GetRefField(pdfRegionId).then(pdfRegion => { + if ((pdfDoc instanceof Doc) && (pdfRegion instanceof Doc)) { + setTimeout(async () => { + const targetField = Doc.LayoutFieldKey(pdfDoc); + const targetAnnotations = await DocListCastAsync(pdfDoc[DataSym][targetField + "-annotations"]);// bcz: better to have the PDF's view handle updating its own annotations + targetAnnotations?.push(pdfRegion); + }); + + const link = DocUtils.MakeLink({ doc: this.props.Document }, { doc: pdfRegion }, "PDF pasted"); + if (link) { + cbe.clipboardData!.setData("dash/linkDoc", link[Id]); + const linkId = link[Id]; + const frag = addMarkToFrag(slice.content, (node: Node) => addLinkMark(node, StrCast(pdfDoc.title), linkId)); + slice = new Slice(frag, slice.openStart, slice.openEnd); + const tr = view.state.tr.replaceSelection(slice); + view.dispatch(tr.scrollIntoView().setMeta("paste", true).setMeta("uiEvent", "paste")); + } + } + }); + }); + return true; + } + return false; + + + function addMarkToFrag(frag: Fragment, marker: (node: Node) => Node) { + const nodes: Node[] = []; + frag.forEach(node => nodes.push(marker(node))); + return Fragment.fromArray(nodes); + } + function addLinkMark(node: Node, title: string, linkId: string) { + if (!node.isText) { + const content = addMarkToFrag(node.content, (node: Node) => addLinkMark(node, title, linkId)); + return node.copy(content); + } + const marks = [...node.marks]; + const linkIndex = marks.findIndex(mark => mark.type.name === "link"); + const link = view.state.schema.mark(view.state.schema.marks.link, { href: `http://localhost:1050/doc/${linkId}`, location: "onRight", title: title, docref: true }); + marks.splice(linkIndex === -1 ? 0 : linkIndex, 1, link); + return node.mark(marks); + } + } + + private setupEditor(config: any, fieldKey: string) { + const curText = Cast(this.dataDoc[this.props.fieldKey], RichTextField, null); + const useTemplate = !curText?.Text && this.props.Document[this.props.fieldKey + "-textTemplate"]; + const rtfField = Cast((useTemplate && this.props.Document[this.props.fieldKey + "-textTemplate"]) || this.dataDoc[fieldKey], RichTextField); + if (this.ProseRef) { + const self = this; + this._editorView?.destroy(); + this._editorView = new EditorView(this.ProseRef, { + state: rtfField?.Data ? EditorState.fromJSON(config, JSON.parse(rtfField.Data)) : EditorState.create(config), + handleScrollToSelection: (editorView) => { + const docPos = editorView.coordsAtPos(editorView.state.selection.from); + const viewRect = self._ref.current!.getBoundingClientRect(); + if (docPos.top < viewRect.top || docPos.top > viewRect.bottom) { + docPos && (self._scrollRef.current!.scrollTop += (docPos.top - viewRect.top) * self.props.ScreenToLocalTransform().Scale); + } + return true; + }, + dispatchTransaction: this.dispatchTransaction, + nodeViews: { + dashComment(node, view, getPos) { return new DashDocCommentView(node, view, getPos); }, + dashField(node, view, getPos) { return new DashFieldView(node, view, getPos, self); }, + dashDoc(node, view, getPos) { return new DashDocView(node, view, getPos, self); }, + // dashDoc(node, view, getPos) { return new DashDocView({ node, view, getPos, self }); }, + + // image(node, view, getPos) { + // //const addDocTab = this.props.addDocTab; + // return new ImageResizeView({ node, view, getPos, addDocTab: this.props.addDocTab }); + // }, + // // WAS : + // //image(node, view, getPos) { return new ImageResizeView(node, view, getPos, this.props.addDocTab); }, + + summary(node, view, getPos) { return new SummaryView(node, view, getPos); }, + ordered_list(node, view, getPos) { return new OrderedListView(); }, + footnote(node, view, getPos) { return new FootnoteView(node, view, getPos); } + }, + clipboardTextSerializer: this.clipboardTextSerializer, + handlePaste: this.handlePaste, + }); + const startupText = !rtfField && this._editorView && Field.toString(this.dataDoc[fieldKey] as Field); + if (startupText) { + const { state: { tr }, dispatch } = this._editorView; + dispatch(tr.insertText(startupText)); + } + } + + const selectOnLoad = this.rootDoc[Id] === FormattedTextBox.SelectOnLoad; + if (selectOnLoad && !this.props.dontRegisterView) { + FormattedTextBox.SelectOnLoad = ""; + this.props.select(false); + FormattedTextBox.SelectOnLoadChar && this._editorView!.dispatch(this._editorView!.state.tr.insertText(FormattedTextBox.SelectOnLoadChar)); + FormattedTextBox.SelectOnLoadChar = ""; + + } + (selectOnLoad /* || !rtfField?.Text*/) && this._editorView!.focus(); + // add user mark for any first character that was typed since the user mark that gets set in KeyPress won't have been called yet. + this._editorView!.state.storedMarks = [...(this._editorView!.state.storedMarks ? this._editorView!.state.storedMarks : []), schema.marks.user_mark.create({ userid: Doc.CurrentUserEmail, modified: Math.floor(Date.now() / 1000) })]; + } + getFont(font: string) { + switch (font) { + case "Arial": return schema.marks.arial.create(); + case "Times New Roman": return schema.marks.timesNewRoman.create(); + case "Georgia": return schema.marks.georgia.create(); + case "Comic Sans MS": return schema.marks.comicSans.create(); + case "Tahoma": return schema.marks.tahoma.create(); + case "Impact": return schema.marks.impact.create(); + case "ACrimson Textrial": return schema.marks.crimson.create(); + } + return schema.marks.arial.create(); + } + + componentWillUnmount() { + Object.values(this._disposers).forEach(disposer => disposer?.()); + this._editorView?.destroy(); + } + + static _downEvent: any; + _downX = 0; + _downY = 0; + _break = false; + onPointerDown = (e: React.PointerEvent): void => { + if (this._recording && !e.ctrlKey && e.button === 0) { + this.stopDictation(true); + this._break = true; + const state = this._editorView!.state; + const to = state.selection.to; + const updated = TextSelection.create(state.doc, to, to); + this._editorView!.dispatch(this._editorView!.state.tr.setSelection(updated).insertText("\n", to)); + e.preventDefault(); + e.stopPropagation(); + if (this._recording) setTimeout(() => this.recordDictation(), 500); + } + this._downX = e.clientX; + this._downY = e.clientY; + this.doLinkOnDeselect(); + FormattedTextBox._downEvent = true; + FormattedTextBoxComment.textBox = this; + if (this.props.onClick && e.button === 0 && !this.props.isSelected(false)) { + e.preventDefault(); + } + if (e.button === 0 && this.active(true) && !e.altKey && !e.ctrlKey && !e.metaKey) { + if (e.clientX < this.ProseRef!.getBoundingClientRect().right) { // don't stop propagation if clicking in the sidebar + e.stopPropagation(); + } + } + if (e.button === 2 || (e.button === 0 && e.ctrlKey)) { + e.preventDefault(); + } + } + + onPointerUp = (e: React.PointerEvent): void => { + if (!FormattedTextBox._downEvent) return; + FormattedTextBox._downEvent = false; + if (!(e.nativeEvent as any).formattedHandled) { + FormattedTextBoxComment.textBox = this; + FormattedTextBoxComment.update(this._editorView!); + } + (e.nativeEvent as any).formattedHandled = true; + + if (e.buttons === 1 && this.props.isSelected(true) && !e.altKey) { + e.stopPropagation(); + } + this._downX = this._downY = Number.NaN; + } + + @action + onFocused = (e: React.FocusEvent): void => { + FormattedTextBox.FocusedBox = this; + this.tryUpdateHeight(); + + // see if we need to preserve the insertion point + const prosediv = this.ProseRef?.children?.[0] as any; + const keeplocation = prosediv?.keeplocation; + prosediv && (prosediv.keeplocation = undefined); + const pos = this._editorView?.state.selection.$from.pos || 1; + keeplocation && setTimeout(() => this._editorView?.dispatch(this._editorView?.state.tr.setSelection(TextSelection.create(this._editorView.state.doc, pos)))); + const coords = !Number.isNaN(this._downX) ? { left: this._downX, top: this._downY, bottom: this._downY, right: this._downX } : this._editorView?.coordsAtPos(pos); + + // jump rich text menu to this textbox + const bounds = this._ref.current?.getBoundingClientRect(); + if (bounds && this.props.Document._chromeStatus !== "disabled") { + const x = Math.min(Math.max(bounds.left, 0), window.innerWidth - RichTextMenu.Instance.width); + let y = Math.min(Math.max(0, bounds.top - RichTextMenu.Instance.height - 50), window.innerHeight - RichTextMenu.Instance.height); + if (coords && coords.left > x && coords.left < x + RichTextMenu.Instance.width && coords.top > y && coords.top < y + RichTextMenu.Instance.height + 50) { + y = Math.min(bounds.bottom, window.innerHeight - RichTextMenu.Instance.height); + } + RichTextMenu.Instance.jumpTo(x, y); + } + } + onPointerWheel = (e: React.WheelEvent): void => { + // if a text note is not selected and scrollable, this prevents us from being able to scroll and zoom out at the same time + if (this.props.isSelected(true) || e.currentTarget.scrollHeight > e.currentTarget.clientHeight) { + e.stopPropagation(); + } + } + + static _bulletStyleSheet: any = addStyleSheet(); + static _userStyleSheet: any = addStyleSheet(); + + onClick = (e: React.MouseEvent): void => { + if ((this._editorView!.root as any).getSelection().isCollapsed) { // this is a hack to allow the cursor to be placed at the end of a document when the document ends in an inline dash comment. Apparently Chrome on Windows has a bug/feature which breaks this when clicking after the end of the text. + const pcords = this._editorView!.posAtCoords({ left: e.clientX, top: e.clientY }); + const node = pcords && this._editorView!.state.doc.nodeAt(pcords.pos); // get what prosemirror thinks the clicked node is (if it's null, then we didn't click on any text) + if (pcords && node?.type === this._editorView!.state.schema.nodes.dashComment) { + this._editorView!.dispatch(this._editorView!.state.tr.setSelection(TextSelection.create(this._editorView!.state.doc, pcords.pos + 2))); + e.preventDefault(); + } + if (!node && this.ProseRef) { + const lastNode = this.ProseRef.children[this.ProseRef.children.length - 1].children[this.ProseRef.children[this.ProseRef.children.length - 1].children.length - 1]; // get the last prosemirror div + if (e.clientY > lastNode?.getBoundingClientRect().bottom) { // if we clicked below the last prosemirror div, then set the selection to be the end of the document + this._editorView!.dispatch(this._editorView!.state.tr.setSelection(TextSelection.create(this._editorView!.state.doc, this._editorView!.state.doc.content.size))); + } + } + } + if ((e.nativeEvent as any).formattedHandled) { e.stopPropagation(); return; } + (e.nativeEvent as any).formattedHandled = true; + // if (e.button === 0 && ((!this.props.isSelected(true) && !e.ctrlKey) || (this.props.isSelected(true) && e.ctrlKey)) && !e.metaKey && e.target) { + // let href = (e.target as any).href; + // let location: string; + // if ((e.target as any).attributes.location) { + // location = (e.target as any).attributes.location.value; + // } + // let pcords = this._editorView!.posAtCoords({ left: e.clientX, top: e.clientY }); + // let node = pcords && this._editorView!.state.doc.nodeAt(pcords.pos); + // if (node) { + // let link = node.marks.find(m => m.type === this._editorView!.state.schema.marks.link); + // if (link && !(link.attrs.docref && link.attrs.title)) { // bcz: getting hacky. this indicates that we clicked on a PDF excerpt quotation. In this case, we don't want to follow the link (we follow only the actual hyperlink for the quotation which is handled above). + // href = link && link.attrs.href; + // location = link && link.attrs.location; + // } + // } + // if (href) { + // if (href.indexOf(Utils.prepend("/doc/")) === 0) { + // let linkClicked = href.replace(Utils.prepend("/doc/"), "").split("?")[0]; + // if (linkClicked) { + // DocServer.GetRefField(linkClicked).then(async linkDoc => { + // (linkDoc instanceof Doc) && + // DocumentManager.Instance.FollowLink(linkDoc, this.props.Document, document => this.props.addDocTab(document, location ? location : "inTab"), false); + // }); + // } + // } else { + // let webDoc = Docs.Create.WebDocument(href, { x: NumCast(this.layoutDoc.x, 0) + NumCast(this.layoutDoc.width, 0), y: NumCast(this.layoutDoc.y) }); + // this.props.addDocument && this.props.addDocument(webDoc); + // } + // e.stopPropagation(); + // e.preventDefault(); + // } + // } + + if (Math.abs(e.clientX - this._downX) < 4 && Math.abs(e.clientX - this._downX) < 4) { + this.props.select(e.ctrlKey); + this.hitBulletTargets(e.clientX, e.clientY, e.shiftKey, false); + } + } + + // this hackiness handles clicking on the list item bullets to do expand/collapse. the bullets are ::before pseudo elements so there's no real way to hit test against them. + hitBulletTargets(x: number, y: number, select: boolean, highlightOnly: boolean) { + clearStyleSheetRules(FormattedTextBox._bulletStyleSheet); + const pos = this._editorView!.posAtCoords({ left: x, top: y }); + if (pos && this.props.isSelected(true)) { + // let beforeEle = document.querySelector("." + hit.className) as Element; // const before = hit ? window.getComputedStyle(hit, ':before') : undefined; + //const node = this._editorView!.state.doc.nodeAt(pos.pos); + const $pos = this._editorView!.state.doc.resolve(pos.pos); + let list_node = $pos.node().type === schema.nodes.list_item ? $pos.node() : undefined; + if ($pos.node().type === schema.nodes.ordered_list) { + for (let off = 1; off < 100; off++) { + const pos = this._editorView!.posAtCoords({ left: x + off, top: y }); + const node = pos && this._editorView!.state.doc.nodeAt(pos.pos); + if (node?.type === schema.nodes.list_item) { + list_node = node; + break; + } + } + } + if (list_node && pos.inside >= 0 && this._editorView!.state.doc.nodeAt(pos.inside)!.attrs.bulletStyle === list_node.attrs.bulletStyle) { + if (select) { + const $olist_pos = this._editorView!.state.doc.resolve($pos.pos - $pos.parentOffset - 1); + if (!highlightOnly) { + this._editorView!.dispatch(this._editorView!.state.tr.setSelection(new NodeSelection($olist_pos))); + } + addStyleSheetRule(FormattedTextBox._bulletStyleSheet, list_node.attrs.mapStyle + list_node.attrs.bulletStyle + ":hover:before", { background: "lightgray" }); + } else if (Math.abs(pos.pos - pos.inside) < 2) { + if (!highlightOnly) { + const offset = this._editorView!.state.doc.nodeAt(pos.inside)?.type === schema.nodes.ordered_list ? 1 : 0; + this._editorView!.dispatch(this._editorView!.state.tr.setNodeMarkup(pos.inside + offset, list_node.type, { ...list_node.attrs, visibility: !list_node.attrs.visibility })); + this._editorView!.dispatch(this._editorView!.state.tr.setSelection(TextSelection.create(this._editorView!.state.doc, pos.inside + offset))); + } + addStyleSheetRule(FormattedTextBox._bulletStyleSheet, list_node.attrs.mapStyle + list_node.attrs.bulletStyle + ":hover:before", { background: "lightgray" }); + } + } + } + } + onMouseUp = (e: React.MouseEvent): void => { + e.stopPropagation(); + + const view = this._editorView as any; + // this interposes on prosemirror's upHandler to prevent prosemirror's up from invoked multiple times when there + // are nested prosemirrors. We only want the lowest level prosemirror to be invoked. + if (view.mouseDown) { + const originalUpHandler = view.mouseDown.up; + view.root.removeEventListener("mouseup", originalUpHandler); + view.mouseDown.up = (e: MouseEvent) => { + !(e as any).formattedHandled && originalUpHandler(e); + // e.stopPropagation(); + (e as any).formattedHandled = true; + }; + view.root.addEventListener("mouseup", view.mouseDown.up); + } + } + + richTextMenuPlugin() { + return new Plugin({ + view(newView) { + RichTextMenu.Instance && RichTextMenu.Instance.changeView(newView); + return RichTextMenu.Instance; + } + }); + } + + public static HadSelection: boolean = false; + onBlur = (e: any) => { + FormattedTextBox.HadSelection = window.getSelection()?.toString() !== ""; + //DictationManager.Controls.stop(false); + if (this._undoTyping) { + this._undoTyping.end(); + this._undoTyping = undefined; + } + this.doLinkOnDeselect(); + + // move the richtextmenu offscreen + if (!RichTextMenu.Instance.Pinned && !RichTextMenu.Instance.overMenu) RichTextMenu.Instance.jumpTo(-300, -300); + } + + _lastTimedMark: Mark | undefined = undefined; + onKeyPress = (e: React.KeyboardEvent) => { + if (e.altKey) { + e.preventDefault(); + return; + } + const state = this._editorView!.state; + if (!state.selection.empty && e.key === "%") { + this._rules!.EnteringStyle = true; + e.preventDefault(); + e.stopPropagation(); + return; + } + + if (state.selection.empty || !this._rules!.EnteringStyle) { + this._rules!.EnteringStyle = false; + } + if (e.key === "Escape") { + this._editorView!.dispatch(state.tr.setSelection(TextSelection.create(state.doc, state.selection.from, state.selection.from))); + (document.activeElement as any).blur?.(); + SelectionManager.DeselectAll(); + } + e.stopPropagation(); + if (e.key === "Tab" || e.key === "Enter") { + e.preventDefault(); + } + const mark = e.key !== " " && this._lastTimedMark ? this._lastTimedMark : schema.marks.user_mark.create({ userid: Doc.CurrentUserEmail, modified: Math.floor(Date.now() / 1000) }); + this._lastTimedMark = mark; + this._editorView!.dispatch(this._editorView!.state.tr.removeStoredMark(schema.marks.user_mark.create({})).addStoredMark(mark)); + + if (!this._undoTyping) { + this._undoTyping = UndoManager.StartBatch("undoTyping"); + } + } + + onscrolled = (ev: React.UIEvent) => { + this.props.Document.scrollPos = this._scrollRef.current!.scrollTop; + } + @action + tryUpdateHeight(limitHeight?: number) { + let scrollHeight = this._ref.current?.scrollHeight; + if (this.layoutDoc._autoHeight && scrollHeight && + getComputedStyle(this._ref.current!.parentElement!).top === "0px") { // if top === 0, then the text box is growing upward (as the overlay caption) which doesn't contribute to the height computation + if (limitHeight && scrollHeight > limitHeight) { + scrollHeight = limitHeight; + this.layoutDoc.limitHeight = undefined; + this.layoutDoc._autoHeight = false; + } + const nh = this.layoutDoc.isTemplateForField ? 0 : NumCast(this.dataDoc._nativeHeight, 0); + const dh = NumCast(this.layoutDoc._height, 0); + const newHeight = Math.max(10, (nh ? dh / nh * scrollHeight : scrollHeight) + (this.props.ChromeHeight ? this.props.ChromeHeight() : 0)); + if (Math.abs(newHeight - dh) > 1) { // bcz: Argh! without this, we get into a React crash if the same document is opened in a freeform view and in the treeview. no idea why, but after dragging the freeform document, selecting it, and selecting text, it will compute to 1 pixel higher than the treeview which causes a cycle + this.layoutDoc._height = newHeight; + this.dataDoc._nativeHeight = nh ? scrollHeight : undefined; + } + } + } + + @computed get sidebarWidthPercent() { return StrCast(this.props.Document.sidebarWidthPercent, "0%"); } + sidebarWidth = () => Number(this.sidebarWidthPercent.substring(0, this.sidebarWidthPercent.length - 1)) / 100 * this.props.PanelWidth(); + sidebarScreenToLocal = () => this.props.ScreenToLocalTransform().translate(-(this.props.PanelWidth() - this.sidebarWidth()), 0); + @computed get sidebarColor() { return StrCast(this.layoutDoc[this.props.fieldKey + "-backgroundColor"], StrCast(this.layoutDoc[this.props.fieldKey + "-backgroundColor"], "transparent")); } + render() { + TraceMobx(); + const rounded = StrCast(this.layoutDoc.borderRounding) === "100%" ? "-rounded" : ""; + const interactive = InkingControl.Instance.selectedTool || this.layoutDoc.isBackground; + if (this.props.isSelected()) { + this._editorView && RichTextMenu.Instance.updateFromDash(this._editorView, undefined, this.props); + } else if (FormattedTextBoxComment.textBox === this) { + FormattedTextBoxComment.Hide(); + } + return ( + +
this.hitBulletTargets(e.clientX, e.clientY, e.shiftKey, true)} + onBlur={this.onBlur} + onPointerUp={this.onPointerUp} + onPointerDown={this.onPointerDown} + onMouseUp={this.onMouseUp} + onWheel={this.onPointerWheel} + onPointerEnter={action(() => this._entered = true)} + onPointerLeave={action((e: React.PointerEvent) => { + this._entered = false; + const target = document.elementFromPoint(e.nativeEvent.x, e.nativeEvent.y); + for (let child: any = target; child; child = child?.parentElement) { + if (child === this._ref.current!) { + this._entered = true; + } + } + })} + > +
+
+
+ {!this.props.Document._showSidebar ? (null) : this.sidebarWidthPercent === "0%" ? +
this.toggleSidebar()} /> : +
+ + +
this.toggleSidebar()} /> +
} + {!this.props.Document._showAudio ? (null) : +
{ + runInAction(() => this._recording = !this._recording); + setTimeout(() => this._editorView!.focus(), 500); + e.stopPropagation(); + }} > + +
} +
+ ); + } +} diff --git a/src/client/views/nodes/formattedText/FormattedTextBoxComment.scss b/src/client/views/nodes/formattedText/FormattedTextBoxComment.scss new file mode 100644 index 000000000..2dd63ec21 --- /dev/null +++ b/src/client/views/nodes/formattedText/FormattedTextBoxComment.scss @@ -0,0 +1,33 @@ +.FormattedTextBox-tooltip { + position: absolute; + pointer-events: none; + z-index: 20; + background: white; + border: 1px solid silver; + border-radius: 2px; + margin-bottom: 7px; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + } + .FormattedTextBox-tooltip:before { + content: ""; + height: 0; width: 0; + position: absolute; + left: 50%; + margin-left: -5px; + bottom: -6px; + border: 5px solid transparent; + border-bottom-width: 0; + border-top-color: silver; + } + .FormattedTextBox-tooltip:after { + content: ""; + height: 0; width: 0; + position: absolute; + left: 50%; + margin-left: -5px; + bottom: -4.5px; + border: 5px solid transparent; + border-bottom-width: 0; + border-top-color: white; + } \ No newline at end of file diff --git a/src/client/views/nodes/formattedText/FormattedTextBoxComment.tsx b/src/client/views/nodes/formattedText/FormattedTextBoxComment.tsx new file mode 100644 index 000000000..f9e4c5210 --- /dev/null +++ b/src/client/views/nodes/formattedText/FormattedTextBoxComment.tsx @@ -0,0 +1,236 @@ +import { Mark, ResolvedPos } from "prosemirror-model"; +import { EditorState, Plugin } from "prosemirror-state"; +import { EditorView } from "prosemirror-view"; +import * as ReactDOM from 'react-dom'; +import { Doc, DocCastAsync } from "../../../../new_fields/Doc"; +import { Cast, FieldValue, NumCast } from "../../../../new_fields/Types"; +import { emptyFunction, returnEmptyString, returnFalse, Utils, emptyPath } from "../../../../Utils"; +import { DocServer } from "../../../DocServer"; +import { DocumentManager } from "../../../util/DocumentManager"; +import { schema } from "./schema_rts"; +import { Transform } from "../../../util/Transform"; +import { ContentFittingDocumentView } from "../ContentFittingDocumentView"; +import { FormattedTextBox } from "./FormattedTextBox"; +import './FormattedTextBoxComment.scss'; +import React = require("react"); +import { Docs } from "../../../documents/Documents"; +import wiki from "wikijs"; +import { DocumentType } from "../../../documents/DocumentTypes"; + +export let formattedTextBoxCommentPlugin = new Plugin({ + view(editorView) { return new FormattedTextBoxComment(editorView); } +}); +export function findOtherUserMark(marks: Mark[]): Mark | undefined { + return marks.find(m => m.attrs.userid && m.attrs.userid !== Doc.CurrentUserEmail); +} +export function findUserMark(marks: Mark[]): Mark | undefined { + return marks.find(m => m.attrs.userid); +} +export function findLinkMark(marks: Mark[]): Mark | undefined { + return marks.find(m => m.type === schema.marks.link); +} +export function findStartOfMark(rpos: ResolvedPos, view: EditorView, finder: (marks: Mark[]) => Mark | undefined) { + let before = 0; + let nbef = rpos.nodeBefore; + while (nbef && finder(nbef.marks)) { + before += nbef.nodeSize; + rpos = view.state.doc.resolve(rpos.pos - nbef.nodeSize); + rpos && (nbef = rpos.nodeBefore); + } + return before; +} +export function findEndOfMark(rpos: ResolvedPos, view: EditorView, finder: (marks: Mark[]) => Mark | undefined) { + let after = 0; + let naft = rpos.nodeAfter; + while (naft && finder(naft.marks)) { + after += naft.nodeSize; + rpos = view.state.doc.resolve(rpos.pos + naft.nodeSize); + rpos && (naft = rpos.nodeAfter); + } + return after; +} + + +export class FormattedTextBoxComment { + static tooltip: HTMLElement; + static tooltipText: HTMLElement; + static tooltipInput: HTMLInputElement; + static start: number; + static end: number; + static mark: Mark; + static textBox: FormattedTextBox | undefined; + static linkDoc: Doc | undefined; + constructor(view: any) { + if (!FormattedTextBoxComment.tooltip) { + const root = document.getElementById("root"); + FormattedTextBoxComment.tooltipInput = document.createElement("input"); + FormattedTextBoxComment.tooltipInput.type = "checkbox"; + FormattedTextBoxComment.tooltip = document.createElement("div"); + FormattedTextBoxComment.tooltipText = document.createElement("div"); + FormattedTextBoxComment.tooltipText.style.width = "100%"; + FormattedTextBoxComment.tooltipText.style.height = "100%"; + FormattedTextBoxComment.tooltipText.style.textOverflow = "ellipsis"; + FormattedTextBoxComment.tooltip.appendChild(FormattedTextBoxComment.tooltipText); + FormattedTextBoxComment.tooltip.className = "FormattedTextBox-tooltip"; + FormattedTextBoxComment.tooltip.style.pointerEvents = "all"; + FormattedTextBoxComment.tooltip.style.maxWidth = "350px"; + FormattedTextBoxComment.tooltip.style.maxHeight = "250px"; + FormattedTextBoxComment.tooltip.style.width = "100%"; + FormattedTextBoxComment.tooltip.style.height = "100%"; + FormattedTextBoxComment.tooltip.style.overflow = "hidden"; + FormattedTextBoxComment.tooltip.style.display = "none"; + FormattedTextBoxComment.tooltip.appendChild(FormattedTextBoxComment.tooltipInput); + FormattedTextBoxComment.tooltip.onpointerdown = (e: PointerEvent) => { + const keep = e.target && (e.target as any).type === "checkbox" ? true : false; + const textBox = FormattedTextBoxComment.textBox; + if (FormattedTextBoxComment.linkDoc && !keep && textBox) { + if (FormattedTextBoxComment.linkDoc.type !== DocumentType.LINK) { + textBox.props.addDocTab(FormattedTextBoxComment.linkDoc, e.ctrlKey ? "inTab" : "onRight"); + } else { + DocumentManager.Instance.FollowLink(FormattedTextBoxComment.linkDoc, textBox.props.Document, + (doc: Doc, followLinkLocation: string) => textBox.props.addDocTab(doc, e.ctrlKey ? "inTab" : followLinkLocation)); + } + } else if (textBox && (FormattedTextBoxComment.tooltipText as any).href) { + textBox.props.addDocTab(Docs.Create.WebDocument((FormattedTextBoxComment.tooltipText as any).href, { title: (FormattedTextBoxComment.tooltipText as any).href, _width: 200, _height: 400 }), "onRight"); + } + keep && textBox && FormattedTextBoxComment.start !== undefined && textBox.adoptAnnotation( + FormattedTextBoxComment.start, FormattedTextBoxComment.end, FormattedTextBoxComment.mark); + e.stopPropagation(); + e.preventDefault(); + }; + root && root.appendChild(FormattedTextBoxComment.tooltip); + } + } + + public static Hide() { + FormattedTextBoxComment.textBox = undefined; + FormattedTextBoxComment.tooltip && (FormattedTextBoxComment.tooltip.style.display = "none"); + ReactDOM.unmountComponentAtNode(FormattedTextBoxComment.tooltipText); + } + public static SetState(textBox: any, start: number, end: number, mark: Mark) { + FormattedTextBoxComment.textBox = textBox; + FormattedTextBoxComment.start = start; + FormattedTextBoxComment.end = end; + FormattedTextBoxComment.mark = mark; + FormattedTextBoxComment.tooltip && (FormattedTextBoxComment.tooltip.style.display = ""); + } + + static update(view: EditorView, lastState?: EditorState) { + const state = view.state; + // Don't do anything if the document/selection didn't change + if (lastState && lastState.doc.eq(state.doc) && + lastState.selection.eq(state.selection)) { + return; + } + FormattedTextBoxComment.linkDoc = undefined; + + const textBox = FormattedTextBoxComment.textBox; + if (!textBox || !textBox.props) { + return; + } + let set = "none"; + let nbef = 0; + FormattedTextBoxComment.tooltipInput.style.display = "none"; + FormattedTextBoxComment.tooltip.style.width = ""; + FormattedTextBoxComment.tooltip.style.height = ""; + (FormattedTextBoxComment.tooltipText as any).href = ""; + FormattedTextBoxComment.tooltipText.style.whiteSpace = ""; + FormattedTextBoxComment.tooltipText.style.overflow = ""; + // this section checks to see if the insertion point is over text entered by a different user. If so, it sets ths comment text to indicate the user and the modification date + if (state.selection.$from) { + nbef = findStartOfMark(state.selection.$from, view, findOtherUserMark); + const naft = findEndOfMark(state.selection.$from, view, findOtherUserMark); + const noselection = view.state.selection.$from === view.state.selection.$to; + let child: any = null; + state.doc.nodesBetween(state.selection.from, state.selection.to, (node: any, pos: number, parent: any) => !child && node.marks.length && (child = node)); + const mark = child && findOtherUserMark(child.marks); + if (mark && child && (nbef || naft) && (!mark.attrs.opened || noselection)) { + FormattedTextBoxComment.SetState(FormattedTextBoxComment.textBox, state.selection.$from.pos - nbef, state.selection.$from.pos + naft, mark); + } + if (mark && child && ((nbef && naft) || !noselection)) { + FormattedTextBoxComment.tooltipText.textContent = mark.attrs.userid + " date=" + (new Date(mark.attrs.modified * 5000)).toDateString(); + set = ""; + FormattedTextBoxComment.tooltipInput.style.display = ""; + } + } + // this checks if the selection is a hyperlink. If so, it displays the target doc's text for internal links, and the url of the target for external links. + if (set === "none" && state.selection.$from) { + nbef = findStartOfMark(state.selection.$from, view, findLinkMark); + const naft = findEndOfMark(state.selection.$from, view, findLinkMark); + let child: any = null; + state.doc.nodesBetween(state.selection.from, state.selection.to, (node: any, pos: number, parent: any) => !child && node.marks.length && (child = node)); + const mark = child && findLinkMark(child.marks); + if (mark && child && nbef && naft && mark.attrs.showPreview) { + FormattedTextBoxComment.tooltipText.textContent = "external => " + mark.attrs.href; + (FormattedTextBoxComment.tooltipText as any).href = mark.attrs.href; + if (mark.attrs.href.startsWith("https://en.wikipedia.org/wiki/")) { + wiki().page(mark.attrs.href.replace("https://en.wikipedia.org/wiki/", "")).then(page => page.summary().then(summary => FormattedTextBoxComment.tooltipText.textContent = summary.substring(0, 500))); + } else { + FormattedTextBoxComment.tooltipText.style.whiteSpace = "pre"; + FormattedTextBoxComment.tooltipText.style.overflow = "hidden"; + } + if (mark.attrs.href.indexOf(Utils.prepend("/doc/")) === 0) { + FormattedTextBoxComment.tooltipText.textContent = "target not found..."; + (FormattedTextBoxComment.tooltipText as any).href = ""; + const docTarget = mark.attrs.href.replace(Utils.prepend("/doc/"), "").split("?")[0]; + try { + ReactDOM.unmountComponentAtNode(FormattedTextBoxComment.tooltipText); + } catch (e) { } + docTarget && DocServer.GetRefField(docTarget).then(async linkDoc => { + if (linkDoc instanceof Doc) { + (FormattedTextBoxComment.tooltipText as any).href = mark.attrs.href; + FormattedTextBoxComment.linkDoc = linkDoc; + const anchor = FieldValue(Doc.AreProtosEqual(FieldValue(Cast(linkDoc.anchor1, Doc)), textBox.dataDoc) ? Cast(linkDoc.anchor2, Doc) : (Cast(linkDoc.anchor1, Doc)) || linkDoc); + const target = anchor?.annotationOn ? await DocCastAsync(anchor.annotationOn) : anchor; + if (anchor !== target && anchor && target) { + target.scrollY = NumCast(anchor?.y); + } + if (target) { + ReactDOM.render( Math.min(350, NumCast(target._width, 350))} + PanelHeight={() => Math.min(250, NumCast(target._height, 250))} + focus={emptyFunction} + whenActiveChanged={returnFalse} + />, FormattedTextBoxComment.tooltipText); + FormattedTextBoxComment.tooltip.style.width = NumCast(target.width) ? `${NumCast(target.width)}` : "100%"; + FormattedTextBoxComment.tooltip.style.height = NumCast(target.height) ? `${NumCast(target.height)}` : "100%"; + } + // let ext = (target && target.type !== DocumentType.PDFANNO && Doc.fieldExtensionDoc(target, "data")) || target; // try guessing that the target doc's data is in the 'data' field. probably need an 'overviewLayout' and then just display the target Document .... + // let text = ext && StrCast(ext.text); + // ext && (FormattedTextBoxComment.tooltipText.textContent = (target && target.type === DocumentType.PDFANNO ? "Quoted from " : "") + "=> " + (text || StrCast(ext.title))); + } + }); + } + set = ""; + } + } + if (set !== "none") { + // These are in screen coordinates + // let start = view.coordsAtPos(state.selection.from), end = view.coordsAtPos(state.selection.to); + const start = view.coordsAtPos(state.selection.from - nbef), end = view.coordsAtPos(state.selection.from - nbef); + // The box in which the tooltip is positioned, to use as base + const box = (document.getElementsByClassName("mainView-container") as any)[0].getBoundingClientRect(); + // Find a center-ish x position from the selection endpoints (when + // crossing lines, end may be more to the left) + const left = Math.max((start.left + end.left) / 2, start.left + 3); + FormattedTextBoxComment.tooltip.style.left = (left - box.left) + "px"; + FormattedTextBoxComment.tooltip.style.bottom = (box.bottom - start.top) + "px"; + } + FormattedTextBoxComment.tooltip && (FormattedTextBoxComment.tooltip.style.display = set); + } + + destroy() { } +} diff --git a/src/client/views/nodes/formattedText/ImageResizeView.tsx b/src/client/views/nodes/formattedText/ImageResizeView.tsx new file mode 100644 index 000000000..8f98da0fd --- /dev/null +++ b/src/client/views/nodes/formattedText/ImageResizeView.tsx @@ -0,0 +1,138 @@ +import { NodeSelection } from "prosemirror-state"; +import { Doc } from "../../../../new_fields/Doc"; +import { DocServer } from "../../../DocServer"; +import { DocumentManager } from "../../../util/DocumentManager"; +import React = require("react"); + +import { schema } from "./schema_rts"; + +interface IImageResizeView { + node: any; + view: any; + getPos: any; + addDocTab: any; +} + +export class ImageResizeView extends React.Component { + constructor(props: IImageResizeView) { + super(props); + } + + onClickImg = (e: any) => { + e.stopPropagation(); + e.preventDefault(); + if (this.props.view.state.selection.node && this.props.view.state.selection.node.type !== this.props.view.state.schema.nodes.image) { + this.props.view.dispatch(this.props.view.state.tr.setSelection(new NodeSelection(this.props.view.state.doc.resolve(this.props.view.state.selection.from - 2)))); + } + } + + onPointerDownImg = (e: any) => { + if (e.ctrlKey) { + e.preventDefault(); + e.stopPropagation(); + DocServer.GetRefField(this.props.node.attrs.docid).then(async linkDoc => + (linkDoc instanceof Doc) && + DocumentManager.Instance.FollowLink(linkDoc, this.props.view.state.schema.Document, + document => this.props.addDocTab(document, this.props.node.attrs.location ? this.props.node.attrs.location : "inTab"), false)); + } + } + + onPointerDownHandle = (e: any) => { + e.preventDefault(); + e.stopPropagation(); + const elementImage = document.getElementById("imageId") as HTMLElement; + const wid = Number(getComputedStyle(elementImage).width.replace(/px/, "")); + const hgt = Number(getComputedStyle(elementImage).height.replace(/px/, "")); + const startX = e.pageX; + const startWidth = parseFloat(this.props.node.attrs.width); + + const onpointermove = (e: any) => { + const elementOuter = document.getElementById("outerId") as HTMLElement; + + const currentX = e.pageX; + const diffInPx = currentX - startX; + elementOuter.style.width = `${startWidth + diffInPx}`; + elementOuter.style.height = `${(startWidth + diffInPx) * hgt / wid}`; + }; + + const onpointerup = () => { + document.removeEventListener("pointermove", onpointermove); + document.removeEventListener("pointerup", onpointerup); + const pos = this.props.view.state.selection.from; + const elementOuter = document.getElementById("outerId") as HTMLElement; + this.props.view.dispatch(this.props.view.state.tr.setNodeMarkup(this.props.getPos(), null, { ...this.props.node.attrs, width: elementOuter.style.width, height: elementOuter.style.height })); + this.props.view.dispatch(this.props.view.state.tr.setSelection(new NodeSelection(this.props.view.state.doc.resolve(pos)))); + }; + + document.addEventListener("pointermove", onpointermove); + document.addEventListener("pointerup", onpointerup); + } + + selectNode() { + const elementImage = document.getElementById("imageId") as HTMLElement; + const elementHandle = document.getElementById("handleId") as HTMLElement; + + elementImage.classList.add("ProseMirror-selectednode"); + elementHandle.style.display = ""; + } + + deselectNode() { + const elementImage = document.getElementById("imageId") as HTMLElement; + const elementHandle = document.getElementById("handleId") as HTMLElement; + + elementImage.classList.remove("ProseMirror-selectednode"); + elementHandle.style.display = "none"; + } + + + render() { + + const outerStyle = { + width: this.props.node.attrs.width, + height: this.props.node.attrs.height, + display: "inline-block", + overflow: "hidden", + float: this.props.node.attrs.float + }; + + const imageStyle = { + width: "100%", + }; + + const handleStyle = { + position: "absolute", + width: "20px", + heiht: "20px", + backgroundColor: "blue", + borderRadius: "15px", + display: "none", + bottom: "-10px", + right: "-10px" + + }; + + + + return ( +
+ + + + + +
+ ); + } +} \ No newline at end of file diff --git a/src/client/views/nodes/formattedText/ParagraphNodeSpec.ts b/src/client/views/nodes/formattedText/ParagraphNodeSpec.ts new file mode 100644 index 000000000..d80e64634 --- /dev/null +++ b/src/client/views/nodes/formattedText/ParagraphNodeSpec.ts @@ -0,0 +1,143 @@ +import clamp from '../../../util/clamp'; +import convertToCSSPTValue from '../../../util/convertToCSSPTValue'; +import toCSSLineSpacing from '../../../util/toCSSLineSpacing'; +import { Node, DOMOutputSpec } from 'prosemirror-model'; + +//import type { NodeSpec } from './Types'; +type NodeSpec = { + attrs?: { [key: string]: any }, + content?: string, + draggable?: boolean, + group?: string, + inline?: boolean, + name?: string, + parseDOM?: Array, + toDOM?: (node: any) => DOMOutputSpec, +}; + +// This assumes that every 36pt maps to one indent level. +export const INDENT_MARGIN_PT_SIZE = 36; +export const MIN_INDENT_LEVEL = 0; +export const MAX_INDENT_LEVEL = 7; +export const ATTRIBUTE_INDENT = 'data-indent'; + +export const EMPTY_CSS_VALUE = new Set(['', '0%', '0pt', '0px']); + +const ALIGN_PATTERN = /(left|right|center|justify)/; + +// https://github.com/ProseMirror/prosemirror-schema-basic/blob/master/src/schema-basic.js +// :: NodeSpec A plain paragraph textblock. Represented in the DOM +// as a `

` element. +const ParagraphNodeSpec: NodeSpec = { + attrs: { + align: { default: null }, + color: { default: null }, + id: { default: null }, + indent: { default: null }, + inset: { default: null }, + lineSpacing: { default: null }, + // TODO: Add UI to let user edit / clear padding. + paddingBottom: { default: null }, + // TODO: Add UI to let user edit / clear padding. + paddingTop: { default: null }, + }, + content: 'inline*', + group: 'block', + parseDOM: [{ tag: 'p', getAttrs }], + toDOM, +}; + +function getAttrs(dom: HTMLElement): Object { + const { + lineHeight, + textAlign, + marginLeft, + paddingTop, + paddingBottom, + } = dom.style; + + let align = dom.getAttribute('align') || textAlign || ''; + align = ALIGN_PATTERN.test(align) ? align : ""; + + let indent = parseInt(dom.getAttribute(ATTRIBUTE_INDENT) || "", 10); + + if (!indent && marginLeft) { + indent = convertMarginLeftToIndentValue(marginLeft); + } + + indent = indent || MIN_INDENT_LEVEL; + + const lineSpacing = lineHeight ? toCSSLineSpacing(lineHeight) : null; + + const id = dom.getAttribute('id') || ''; + return { align, indent, lineSpacing, paddingTop, paddingBottom, id }; +} + +function toDOM(node: Node): DOMOutputSpec { + const { + align, + indent, + inset, + lineSpacing, + paddingTop, + paddingBottom, + id, + } = node.attrs; + const attrs: { [key: string]: any } | null = {}; + + let style = ''; + if (align && align !== 'left') { + style += `text-align: ${align};`; + } + + if (lineSpacing) { + const cssLineSpacing = toCSSLineSpacing(lineSpacing); + style += + `line-height: ${cssLineSpacing};` + + // This creates the local css variable `--czi-content-line-height` + // that its children may apply. + `--czi-content-line-height: ${cssLineSpacing}`; + } + + if (paddingTop && !EMPTY_CSS_VALUE.has(paddingTop)) { + style += `padding-top: ${paddingTop};`; + } + + if (paddingBottom && !EMPTY_CSS_VALUE.has(paddingBottom)) { + style += `padding-bottom: ${paddingBottom};`; + } + + if (indent) { + style += `text-indent: ${indent}; padding-left: ${indent < 0 ? -indent : undefined};`; + } + + if (inset) { + style += `margin-left: ${inset}; margin-right: ${inset};`; + } + + style && (attrs.style = style); + + if (indent) { + attrs[ATTRIBUTE_INDENT] = String(indent); + } + + if (id) { + attrs.id = id; + } + + return ['p', attrs, 0]; +} + +export const toParagraphDOM = toDOM; +export const getParagraphNodeAttrs = getAttrs; + +export function convertMarginLeftToIndentValue(marginLeft: string): number { + const ptValue = convertToCSSPTValue(marginLeft); + return clamp( + MIN_INDENT_LEVEL, + Math.floor(ptValue / INDENT_MARGIN_PT_SIZE), + MAX_INDENT_LEVEL + ); +} + +export default ParagraphNodeSpec; \ No newline at end of file diff --git a/src/client/views/nodes/formattedText/ProsemirrorExampleTransfer.ts b/src/client/views/nodes/formattedText/ProsemirrorExampleTransfer.ts new file mode 100644 index 000000000..a0b02880e --- /dev/null +++ b/src/client/views/nodes/formattedText/ProsemirrorExampleTransfer.ts @@ -0,0 +1,241 @@ +import { chainCommands, exitCode, joinDown, joinUp, lift, selectParentNode, setBlockType, splitBlockKeepMarks, toggleMark, wrapIn } from "prosemirror-commands"; +import { redo, undo } from "prosemirror-history"; +import { undoInputRule } from "prosemirror-inputrules"; +import { Schema } from "prosemirror-model"; +import { liftListItem, sinkListItem } from "./prosemirrorPatches.js"; +import { splitListItem, wrapInList, } from "prosemirror-schema-list"; +import { EditorState, Transaction, TextSelection } from "prosemirror-state"; +import { SelectionManager } from "../../../util/SelectionManager"; +import { Docs } from "../../../documents/Documents"; +import { NumCast, BoolCast, Cast, StrCast } from "../../../../new_fields/Types"; +import { Doc } from "../../../../new_fields/Doc"; +import { FormattedTextBox } from "./FormattedTextBox"; +import { Id } from "../../../../new_fields/FieldSymbols"; + +const mac = typeof navigator !== "undefined" ? /Mac/.test(navigator.platform) : false; + +export type KeyMap = { [key: string]: any }; + +export let updateBullets = (tx2: Transaction, schema: Schema, mapStyle?: string) => { + let fontSize: number | undefined = undefined; + tx2.doc.descendants((node: any, offset: any, index: any) => { + if (node.type === schema.nodes.ordered_list || node.type === schema.nodes.list_item) { + const path = (tx2.doc.resolve(offset) as any).path; + let depth = Array.from(path).reduce((p: number, c: any) => p + (c.hasOwnProperty("type") && c.type === schema.nodes.ordered_list ? 1 : 0), 0); + if (node.type === schema.nodes.ordered_list) depth++; + fontSize = depth === 1 && node.attrs.setFontSize ? Number(node.attrs.setFontSize) : fontSize; + const fsize = fontSize && node.type === schema.nodes.ordered_list ? Math.max(6, fontSize - (depth - 1) * 4) : undefined; + tx2.setNodeMarkup(offset, node.type, { ...node.attrs, mapStyle: mapStyle ? mapStyle : node.attrs.mapStyle, bulletStyle: depth, inheritedFontSize: fsize }, node.marks); + } + }); + return tx2; +}; +export default function buildKeymap>(schema: S, props: any, mapKeys?: KeyMap): KeyMap { + const keys: { [key: string]: any } = {}; + + function bind(key: string, cmd: any) { + if (mapKeys) { + const mapped = mapKeys[key]; + if (mapped === false) return; + if (mapped) key = mapped; + } + keys[key] = cmd; + } + + bind("Mod-z", undo); + bind("Shift-Mod-z", redo); + bind("Backspace", undoInputRule); + + !mac && bind("Mod-y", redo); + + bind("Alt-ArrowUp", joinUp); + bind("Alt-ArrowDown", joinDown); + bind("Mod-BracketLeft", lift); + bind("Escape", (state: EditorState, dispatch: (tx: Transaction) => void) => { + dispatch(state.tr.setSelection(TextSelection.create(state.doc, state.selection.from, state.selection.from))); + (document.activeElement as any).blur?.(); + SelectionManager.DeselectAll(); + }); + + bind("Mod-b", toggleMark(schema.marks.strong)); + bind("Mod-B", toggleMark(schema.marks.strong)); + + bind("Mod-e", toggleMark(schema.marks.em)); + bind("Mod-E", toggleMark(schema.marks.em)); + + bind("Mod-u", toggleMark(schema.marks.underline)); + bind("Mod-U", toggleMark(schema.marks.underline)); + + bind("Mod-`", toggleMark(schema.marks.code)); + + bind("Ctrl-.", wrapInList(schema.nodes.bullet_list)); + + bind("Ctrl-n", wrapInList(schema.nodes.ordered_list)); + + bind("Ctrl->", wrapIn(schema.nodes.blockquote)); + + // bind("^", (state: EditorState, dispatch: (tx: Transaction) => void) => { + // let newNode = schema.nodes.footnote.create({}); + // if (dispatch && state.selection.from === state.selection.to) { + // let tr = state.tr; + // tr.replaceSelectionWith(newNode); // replace insertion with a footnote. + // dispatch(tr.setSelection(new NodeSelection( // select the footnote node to open its display + // tr.doc.resolve( // get the location of the footnote node by subtracting the nodesize of the footnote from the current insertion point anchor (which will be immediately after the footnote node) + // tr.selection.anchor - tr.selection.$anchor.nodeBefore!.nodeSize)))); + // return true; + // } + // return false; + // }); + + + const cmd = chainCommands(exitCode, (state, dispatch) => { + if (dispatch) { + dispatch(state.tr.replaceSelectionWith(schema.nodes.hard_break.create()).scrollIntoView()); + return true; + } + return false; + }); + bind("Mod-Enter", cmd); + bind("Shift-Enter", cmd); + mac && bind("Ctrl-Enter", cmd); + + + bind("Shift-Ctrl-0", setBlockType(schema.nodes.paragraph)); + + bind("Shift-Ctrl-\\", setBlockType(schema.nodes.code_block)); + + for (let i = 1; i <= 6; i++) { + bind("Shift-Ctrl-" + i, setBlockType(schema.nodes.heading, { level: i })); + } + + const hr = schema.nodes.horizontal_rule; + bind("Mod-_", (state: EditorState, dispatch: (tx: Transaction) => void) => { + dispatch(state.tr.replaceSelectionWith(hr.create()).scrollIntoView()); + return true; + }); + + bind("Tab", (state: EditorState, dispatch: (tx: Transaction) => void) => { + const ref = state.selection; + const range = ref.$from.blockRange(ref.$to); + const marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks()); + if (!sinkListItem(schema.nodes.list_item)(state, (tx2: Transaction) => { + const tx3 = updateBullets(tx2, schema); + marks && tx3.ensureMarks([...marks]); + marks && tx3.setStoredMarks([...marks]); + dispatch(tx3); + })) { // couldn't sink into an existing list, so wrap in a new one + const newstate = state.applyTransaction(state.tr.setSelection(TextSelection.create(state.doc, range!.start, range!.end))); + if (!wrapInList(schema.nodes.ordered_list)(newstate.state, (tx2: Transaction) => { + const tx3 = updateBullets(tx2, schema); + // when promoting to a list, assume list will format things so don't copy the stored marks. + marks && tx3.ensureMarks([...marks]); + marks && tx3.setStoredMarks([...marks]); + dispatch(tx3); + })) { + console.log("bullet promote fail"); + } + } + }); + + bind("Shift-Tab", (state: EditorState, dispatch: (tx: Transaction) => void) => { + const marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks()); + + if (!liftListItem(schema.nodes.list_item)(state.tr, (tx2: Transaction) => { + const tx3 = updateBullets(tx2, schema); + marks && tx3.ensureMarks([...marks]); + marks && tx3.setStoredMarks([...marks]); + dispatch(tx3); + })) { + console.log("bullet demote fail"); + } + }); + bind("Ctrl-Enter", (state: EditorState, dispatch: (tx: Transaction) => void) => { + const layoutDoc = props.Document; + const originalDoc = layoutDoc.rootDocument || layoutDoc; + if (originalDoc instanceof Doc) { + const layoutKey = StrCast(originalDoc.layoutKey); + const newDoc = Docs.Create.TextDocument("", { + layout: Cast(originalDoc.layout, Doc, null) || FormattedTextBox.DefaultLayout, + layoutKey, + _singleLine: BoolCast(originalDoc._singleLine), + x: NumCast(originalDoc.x), y: NumCast(originalDoc.y) + NumCast(originalDoc._height) + 10, _width: NumCast(layoutDoc._width), _height: NumCast(layoutDoc._height) + }); + if (layoutKey !== "layout" && originalDoc[layoutKey] instanceof Doc) { + newDoc[layoutKey] = originalDoc[layoutKey]; + } + FormattedTextBox.SelectOnLoad = newDoc[Id]; + props.addDocument(newDoc); + } + }); + + const splitMetadata = (marks: any, tx: Transaction) => { + marks && tx.ensureMarks(marks.filter((val: any) => val.type !== schema.marks.metadata && val.type !== schema.marks.metadataKey && val.type !== schema.marks.metadataVal)); + marks && tx.setStoredMarks(marks.filter((val: any) => val.type !== schema.marks.metadata && val.type !== schema.marks.metadataKey && val.type !== schema.marks.metadataVal)); + return tx; + }; + const addTextOnRight = (force: boolean) => { + const layoutDoc = props.Document; + const originalDoc = layoutDoc.rootDocument || layoutDoc; + if (force || props.Document._singleLine) { + const layoutKey = StrCast(originalDoc.layoutKey); + const newDoc = Docs.Create.TextDocument("", { + layout: Cast(originalDoc.layout, Doc, null) || FormattedTextBox.DefaultLayout, + layoutKey, + _singleLine: BoolCast(originalDoc._singleLine), + x: NumCast(originalDoc.x) + NumCast(originalDoc._width) + 10, y: NumCast(originalDoc.y), _width: NumCast(layoutDoc._width), _height: NumCast(layoutDoc._height) + }); + if (layoutKey !== "layout" && originalDoc[layoutKey] instanceof Doc) { + newDoc[layoutKey] = originalDoc[layoutKey]; + } + FormattedTextBox.SelectOnLoad = newDoc[Id]; + props.addDocument(newDoc); + return true; + } + return false; + }; + bind("Alt-Enter", (state: EditorState, dispatch: (tx: Transaction>) => void) => { + return addTextOnRight(true); + }); + bind("Enter", (state: EditorState, dispatch: (tx: Transaction>) => void) => { + if (addTextOnRight(false)) return true; + const marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks()); + if (!splitListItem(schema.nodes.list_item)(state, dispatch)) { + if (!splitBlockKeepMarks(state, (tx3: Transaction) => { + splitMetadata(marks, tx3); + if (!liftListItem(schema.nodes.list_item)(tx3, dispatch as ((tx: Transaction>) => void))) { + dispatch(tx3); + } + })) { + return false; + } + } + return true; + }); + bind("Space", (state: EditorState, dispatch: (tx: Transaction) => void) => { + const marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks()); + dispatch(splitMetadata(marks, state.tr)); + return false; + }); + bind(":", (state: EditorState, dispatch: (tx: Transaction) => void) => { + const range = state.selection.$from.blockRange(state.selection.$to, (node: any) => { + return !node.marks || !node.marks.find((m: any) => m.type === schema.marks.metadata); + }); + const path = (state.doc.resolve(state.selection.from - 1) as any).path; + const spaceSeparator = path[path.length - 3].childCount > 1 ? 0 : -1; + const anchor = range!.end - path[path.length - 3].lastChild.nodeSize + spaceSeparator; + if (anchor >= 0) { + const textsel = TextSelection.create(state.doc, anchor, range!.end); + const text = range ? state.doc.textBetween(textsel.from, textsel.to) : ""; + let whitespace = text.length - 1; + for (; whitespace >= 0 && text[whitespace] !== " "; whitespace--) { } + if (text.endsWith(":")) { + dispatch(state.tr.addMark(textsel.from + whitespace + 1, textsel.to, schema.marks.metadata.create() as any). + addMark(textsel.from + whitespace + 1, textsel.to - 2, schema.marks.metadataKey.create() as any)); + } + } + return false; + }); + + + return keys; +} diff --git a/src/client/views/nodes/formattedText/RichTextMenu.scss b/src/client/views/nodes/formattedText/RichTextMenu.scss new file mode 100644 index 000000000..36da769c3 --- /dev/null +++ b/src/client/views/nodes/formattedText/RichTextMenu.scss @@ -0,0 +1,121 @@ +@import "../../globalCssVariables"; + +.button-dropdown-wrapper { + position: relative; + + .dropdown-button { + width: 15px; + padding-left: 5px; + padding-right: 5px; + } + + .dropdown-button-combined { + width: 50px; + display: flex; + justify-content: space-between; + + svg:nth-child(2) { + margin-top: 2px; + } + } + + .dropdown { + position: absolute; + top: 35px; + left: 0; + background-color: #323232; + color: $light-color-secondary; + border: 1px solid #4d4d4d; + border-radius: 0 6px 6px 6px; + box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.25); + min-width: 150px; + padding: 5px; + font-size: 12px; + z-index: 10001; + + button { + background-color: #323232; + border: 1px solid black; + border-radius: 1px; + padding: 6px; + margin: 5px 0; + font-size: 10px; + + &:hover { + background-color: black; + } + + &:last-child { + margin-bottom: 0; + } + } + } + + input { + color: black; + } +} + +.link-menu { + .divider { + background-color: white; + height: 1px; + width: 100%; + } +} + +.color-preview-button { + .color-preview { + width: 100%; + height: 3px; + margin-top: 3px; + } +} + +.color-wrapper { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + + button.color-button { + width: 20px; + height: 20px; + border-radius: 15px !important; + margin: 3px; + border: 2px solid transparent !important; + padding: 3px; + + &.active { + border: 2px solid white !important; + } + } +} + +select { + background-color: #323232; + color: white; + border: 1px solid black; + // border-top: none; + // border-bottom: none; + font-size: 12px; + height: 100%; + margin-right: 3px; + + &:focus, + &:hover { + background-color: black; + } + + &::-ms-expand { + color: white; + } +} + +.row-2 { + display: flex; + justify-content: space-between; + + >div { + display: flex; + } +} \ No newline at end of file diff --git a/src/client/views/nodes/formattedText/RichTextMenu.tsx b/src/client/views/nodes/formattedText/RichTextMenu.tsx new file mode 100644 index 000000000..cc04e0d6d --- /dev/null +++ b/src/client/views/nodes/formattedText/RichTextMenu.tsx @@ -0,0 +1,875 @@ +import React = require("react"); +import AntimodeMenu from "../../AntimodeMenu"; +import { observable, action, } from "mobx"; +import { observer } from "mobx-react"; +import { Mark, MarkType, Node as ProsNode, NodeType, ResolvedPos, Schema } from "prosemirror-model"; +import { schema } from "./schema_rts"; +import { EditorView } from "prosemirror-view"; +import { EditorState, NodeSelection, TextSelection } from "prosemirror-state"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { IconProp, library } from '@fortawesome/fontawesome-svg-core'; +import { faBold, faItalic, faChevronLeft, faUnderline, faStrikethrough, faSubscript, faSuperscript, faIndent, faEyeDropper, faCaretDown, faPalette, faHighlighter, faLink, faPaintRoller, faSleigh } from "@fortawesome/free-solid-svg-icons"; +import { updateBullets } from "./ProsemirrorExampleTransfer"; +import { FieldViewProps } from "../FieldView"; +import { Cast, StrCast } from "../../../../new_fields/Types"; +import { FormattedTextBoxProps } from "./FormattedTextBox"; +import { unimplementedFunction, Utils } from "../../../../Utils"; +import { wrapInList } from "prosemirror-schema-list"; +import { PastelSchemaPalette, DarkPastelSchemaPalette } from '../../../../new_fields/SchemaHeaderField'; +import "./RichTextMenu.scss"; +import { DocServer } from "../../../DocServer"; +import { Doc } from "../../../../new_fields/Doc"; +import { SelectionManager } from "../../../util/SelectionManager"; +import { LinkManager } from "../../../util/LinkManager"; +const { toggleMark, setBlockType } = require("prosemirror-commands"); + +library.add(faBold, faItalic, faChevronLeft, faUnderline, faStrikethrough, faSuperscript, faSubscript, faIndent, faEyeDropper, faCaretDown, faPalette, faHighlighter, faLink, faPaintRoller); + +@observer +export default class RichTextMenu extends AntimodeMenu { + static Instance: RichTextMenu; + public overMenu: boolean = false; // kind of hacky way to prevent selects not being selectable + + private view?: EditorView; + public editorProps: FieldViewProps & FormattedTextBoxProps | undefined; + + public _brushMap: Map> = new Map(); + private fontSizeOptions: { mark: Mark | null, title: string, label: string, command: any, hidden?: boolean, style?: {} }[]; + private fontFamilyOptions: { mark: Mark | null, title: string, label: string, command: any, hidden?: boolean, style?: {} }[]; + private listTypeOptions: { node: NodeType | any | null, title: string, label: string, command: any, style?: {} }[]; + private fontColors: (string | undefined)[]; + private highlightColors: (string | undefined)[]; + + @observable private collapsed: boolean = false; + @observable private boldActive: boolean = false; + @observable private italicsActive: boolean = false; + @observable private underlineActive: boolean = false; + @observable private strikethroughActive: boolean = false; + @observable private subscriptActive: boolean = false; + @observable private superscriptActive: boolean = false; + + @observable private activeFontSize: string = ""; + @observable private activeFontFamily: string = ""; + @observable private activeListType: string = ""; + + @observable private brushIsEmpty: boolean = true; + @observable private brushMarks: Set = new Set(); + @observable private showBrushDropdown: boolean = false; + + @observable private activeFontColor: string = "black"; + @observable private showColorDropdown: boolean = false; + + @observable private activeHighlightColor: string = "transparent"; + @observable private showHighlightDropdown: boolean = false; + + @observable private currentLink: string | undefined = ""; + @observable private showLinkDropdown: boolean = false; + + constructor(props: Readonly<{}>) { + super(props); + RichTextMenu.Instance = this; + this._canFade = false; + + this.fontSizeOptions = [ + { mark: schema.marks.pFontSize.create({ fontSize: 7 }), title: "Set font size", label: "7pt", command: this.changeFontSize }, + { mark: schema.marks.pFontSize.create({ fontSize: 8 }), title: "Set font size", label: "8pt", command: this.changeFontSize }, + { mark: schema.marks.pFontSize.create({ fontSize: 9 }), title: "Set font size", label: "9pt", command: this.changeFontSize }, + { mark: schema.marks.pFontSize.create({ fontSize: 10 }), title: "Set font size", label: "10pt", command: this.changeFontSize }, + { mark: schema.marks.pFontSize.create({ fontSize: 12 }), title: "Set font size", label: "12pt", command: this.changeFontSize }, + { mark: schema.marks.pFontSize.create({ fontSize: 14 }), title: "Set font size", label: "14pt", command: this.changeFontSize }, + { mark: schema.marks.pFontSize.create({ fontSize: 16 }), title: "Set font size", label: "16pt", command: this.changeFontSize }, + { mark: schema.marks.pFontSize.create({ fontSize: 18 }), title: "Set font size", label: "18pt", command: this.changeFontSize }, + { mark: schema.marks.pFontSize.create({ fontSize: 20 }), title: "Set font size", label: "20pt", command: this.changeFontSize }, + { mark: schema.marks.pFontSize.create({ fontSize: 24 }), title: "Set font size", label: "24pt", command: this.changeFontSize }, + { mark: schema.marks.pFontSize.create({ fontSize: 32 }), title: "Set font size", label: "32pt", command: this.changeFontSize }, + { mark: schema.marks.pFontSize.create({ fontSize: 48 }), title: "Set font size", label: "48pt", command: this.changeFontSize }, + { mark: schema.marks.pFontSize.create({ fontSize: 72 }), title: "Set font size", label: "72pt", command: this.changeFontSize }, + { mark: null, title: "", label: "various", command: unimplementedFunction, hidden: true }, + { mark: null, title: "", label: "13pt", command: unimplementedFunction, hidden: true }, // this is here because the default size is 13, but there is no actual 13pt option + ]; + + this.fontFamilyOptions = [ + { mark: schema.marks.pFontFamily.create({ family: "Times New Roman" }), title: "Set font family", label: "Times New Roman", command: this.changeFontFamily, style: { fontFamily: "Times New Roman" } }, + { mark: schema.marks.pFontFamily.create({ family: "Arial" }), title: "Set font family", label: "Arial", command: this.changeFontFamily, style: { fontFamily: "Arial" } }, + { mark: schema.marks.pFontFamily.create({ family: "Georgia" }), title: "Set font family", label: "Georgia", command: this.changeFontFamily, style: { fontFamily: "Georgia" } }, + { mark: schema.marks.pFontFamily.create({ family: "Comic Sans MS" }), title: "Set font family", label: "Comic Sans MS", command: this.changeFontFamily, style: { fontFamily: "Comic Sans MS" } }, + { mark: schema.marks.pFontFamily.create({ family: "Tahoma" }), title: "Set font family", label: "Tahoma", command: this.changeFontFamily, style: { fontFamily: "Tahoma" } }, + { mark: schema.marks.pFontFamily.create({ family: "Impact" }), title: "Set font family", label: "Impact", command: this.changeFontFamily, style: { fontFamily: "Impact" } }, + { mark: schema.marks.pFontFamily.create({ family: "Crimson Text" }), title: "Set font family", label: "Crimson Text", command: this.changeFontFamily, style: { fontFamily: "Crimson Text" } }, + { mark: null, title: "", label: "various", command: unimplementedFunction, hidden: true }, + // { mark: null, title: "", label: "default", command: unimplementedFunction, hidden: true }, + ]; + + this.listTypeOptions = [ + { node: schema.nodes.ordered_list.create({ mapStyle: "bullet" }), title: "Set list type", label: ":", command: this.changeListType }, + { node: schema.nodes.ordered_list.create({ mapStyle: "decimal" }), title: "Set list type", label: "1.1", command: this.changeListType }, + { node: schema.nodes.ordered_list.create({ mapStyle: "multi" }), title: "Set list type", label: "1.A", command: this.changeListType }, + { node: undefined, title: "Set list type", label: "Remove", command: this.changeListType }, + ]; + + this.fontColors = [ + DarkPastelSchemaPalette.get("pink2"), + DarkPastelSchemaPalette.get("purple4"), + DarkPastelSchemaPalette.get("bluegreen1"), + DarkPastelSchemaPalette.get("yellow4"), + DarkPastelSchemaPalette.get("red2"), + DarkPastelSchemaPalette.get("bluegreen7"), + DarkPastelSchemaPalette.get("bluegreen5"), + DarkPastelSchemaPalette.get("orange1"), + "#757472", + "#000" + ]; + + this.highlightColors = [ + PastelSchemaPalette.get("pink2"), + PastelSchemaPalette.get("purple4"), + PastelSchemaPalette.get("bluegreen1"), + PastelSchemaPalette.get("yellow4"), + PastelSchemaPalette.get("red2"), + PastelSchemaPalette.get("bluegreen7"), + PastelSchemaPalette.get("bluegreen5"), + PastelSchemaPalette.get("orange1"), + "white", + "transparent" + ]; + } + + @action + changeView(view: EditorView) { + this.view = view; + } + + update(view: EditorView, lastState: EditorState | undefined) { + this.updateFromDash(view, lastState, this.editorProps); + } + + + public MakeLinkToSelection = (linkDocId: string, title: string, location: string, targetDocId: string): string => { + if (this.view) { + const link = this.view.state.schema.marks.link.create({ href: Utils.prepend("/doc/" + linkDocId), title: title, location: location, linkId: linkDocId, targetId: targetDocId }); + this.view.dispatch(this.view.state.tr.removeMark(this.view.state.selection.from, this.view.state.selection.to, this.view.state.schema.marks.link). + addMark(this.view.state.selection.from, this.view.state.selection.to, link)); + return this.view.state.selection.$from.nodeAfter?.text || ""; + } + return ""; + } + + @action + public async updateFromDash(view: EditorView, lastState: EditorState | undefined, props: any) { + if (!view) { + console.log("no editor? why?"); + return; + } + this.view = view; + const state = view.state; + props && (this.editorProps = props); + + // Don't do anything if the document/selection didn't change + if (lastState && lastState.doc.eq(state.doc) && lastState.selection.eq(state.selection)) return; + + // update active marks + const activeMarks = this.getActiveMarksOnSelection(); + this.setActiveMarkButtons(activeMarks); + + // update active font family and size + const active = this.getActiveFontStylesOnSelection(); + const activeFamilies = active && active.get("families"); + const activeSizes = active && active.get("sizes"); + + this.activeFontFamily = !activeFamilies || activeFamilies.length === 0 ? "Arial" : activeFamilies.length === 1 ? String(activeFamilies[0]) : "various"; + this.activeFontSize = !activeSizes || activeSizes.length === 0 ? "13pt" : activeSizes.length === 1 ? String(activeSizes[0]) + "pt" : "various"; + + // update link in current selection + const targetTitle = await this.getTextLinkTargetTitle(); + this.setCurrentLink(targetTitle); + } + + setMark = (mark: Mark, state: EditorState, dispatch: any) => { + if (mark) { + const node = (state.selection as NodeSelection).node; + if (node?.type === schema.nodes.ordered_list) { + let attrs = node.attrs; + if (mark.type === schema.marks.pFontFamily) attrs = { ...attrs, setFontFamily: mark.attrs.family }; + if (mark.type === schema.marks.pFontSize) attrs = { ...attrs, setFontSize: mark.attrs.fontSize }; + if (mark.type === schema.marks.pFontColor) attrs = { ...attrs, setFontColor: mark.attrs.color }; + const tr = updateBullets(state.tr.setNodeMarkup(state.selection.from, node.type, attrs), state.schema); + dispatch(tr.setSelection(new NodeSelection(tr.doc.resolve(state.selection.from)))); + } else { + toggleMark(mark.type, mark.attrs)(state, (tx: any) => { + const { from, $from, to, empty } = tx.selection; + if (!tx.doc.rangeHasMark(from, to, mark.type)) { + toggleMark(mark.type, mark.attrs)({ tr: tx, doc: tx.doc, selection: tx.selection, storedMarks: tx.storedMarks }, dispatch); + } else dispatch(tx); + }); + } + } + } + + // finds font sizes and families in selection + getActiveFontStylesOnSelection() { + if (!this.view) return; + + const activeFamilies: string[] = []; + const activeSizes: string[] = []; + const state = this.view.state; + const pos = this.view.state.selection.$from; + const ref_node = this.reference_node(pos); + if (ref_node && ref_node !== this.view.state.doc && ref_node.isText) { + ref_node.marks.forEach(m => { + m.type === state.schema.marks.pFontFamily && activeFamilies.push(m.attrs.family); + m.type === state.schema.marks.pFontSize && activeSizes.push(String(m.attrs.fontSize) + "pt"); + }); + } + + const styles = new Map(); + styles.set("families", activeFamilies); + styles.set("sizes", activeSizes); + return styles; + } + + getMarksInSelection(state: EditorState) { + const found = new Set(); + const { from, to } = state.selection as TextSelection; + state.doc.nodesBetween(from, to, (node) => node.marks.forEach(m => found.add(m))); + return found; + } + + //finds all active marks on selection in given group + getActiveMarksOnSelection() { + if (!this.view) return; + + const markGroup = [schema.marks.strong, schema.marks.em, schema.marks.underline, schema.marks.strikethrough, schema.marks.superscript, schema.marks.subscript]; + if (this.view.state.storedMarks) return this.view.state.storedMarks.map(mark => mark.type); + //current selection + const { empty, ranges, $to } = this.view.state.selection as TextSelection; + const state = this.view.state; + let activeMarks: MarkType[] = []; + if (!empty) { + activeMarks = markGroup.filter(mark => { + const has = false; + for (let i = 0; !has && i < ranges.length; i++) { + return state.doc.rangeHasMark(ranges[i].$from.pos, ranges[i].$to.pos, mark); + } + return false; + }); + } + else { + const pos = this.view.state.selection.$from; + const ref_node: ProsNode | null = this.reference_node(pos); + if (ref_node !== null && ref_node !== this.view.state.doc) { + if (ref_node.isText) { + } + else { + return []; + } + activeMarks = markGroup.filter(mark_type => { + if (mark_type === state.schema.marks.pFontSize) { + return ref_node.marks.some(m => m.type.name === state.schema.marks.pFontSize.name); + } + const mark = state.schema.mark(mark_type); + return ref_node.marks.includes(mark); + }); + } + } + return activeMarks; + } + + destroy() { + this.fadeOut(true); + } + + @action + setActiveMarkButtons(activeMarks: MarkType[] | undefined) { + if (!activeMarks) return; + + this.boldActive = false; + this.italicsActive = false; + this.underlineActive = false; + this.strikethroughActive = false; + this.subscriptActive = false; + this.superscriptActive = false; + + activeMarks.forEach(mark => { + switch (mark.name) { + case "strong": this.boldActive = true; break; + case "em": this.italicsActive = true; break; + case "underline": this.underlineActive = true; break; + case "strikethrough": this.strikethroughActive = true; break; + case "subscript": this.subscriptActive = true; break; + case "superscript": this.superscriptActive = true; break; + } + }); + } + + createButton(faIcon: string, title: string, isActive: boolean = false, command?: any, onclick?: any) { + const self = this; + function onClick(e: React.PointerEvent) { + e.preventDefault(); + e.stopPropagation(); + self.view && self.view.focus(); + self.view && command && command(self.view.state, self.view.dispatch, self.view); + self.view && onclick && onclick(self.view.state, self.view.dispatch, self.view); + self.setActiveMarkButtons(self.getActiveMarksOnSelection()); + } + + return ( + + ); + } + + createMarksDropdown(activeOption: string, options: { mark: Mark | null, title: string, label: string, command: (mark: Mark, view: EditorView) => void, hidden?: boolean, style?: {} }[], key: string): JSX.Element { + const items = options.map(({ title, label, hidden, style }) => { + if (hidden) { + return label === activeOption ? + : + ; + } + return label === activeOption ? + : + ; + }); + + const self = this; + function onChange(e: React.ChangeEvent) { + e.stopPropagation(); + e.preventDefault(); + options.forEach(({ label, mark, command }) => { + if (e.target.value === label) { + self.view && mark && command(mark, self.view); + } + }); + } + return ; + } + + createNodesDropdown(activeOption: string, options: { node: NodeType | any | null, title: string, label: string, command: (node: NodeType | any) => void, hidden?: boolean, style?: {} }[], key: string): JSX.Element { + const items = options.map(({ title, label, hidden, style }) => { + if (hidden) { + return label === activeOption ? + : + ; + } + return label === activeOption ? + : + ; + }); + + const self = this; + function onChange(val: string) { + options.forEach(({ label, node, command }) => { + if (val === label) { + self.view && node && command(node); + } + }); + } + return ; + } + + changeFontSize = (mark: Mark, view: EditorView) => { + this.setMark(view.state.schema.marks.pFontSize.create({ fontSize: mark.attrs.fontSize }), view.state, view.dispatch); + } + + changeFontFamily = (mark: Mark, view: EditorView) => { + this.setMark(view.state.schema.marks.pFontFamily.create({ family: mark.attrs.family }), view.state, view.dispatch); + } + + // TODO: remove doesn't work + //remove all node type and apply the passed-in one to the selected text + changeListType = (nodeType: NodeType | undefined) => { + if (!this.view) return; + + if (nodeType === schema.nodes.bullet_list) { + wrapInList(nodeType)(this.view.state, this.view.dispatch); + } else { + const marks = this.view.state.storedMarks || (this.view.state.selection.$to.parentOffset && this.view.state.selection.$from.marks()); + if (!wrapInList(schema.nodes.ordered_list)(this.view.state, (tx2: any) => { + const tx3 = updateBullets(tx2, schema, nodeType && (nodeType as any).attrs.mapStyle); + marks && tx3.ensureMarks([...marks]); + marks && tx3.setStoredMarks([...marks]); + + this.view!.dispatch(tx2); + })) { + const tx2 = this.view.state.tr; + const tx3 = updateBullets(tx2, schema, nodeType && (nodeType as any).attrs.mapStyle); + marks && tx3.ensureMarks([...marks]); + marks && tx3.setStoredMarks([...marks]); + + this.view.dispatch(tx3); + } + } + } + + insertSummarizer(state: EditorState, dispatch: any) { + if (state.selection.empty) return false; + const mark = state.schema.marks.summarize.create(); + const tr = state.tr; + tr.addMark(state.selection.from, state.selection.to, mark); + const content = tr.selection.content(); + const newNode = state.schema.nodes.summary.create({ visibility: false, text: content, textslice: content.toJSON() }); + dispatch && dispatch(tr.replaceSelectionWith(newNode).removeMark(tr.selection.from - 1, tr.selection.from, mark)); + return true; + } + + @action toggleBrushDropdown() { this.showBrushDropdown = !this.showBrushDropdown; } + + // todo: add brushes to brushMap to save with a style name + onBrushNameKeyPress = (e: React.KeyboardEvent) => { + if (e.key === "Enter") { + RichTextMenu.Instance.brushMarks && RichTextMenu.Instance._brushMap.set(this._brushNameRef.current!.value, RichTextMenu.Instance.brushMarks); + this._brushNameRef.current!.style.background = "lightGray"; + } + } + _brushNameRef = React.createRef(); + + createBrushButton() { + const self = this; + function onBrushClick(e: React.PointerEvent) { + e.preventDefault(); + e.stopPropagation(); + self.view && self.view.focus(); + self.view && self.fillBrush(self.view.state, self.view.dispatch); + } + + let label = "Stored marks: "; + if (this.brushMarks && this.brushMarks.size > 0) { + this.brushMarks.forEach((mark: Mark) => { + const markType = mark.type; + label += markType.name; + label += ", "; + }); + label = label.substring(0, label.length - 2); + } else { + label = "No marks are currently stored"; + } + + const button = + ; + + const dropdownContent = +

+

{label}

+ + +
; + + return ( + + ); + } + + @action + clearBrush() { + RichTextMenu.Instance.brushIsEmpty = true; + RichTextMenu.Instance.brushMarks = new Set(); + } + + @action + fillBrush(state: EditorState, dispatch: any) { + if (!this.view) return; + + if (this.brushIsEmpty) { + const selected_marks = this.getMarksInSelection(this.view.state); + if (selected_marks.size >= 0) { + this.brushMarks = selected_marks; + this.brushIsEmpty = !this.brushIsEmpty; + } + } + else { + const { from, to, $from } = this.view.state.selection; + if (!this.view.state.selection.empty && $from && $from.nodeAfter) { + if (this.brushMarks && to - from > 0) { + this.view.dispatch(this.view.state.tr.removeMark(from, to)); + Array.from(this.brushMarks).filter(m => m.type !== schema.marks.user_mark).forEach((mark: Mark) => { + this.setMark(mark, this.view!.state, this.view!.dispatch); + }); + } + } + else { + this.brushIsEmpty = !this.brushIsEmpty; + } + } + } + + @action toggleColorDropdown() { this.showColorDropdown = !this.showColorDropdown; } + @action setActiveColor(color: string) { this.activeFontColor = color; } + + createColorButton() { + const self = this; + function onColorClick(e: React.PointerEvent) { + e.preventDefault(); + e.stopPropagation(); + self.view && self.view.focus(); + self.view && self.insertColor(self.activeFontColor, self.view.state, self.view.dispatch); + } + function changeColor(e: React.PointerEvent, color: string) { + e.preventDefault(); + e.stopPropagation(); + self.view && self.view.focus(); + self.setActiveColor(color); + self.view && self.insertColor(self.activeFontColor, self.view.state, self.view.dispatch); + } + + const button = + ; + + const dropdownContent = +
+

Change font color:

+
+ {this.fontColors.map(color => { + if (color) { + return this.activeFontColor === color ? + : + ; + } + })} +
+
; + + return ( + + ); + } + + public insertColor(color: String, state: EditorState, dispatch: any) { + const colorMark = state.schema.mark(state.schema.marks.pFontColor, { color: color }); + if (state.selection.empty) { + dispatch(state.tr.addStoredMark(colorMark)); + return false; + } + this.setMark(colorMark, state, dispatch); + } + + @action toggleHighlightDropdown() { this.showHighlightDropdown = !this.showHighlightDropdown; } + @action setActiveHighlight(color: string) { this.activeHighlightColor = color; } + + createHighlighterButton() { + const self = this; + function onHighlightClick(e: React.PointerEvent) { + e.preventDefault(); + e.stopPropagation(); + self.view && self.view.focus(); + self.view && self.insertHighlight(self.activeHighlightColor, self.view.state, self.view.dispatch); + } + function changeHighlight(e: React.PointerEvent, color: string) { + e.preventDefault(); + e.stopPropagation(); + self.view && self.view.focus(); + self.setActiveHighlight(color); + self.view && self.insertHighlight(self.activeHighlightColor, self.view.state, self.view.dispatch); + } + + const button = + ; + + const dropdownContent = +
+

Change highlight color:

+
+ {this.highlightColors.map(color => { + if (color) { + return this.activeHighlightColor === color ? + : + ; + } + })} +
+
; + + return ( + + ); + } + + insertHighlight(color: String, state: EditorState, dispatch: any) { + if (state.selection.empty) return false; + toggleMark(state.schema.marks.marker, { highlight: color })(state, dispatch); + } + + @action toggleLinkDropdown() { this.showLinkDropdown = !this.showLinkDropdown; } + @action setCurrentLink(link: string) { this.currentLink = link; } + + createLinkButton() { + const self = this; + + function onLinkChange(e: React.ChangeEvent) { + self.setCurrentLink(e.target.value); + } + + const link = this.currentLink ? this.currentLink : ""; + + const button = ; + + const dropdownContent = +
+

Linked to:

+ + +
+ +
; + + return ( + + ); + } + + async getTextLinkTargetTitle() { + if (!this.view) return; + + const node = this.view.state.selection.$from.nodeAfter; + const link = node && node.marks.find(m => m.type.name === "link"); + if (link) { + const href = link.attrs.href; + if (href) { + if (href.indexOf(Utils.prepend("/doc/")) === 0) { + const linkclicked = href.replace(Utils.prepend("/doc/"), "").split("?")[0]; + if (linkclicked) { + const linkDoc = await DocServer.GetRefField(linkclicked); + if (linkDoc instanceof Doc) { + const anchor1 = await Cast(linkDoc.anchor1, Doc); + const anchor2 = await Cast(linkDoc.anchor2, Doc); + const currentDoc = SelectionManager.SelectedDocuments().length && SelectionManager.SelectedDocuments()[0].props.Document; + if (currentDoc && anchor1 && anchor2) { + if (Doc.AreProtosEqual(currentDoc, anchor1)) { + return StrCast(anchor2.title); + } + if (Doc.AreProtosEqual(currentDoc, anchor2)) { + return StrCast(anchor1.title); + } + } + } + } + } else { + return href; + } + } else { + return link.attrs.title; + } + } + } + + // TODO: should check for valid URL + makeLinkToURL = (target: String, lcoation: string) => { + if (!this.view) return; + + let node = this.view.state.selection.$from.nodeAfter; + let link = this.view.state.schema.mark(this.view.state.schema.marks.link, { href: target, location: location }); + this.view.dispatch(this.view.state.tr.removeMark(this.view.state.selection.from, this.view.state.selection.to, this.view.state.schema.marks.link)); + this.view.dispatch(this.view.state.tr.addMark(this.view.state.selection.from, this.view.state.selection.to, link)); + node = this.view.state.selection.$from.nodeAfter; + link = node && node.marks.find(m => m.type.name === "link"); + } + + deleteLink = () => { + if (!this.view) return; + + const node = this.view.state.selection.$from.nodeAfter; + const link = node && node.marks.find(m => m.type === this.view!.state.schema.marks.link); + const href = link!.attrs.href; + if (href) { + if (href.indexOf(Utils.prepend("/doc/")) === 0) { + const linkclicked = href.replace(Utils.prepend("/doc/"), "").split("?")[0]; + if (linkclicked) { + DocServer.GetRefField(linkclicked).then(async linkDoc => { + if (linkDoc instanceof Doc) { + LinkManager.Instance.deleteLink(linkDoc); + this.view!.dispatch(this.view!.state.tr.removeMark(this.view!.state.selection.from, this.view!.state.selection.to, this.view!.state.schema.marks.link)); + } + }); + } + } else { + if (node) { + const { tr, schema, selection } = this.view.state; + const extension = this.linkExtend(selection.$anchor, href); + this.view.dispatch(tr.removeMark(extension.from, extension.to, schema.marks.link)); + } + } + } + } + + linkExtend($start: ResolvedPos, href: string) { + const mark = this.view!.state.schema.marks.link; + + let startIndex = $start.index(); + let endIndex = $start.indexAfter(); + + while (startIndex > 0 && $start.parent.child(startIndex - 1).marks.filter(m => m.type === mark && m.attrs.href === href).length) startIndex--; + while (endIndex < $start.parent.childCount && $start.parent.child(endIndex).marks.filter(m => m.type === mark && m.attrs.href === href).length) endIndex++; + + let startPos = $start.start(); + let endPos = startPos; + for (let i = 0; i < endIndex; i++) { + const size = $start.parent.child(i).nodeSize; + if (i < startIndex) startPos += size; + endPos += size; + } + return { from: startPos, to: endPos }; + } + + reference_node(pos: ResolvedPos): ProsNode | null { + if (!this.view) return null; + + let ref_node: ProsNode = this.view.state.doc; + if (pos.nodeBefore !== null && pos.nodeBefore !== undefined) { + ref_node = pos.nodeBefore; + } + else if (pos.nodeAfter !== null && pos.nodeAfter !== undefined) { + ref_node = pos.nodeAfter; + } + else if (pos.pos > 0) { + let skip = false; + for (let i: number = pos.pos - 1; i > 0; i--) { + this.view.state.doc.nodesBetween(i, pos.pos, (node: ProsNode) => { + if (node.isLeaf && !skip) { + ref_node = node; + skip = true; + } + + }); + } + } + if (!ref_node.isLeaf && ref_node.childCount > 0) { + ref_node = ref_node.child(0); + } + return ref_node; + } + + @action onPointerEnter(e: React.PointerEvent) { RichTextMenu.Instance.overMenu = true; } + @action onPointerLeave(e: React.PointerEvent) { RichTextMenu.Instance.overMenu = false; } + + @action + toggleMenuPin = (e: React.MouseEvent) => { + this.Pinned = !this.Pinned; + if (!this.Pinned) { + this.fadeOut(true); + } + } + + @action + protected toggleCollapse = (e: React.MouseEvent) => { + this.collapsed = !this.collapsed; + setTimeout(() => { + const x = Math.min(this._left, window.innerWidth - RichTextMenu.Instance.width); + RichTextMenu.Instance.jumpTo(x, this._top); + }, 0); + } + + render() { + + const row1 =
{[ + this.createButton("bold", "Bold", this.boldActive, toggleMark(schema.marks.strong)), + this.createButton("italic", "Italic", this.italicsActive, toggleMark(schema.marks.em)), + this.createButton("underline", "Underline", this.underlineActive, toggleMark(schema.marks.underline)), + this.createButton("strikethrough", "Strikethrough", this.strikethroughActive, toggleMark(schema.marks.strikethrough)), + this.createButton("superscript", "Superscript", this.superscriptActive, toggleMark(schema.marks.superscript)), + this.createButton("subscript", "Subscript", this.subscriptActive, toggleMark(schema.marks.subscript)), + this.createColorButton(), + this.createHighlighterButton(), + this.createLinkButton(), + this.createBrushButton(), + this.createButton("indent", "Summarize", undefined, this.insertSummarizer), + ]}
; + + const row2 =
+
+ {[this.createMarksDropdown(this.activeFontSize, this.fontSizeOptions, "font size"), + this.createMarksDropdown(this.activeFontFamily, this.fontFamilyOptions, "font family"), + this.createNodesDropdown(this.activeListType, this.listTypeOptions, "nodes")]} +
+
+
+ +
+ + {this.getDragger()} +
+
; + + return ( +
+ {this.getElementWithRows([row1, row2], 2, false)} +
+ ); + } +} + +interface ButtonDropdownProps { + view?: EditorView; + button: JSX.Element; + dropdownContent: JSX.Element; + openDropdownOnButton?: boolean; +} + +@observer +class ButtonDropdown extends React.Component { + + @observable private showDropdown: boolean = false; + private ref: HTMLDivElement | null = null; + + componentDidMount() { + document.addEventListener("pointerdown", this.onBlur); + } + + componentWillUnmount() { + document.removeEventListener("pointerdown", this.onBlur); + } + + @action + setShowDropdown(show: boolean) { + this.showDropdown = show; + } + @action + toggleDropdown() { + this.showDropdown = !this.showDropdown; + } + + onDropdownClick = (e: React.PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + this.props.view && this.props.view.focus(); + this.toggleDropdown(); + } + + onBlur = (e: PointerEvent) => { + setTimeout(() => { + if (this.ref !== null && !this.ref.contains(e.target as Node)) { + this.setShowDropdown(false); + } + }, 0); + } + + render() { + return ( +
this.ref = node}> + {this.props.openDropdownOnButton ? + : + <> + {this.props.button} + + } + + {this.showDropdown ? this.props.dropdownContent : (null)} +
+ ); + } +} \ No newline at end of file diff --git a/src/client/views/nodes/formattedText/RichTextRules.ts b/src/client/views/nodes/formattedText/RichTextRules.ts new file mode 100644 index 000000000..335094e23 --- /dev/null +++ b/src/client/views/nodes/formattedText/RichTextRules.ts @@ -0,0 +1,319 @@ +import { ellipsis, emDash, InputRule, smartQuotes, textblockTypeInputRule } from "prosemirror-inputrules"; +import { NodeSelection, TextSelection } from "prosemirror-state"; +import { DataSym, Doc } from "../../../../new_fields/Doc"; +import { Id } from "../../../../new_fields/FieldSymbols"; +import { ComputedField } from "../../../../new_fields/ScriptField"; +import { Cast, NumCast } from "../../../../new_fields/Types"; +import { returnFalse, Utils } from "../../../../Utils"; +import { DocServer } from "../../../DocServer"; +import { Docs, DocUtils } from "../../../documents/Documents"; +import { FormattedTextBox } from "./FormattedTextBox"; +import { wrappingInputRule } from "./prosemirrorPatches"; +import RichTextMenu from "./RichTextMenu"; +import { schema } from "./schema_rts"; + +export class RichTextRules { + public Document: Doc; + public TextBox: FormattedTextBox; + public EnteringStyle: boolean = false; + constructor(doc: Doc, textBox: FormattedTextBox) { + this.Document = doc; + this.TextBox = textBox; + } + public inpRules = { + rules: [ + ...smartQuotes, + ellipsis, + emDash, + + // > blockquote + wrappingInputRule(/^\s*>\s$/, schema.nodes.blockquote), + + // 1. ordered list + wrappingInputRule( + /^1\.\s$/, + schema.nodes.ordered_list, + () => { + return ({ mapStyle: "decimal", bulletStyle: 1 }); + }, + (match: any, node: any) => { + return node.childCount + node.attrs.order === +match[1]; + }, + (type: any) => ({ type: type, attrs: { mapStyle: "decimal", bulletStyle: 1 } }) + ), + // a. alphabbetical list + wrappingInputRule( + /^a\.\s$/, + schema.nodes.ordered_list, + // match => { + () => { + return ({ mapStyle: "alpha", bulletStyle: 1 }); + // return ({ order: +match[1] }) + }, + (match: any, node: any) => { + return node.childCount + node.attrs.order === +match[1]; + }, + (type: any) => ({ type: type, attrs: { mapStyle: "alpha", bulletStyle: 1 } }) + ), + + // * bullet list + wrappingInputRule(/^\s*([-+*])\s$/, schema.nodes.bullet_list), + + // ``` code block + textblockTypeInputRule(/^```$/, schema.nodes.code_block), + + // create an inline view of a tag stored under the '#' field + new InputRule( + new RegExp(/#([a-zA-Z_\-]+[a-zA-Z_\-0-9]*)\s$/), + (state, match, start, end) => { + const tag = match[1]; + if (!tag) return state.tr; + this.Document[DataSym]["#"] = tag; + const fieldView = state.schema.nodes.dashField.create({ fieldKey: "#" }); + return state.tr.deleteRange(start, end).insert(start, fieldView); + }), + + // # heading + textblockTypeInputRule( + new RegExp(/^(#{1,6})\s$/), + schema.nodes.heading, + match => { + return ({ level: match[1].length }); + } + ), + + // set the font size using # + new InputRule( + new RegExp(/%([0-9]+)\s$/), + (state, match, start, end) => { + const size = Number(match[1]); + return state.tr.deleteRange(start, end).addStoredMark(schema.marks.pFontSize.create({ fontSize: size })); + }), + + // create a text display of a metadata field on this or another document, or create a hyperlink portal to another document [[ : ]] // [[:Doc]] => hyperlink [[fieldKey]] => show field [[fieldKey:Doc]] => show field of doc + new InputRule( + new RegExp(/\[\[([a-zA-Z_@\? \-0-9]*)(=[a-zA-Z_@\? \-0-9]*)?(:[a-zA-Z_@\? \-0-9]+)?\]\]$/), + (state, match, start, end) => { + const fieldKey = match[1]; + const docid = match[3]?.substring(1); + const value = match[2]?.substring(1); + if (!fieldKey) { + if (docid) { + DocServer.GetRefField(docid).then(docx => { + const target = ((docx instanceof Doc) && docx) || Docs.Create.FreeformDocument([], { title: docid, _width: 500, _height: 500, _LODdisable: true, }, docid); + DocUtils.Publish(target, docid, returnFalse, returnFalse); + DocUtils.MakeLink({ doc: this.Document }, { doc: target }, "portal to"); + }); + const link = state.schema.marks.link.create({ href: Utils.prepend("/doc/" + docid), location: "onRight", title: docid, targetId: docid }); + return state.tr.deleteRange(end - 1, end).deleteRange(start, start + 2).addMark(start, end - 3, link); + } + return state.tr; + } + if (value !== "" && value !== undefined) { + const num = value.match(/^[0-9.]/); + this.Document[DataSym][fieldKey] = value === "true" ? true : value === "false" ? false : (num ? Number(value) : value); + } + const fieldView = state.schema.nodes.dashField.create({ fieldKey, docid }); + return state.tr.deleteRange(start, end).insert(start, fieldView); + }), + // create an inline view of a document {{ : }} // {{:Doc}} => show default view of document {{}} => show layout for this doc {{ : Doc}} => show layout for another doc + new InputRule( + new RegExp(/\{\{([a-zA-Z_ \-0-9]*)(\([a-zA-Z0-9…._\-]*\))?(:[a-zA-Z_ \-0-9]+)?\}\}$/), + (state, match, start, end) => { + const fieldKey = match[1] || ""; + const fieldParam = match[2]?.replace("…", "...") || ""; + const docid = match[3]?.substring(1); + if (!fieldKey && !docid) return state.tr; + docid && DocServer.GetRefField(docid).then(docx => { + if (!(docx instanceof Doc && docx)) { + const docx = Docs.Create.FreeformDocument([], { title: docid, _width: 500, _height: 500, _LODdisable: true }, docid); + DocUtils.Publish(docx, docid, returnFalse, returnFalse); + } + }); + const node = (state.doc.resolve(start) as any).nodeAfter; + const dashDoc = schema.nodes.dashDoc.create({ width: 75, height: 75, title: "dashDoc", docid, fieldKey: fieldKey + fieldParam, float: "unset", alias: Utils.GenerateGuid() }); + const sm = state.storedMarks || undefined; + return node ? state.tr.replaceRangeWith(start, end, dashDoc).setStoredMarks([...node.marks, ...(sm ? sm : [])]) : state.tr; + }), + new InputRule( + new RegExp(/>>$/), + (state, match, start, end) => { + const textDoc = this.Document[DataSym]; + const numInlines = NumCast(textDoc.inlineTextCount); + textDoc.inlineTextCount = numInlines + 1; + const inlineFieldKey = "inline" + numInlines; // which field on the text document this annotation will write to + const inlineLayoutKey = "layout_" + inlineFieldKey; // the field holding the layout string that will render the inline annotation + const textDocInline = Docs.Create.TextDocument("", { layoutKey: inlineLayoutKey, _width: 75, _height: 35, annotationOn: textDoc, _autoHeight: true, _fontSize: 9, title: "inline comment" }); + textDocInline.title = inlineFieldKey; // give the annotation its own title + textDocInline.customTitle = true; // And make sure that it's 'custom' so that editing text doesn't change the title of the containing doc + textDocInline.isTemplateForField = inlineFieldKey; // this is needed in case the containing text doc is converted to a template at some point + textDocInline.proto = textDoc; // make the annotation inherit from the outer text doc so that it can resolve any nested field references, e.g., [[field]] + textDocInline._textContext = ComputedField.MakeFunction(`copyField(self.${inlineFieldKey})`); + textDoc[inlineLayoutKey] = FormattedTextBox.LayoutString(inlineFieldKey); // create a layout string for the layout key that will render the annotation text + textDoc[inlineFieldKey] = ""; // set a default value for the annotation + const node = (state.doc.resolve(start) as any).nodeAfter; + const newNode = schema.nodes.dashComment.create({ docid: textDocInline[Id] }); + const dashDoc = schema.nodes.dashDoc.create({ width: 75, height: 35, title: "dashDoc", docid: textDocInline[Id], float: "right" }); + const sm = state.storedMarks || undefined; + const replaced = node ? state.tr.insert(start, newNode).replaceRangeWith(start + 1, end + 1, dashDoc).insertText(" ", start + 2).setStoredMarks([...node.marks, ...(sm ? sm : [])]) : + state.tr; + return replaced; + }), + // stop using active style + new InputRule( + new RegExp(/%%$/), + (state, match, start, end) => { + const tr = state.tr.deleteRange(start, end); + const marks = state.tr.selection.$anchor.nodeBefore?.marks; + return marks ? Array.from(marks).filter(m => m !== state.schema.marks.user_mark).reduce((tr, m) => tr.removeStoredMark(m), tr) : tr; + }), + + // set the Todo user-tag on the current selection (assumes % was used to initiate an EnteringStyle mode) + new InputRule( + new RegExp(/[ti!x]$/), + (state, match, start, end) => { + if (state.selection.to === state.selection.from || !this.EnteringStyle) return null; + const tag = match[0] === "t" ? "todo" : match[0] === "i" ? "ignore" : match[0] === "x" ? "disagree" : match[0] === "!" ? "important" : "??"; + const node = (state.doc.resolve(start) as any).nodeAfter; + if (node?.marks.findIndex((m: any) => m.type === schema.marks.user_tag) !== -1) return state.tr.removeMark(start, end, schema.marks.user_tag); + return node ? state.tr.addMark(start, end, schema.marks.user_tag.create({ userid: Doc.CurrentUserEmail, tag: tag, modified: Math.round(Date.now() / 1000 / 60) })) : state.tr; + }), + + // set the First-line indent node type for the selection's paragraph (assumes % was used to initiate an EnteringStyle mode) + new InputRule( + new RegExp(/(%d|d)$/), + (state, match, start, end) => { + if (!match[0].startsWith("%") && !this.EnteringStyle) return null; + const pos = (state.doc.resolve(start) as any); + for (let depth = pos.path.length / 3 - 1; depth >= 0; depth--) { + const node = pos.node(depth); + if (node.type === schema.nodes.paragraph) { + const replaced = state.tr.setNodeMarkup(pos.pos - pos.parentOffset - 1, node.type, { ...node.attrs, indent: node.attrs.indent === 25 ? undefined : 25 }); + const result = replaced.setSelection(new TextSelection(replaced.doc.resolve(start))); + return match[0].startsWith("%") ? result.deleteRange(start, end) : result; + } + } + return null; + }), + + // set the Hanging indent node type for the current selection's paragraph (assumes % was used to initiate an EnteringStyle mode) + new InputRule( + new RegExp(/(%h|h)$/), + (state, match, start, end) => { + if (!match[0].startsWith("%") && !this.EnteringStyle) return null; + const pos = (state.doc.resolve(start) as any); + for (let depth = pos.path.length / 3 - 1; depth >= 0; depth--) { + const node = pos.node(depth); + if (node.type === schema.nodes.paragraph) { + const replaced = state.tr.setNodeMarkup(pos.pos - pos.parentOffset - 1, node.type, { ...node.attrs, indent: node.attrs.indent === -25 ? undefined : -25 }); + const result = replaced.setSelection(new TextSelection(replaced.doc.resolve(start))); + return match[0].startsWith("%") ? result.deleteRange(start, end) : result; + } + } + return null; + }), + // set the Quoted indent node type for the current selection's paragraph (assumes % was used to initiate an EnteringStyle mode) + new InputRule( + new RegExp(/(%q|q)$/), + (state, match, start, end) => { + if (!match[0].startsWith("%") && !this.EnteringStyle) return null; + const pos = (state.doc.resolve(start) as any); + if (state.selection instanceof NodeSelection && state.selection.node.type === schema.nodes.ordered_list) { + const node = state.selection.node; + return state.tr.setNodeMarkup(pos.pos, node.type, { ...node.attrs, indent: node.attrs.indent === 30 ? undefined : 30 }); + } + for (let depth = pos.path.length / 3 - 1; depth >= 0; depth--) { + const node = pos.node(depth); + if (node.type === schema.nodes.paragraph) { + const replaced = state.tr.setNodeMarkup(pos.pos - pos.parentOffset - 1, node.type, { ...node.attrs, inset: node.attrs.inset === 30 ? undefined : 30 }); + const result = replaced.setSelection(new TextSelection(replaced.doc.resolve(start))); + return match[0].startsWith("%") ? result.deleteRange(start, end) : result; + } + } + return null; + }), + + + // center justify text + new InputRule( + new RegExp(/%\^$/), + (state, match, start, end) => { + const node = (state.doc.resolve(start) as any).nodeAfter; + const sm = state.storedMarks || undefined; + const replaced = node ? state.tr.replaceRangeWith(start, end, schema.nodes.paragraph.create({ align: "center" })).setStoredMarks([...node.marks, ...(sm ? sm : [])]) : + state.tr; + return replaced.setSelection(new TextSelection(replaced.doc.resolve(end - 2))); + }), + // left justify text + new InputRule( + new RegExp(/%\[$/), + (state, match, start, end) => { + const node = (state.doc.resolve(start) as any).nodeAfter; + const sm = state.storedMarks || undefined; + const replaced = node ? state.tr.replaceRangeWith(start, end, schema.nodes.paragraph.create({ align: "left" })).setStoredMarks([...node.marks, ...(sm ? sm : [])]) : + state.tr; + return replaced.setSelection(new TextSelection(replaced.doc.resolve(end - 2))); + }), + // right justify text + new InputRule( + new RegExp(/%\]$/), + (state, match, start, end) => { + const node = (state.doc.resolve(start) as any).nodeAfter; + const sm = state.storedMarks || undefined; + const replaced = node ? state.tr.replaceRangeWith(start, end, schema.nodes.paragraph.create({ align: "right" })).setStoredMarks([...node.marks, ...(sm ? sm : [])]) : + state.tr; + return replaced.setSelection(new TextSelection(replaced.doc.resolve(end - 2))); + }), + new InputRule( + new RegExp(/%\(/), + (state, match, start, end) => { + const node = (state.doc.resolve(start) as any).nodeAfter; + const sm = state.storedMarks || []; + const mark = state.schema.marks.summarizeInclusive.create(); + sm.push(mark); + const selected = state.tr.setSelection(new TextSelection(state.doc.resolve(start), state.doc.resolve(end))).addMark(start, end, mark); + const content = selected.selection.content(); + const replaced = node ? selected.replaceRangeWith(start, end, + schema.nodes.summary.create({ visibility: true, text: content, textslice: content.toJSON() })) : + state.tr; + return replaced.setSelection(new TextSelection(replaced.doc.resolve(end + 1))).setStoredMarks([...node.marks, ...sm]); + }), + new InputRule( + new RegExp(/%\)/), + (state, match, start, end) => { + return state.tr.deleteRange(start, end).removeStoredMark(state.schema.marks.summarizeInclusive.create()); + }), + new InputRule( + new RegExp(/%f$/), + (state, match, start, end) => { + const newNode = schema.nodes.footnote.create({}); + const tr = state.tr; + tr.deleteRange(start, end).replaceSelectionWith(newNode); // replace insertion with a footnote. + return tr.setSelection(new NodeSelection( // select the footnote node to open its display + tr.doc.resolve( // get the location of the footnote node by subtracting the nodesize of the footnote from the current insertion point anchor (which will be immediately after the footnote node) + tr.selection.anchor - tr.selection.$anchor.nodeBefore!.nodeSize))); + }), + + // activate a style by name using prefix '%' + new InputRule( + new RegExp(/%[a-z]+$/), + (state, match, start, end) => { + const color = match[0].substring(1, match[0].length); + const marks = RichTextMenu.Instance._brushMap.get(color); + if (marks) { + const tr = state.tr.deleteRange(start, end); + return marks ? Array.from(marks).reduce((tr, m) => tr.addStoredMark(m), tr) : tr; + } + const isValidColor = (strColor: string) => { + const s = new Option().style; + s.color = strColor; + return s.color === strColor.toLowerCase(); // 'false' if color wasn't assigned + }; + if (isValidColor(color)) { + return state.tr.deleteRange(start, end).addStoredMark(schema.marks.pFontColor.create({ color: color })); + } + return null; + }), + ] + }; +} diff --git a/src/client/views/nodes/formattedText/RichTextSchema.tsx b/src/client/views/nodes/formattedText/RichTextSchema.tsx new file mode 100644 index 000000000..33caf5751 --- /dev/null +++ b/src/client/views/nodes/formattedText/RichTextSchema.tsx @@ -0,0 +1,718 @@ +import { IReactionDisposer, observable, reaction, runInAction } from "mobx"; +import { baseKeymap, toggleMark } from "prosemirror-commands"; +import { redo, undo } from "prosemirror-history"; +import { keymap } from "prosemirror-keymap"; +import { DOMOutputSpecArray, Fragment, MarkSpec, Node, NodeSpec, Schema, Slice } from "prosemirror-model"; +import { bulletList, listItem, orderedList } from 'prosemirror-schema-list'; +import { EditorState, NodeSelection, Plugin, TextSelection } from "prosemirror-state"; +import { StepMap } from "prosemirror-transform"; +import { EditorView } from "prosemirror-view"; +import * as ReactDOM from 'react-dom'; +import { Doc, DocListCast, Field, HeightSym, WidthSym } from "../../../../new_fields/Doc"; +import { Id } from "../../../../new_fields/FieldSymbols"; +import { List } from "../../../../new_fields/List"; +import { ObjectField } from "../../../../new_fields/ObjectField"; +import { listSpec } from "../../../../new_fields/Schema"; +import { SchemaHeaderField } from "../../../../new_fields/SchemaHeaderField"; +import { ComputedField } from "../../../../new_fields/ScriptField"; +import { BoolCast, Cast, NumCast, StrCast, FieldValue } from "../../../../new_fields/Types"; +import { emptyFunction, returnEmptyString, returnFalse, returnOne, Utils, returnZero } from "../../../../Utils"; +import { DocServer } from "../../../DocServer"; +import { Docs } from "../../../documents/Documents"; +import { CollectionViewType } from "../../collections/CollectionView"; +import { DocumentView } from "../DocumentView"; +import { FormattedTextBox } from "./FormattedTextBox"; +import { DocumentManager } from "../../../util/DocumentManager"; +import { Transform } from "../../../util/Transform"; +import React = require("react"); + +import { schema } from "./schema_rts"; + +export class OrderedListView { + update(node: any) { + return false; // if attr's of an ordered_list (e.g., bulletStyle) change, return false forces the dom node to be recreated which is necessary for the bullet labels to update + } +} + +export class ImageResizeView { + _handle: HTMLElement; + _img: HTMLElement; + _outer: HTMLElement; + constructor(node: any, view: any, getPos: any, addDocTab: any) { + //moved + this._handle = document.createElement("span"); + this._img = document.createElement("img"); + this._outer = document.createElement("span"); + this._outer.style.position = "relative"; + this._outer.style.width = node.attrs.width; + this._outer.style.height = node.attrs.height; + this._outer.style.display = "inline-block"; + this._outer.style.overflow = "hidden"; + (this._outer.style as any).float = node.attrs.float; + //moved + this._img.setAttribute("src", node.attrs.src); + this._img.style.width = "100%"; + this._handle.style.position = "absolute"; + this._handle.style.width = "20px"; + this._handle.style.height = "20px"; + this._handle.style.backgroundColor = "blue"; + this._handle.style.borderRadius = "15px"; + this._handle.style.display = "none"; + this._handle.style.bottom = "-10px"; + this._handle.style.right = "-10px"; + const self = this; + //moved + this._img.onclick = function (e: any) { + e.stopPropagation(); + e.preventDefault(); + if (view.state.selection.node && view.state.selection.node.type !== view.state.schema.nodes.image) { + view.dispatch(view.state.tr.setSelection(new NodeSelection(view.state.doc.resolve(view.state.selection.from - 2)))); + } + }; + //moved + this._img.onpointerdown = function (e: any) { + if (e.ctrlKey) { + e.preventDefault(); + e.stopPropagation(); + DocServer.GetRefField(node.attrs.docid).then(async linkDoc => + (linkDoc instanceof Doc) && + DocumentManager.Instance.FollowLink(linkDoc, view.state.schema.Document, + document => addDocTab(document, node.attrs.location ? node.attrs.location : "inTab"), false)); + } + }; + //moved + this._handle.onpointerdown = function (e: any) { + e.preventDefault(); + e.stopPropagation(); + const wid = Number(getComputedStyle(self._img).width.replace(/px/, "")); + const hgt = Number(getComputedStyle(self._img).height.replace(/px/, "")); + const startX = e.pageX; + const startWidth = parseFloat(node.attrs.width); + const onpointermove = (e: any) => { + const currentX = e.pageX; + const diffInPx = currentX - startX; + self._outer.style.width = `${startWidth + diffInPx}`; + self._outer.style.height = `${(startWidth + diffInPx) * hgt / wid}`; + }; + + const onpointerup = () => { + document.removeEventListener("pointermove", onpointermove); + document.removeEventListener("pointerup", onpointerup); + const pos = view.state.selection.from; + view.dispatch(view.state.tr.setNodeMarkup(getPos(), null, { ...node.attrs, width: self._outer.style.width, height: self._outer.style.height })); + view.dispatch(view.state.tr.setSelection(new NodeSelection(view.state.doc.resolve(pos)))); + }; + + document.addEventListener("pointermove", onpointermove); + document.addEventListener("pointerup", onpointerup); + }; + //Moved + this._outer.appendChild(this._img); + this._outer.appendChild(this._handle); + (this as any).dom = this._outer; + } + + selectNode() { + this._img.classList.add("ProseMirror-selectednode"); + + this._handle.style.display = ""; + } + + deselectNode() { + this._img.classList.remove("ProseMirror-selectednode"); + + this._handle.style.display = "none"; + } +} + +export class DashDocCommentView { + _collapsed: HTMLElement; + _view: any; + constructor(node: any, view: any, getPos: any) { + //moved + this._collapsed = document.createElement("span"); + this._collapsed.className = "formattedTextBox-inlineComment"; + this._collapsed.id = "DashDocCommentView-" + node.attrs.docid; + this._view = view; + //moved + const targetNode = () => { // search forward in the prosemirror doc for the attached dashDocNode that is the target of the comment anchor + for (let i = getPos() + 1; i < view.state.doc.content.size; i++) { + const m = view.state.doc.nodeAt(i); + if (m && m.type === view.state.schema.nodes.dashDoc && m.attrs.docid === node.attrs.docid) { + return { node: m, pos: i, hidden: m.attrs.hidden } as { node: any, pos: number, hidden: boolean }; + } + } + const dashDoc = view.state.schema.nodes.dashDoc.create({ width: 75, height: 35, title: "dashDoc", docid: node.attrs.docid, float: "right" }); + view.dispatch(view.state.tr.insert(getPos() + 1, dashDoc)); + setTimeout(() => { try { view.dispatch(view.state.tr.setSelection(TextSelection.create(view.state.tr.doc, getPos() + 2))); } catch (e) { } }, 0); + return undefined; + }; + //moved + this._collapsed.onpointerdown = (e: any) => { + e.stopPropagation(); + }; + //moved + this._collapsed.onpointerup = (e: any) => { + const target = targetNode(); + if (target) { + const expand = target.hidden; + const tr = view.state.tr.setNodeMarkup(target.pos, undefined, { ...target.node.attrs, hidden: target.node.attrs.hidden ? false : true }); + view.dispatch(tr.setSelection(TextSelection.create(tr.doc, getPos() + (expand ? 2 : 1)))); // update the attrs + setTimeout(() => { + expand && DocServer.GetRefField(node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowHighlight(dashDoc)); + try { view.dispatch(view.state.tr.setSelection(TextSelection.create(view.state.tr.doc, getPos() + (expand ? 2 : 1)))); } catch (e) { } + }, 0); + } + e.stopPropagation(); + }; + //moved + this._collapsed.onpointerenter = (e: any) => { + DocServer.GetRefField(node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowHighlight(dashDoc, false)); + e.preventDefault(); + e.stopPropagation(); + }; + //moved + this._collapsed.onpointerleave = (e: any) => { + DocServer.GetRefField(node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowUnhighlight()); + e.preventDefault(); + e.stopPropagation(); + }; + + (this as any).dom = this._collapsed; + } + //moved + selectNode() { } +} + +export class DashDocView { + _dashSpan: HTMLDivElement; + _outer: HTMLElement; + _dashDoc: Doc | undefined; + _reactionDisposer: IReactionDisposer | undefined; + _renderDisposer: IReactionDisposer | undefined; + _textBox: FormattedTextBox; + + getDocTransform = () => { + const { scale, translateX, translateY } = Utils.GetScreenTransform(this._outer); + return new Transform(-translateX, -translateY, 1).scale(1 / this.contentScaling() / scale); + } + contentScaling = () => NumCast(this._dashDoc!._nativeWidth) > 0 ? this._dashDoc![WidthSym]() / NumCast(this._dashDoc!._nativeWidth) : 1; + + outerFocus = (target: Doc) => this._textBox.props.focus(this._textBox.props.Document); // ideally, this would scroll to show the focus target + + constructor(node: any, view: any, getPos: any, tbox: FormattedTextBox) { + this._textBox = tbox; + this._dashSpan = document.createElement("div"); + this._outer = document.createElement("span"); + this._outer.style.position = "relative"; + this._outer.style.textIndent = "0"; + this._outer.style.border = "1px solid " + StrCast(tbox.layoutDoc.color, (Cast(Doc.UserDoc().activeWorkspace, Doc, null).darkScheme ? "dimGray" : "lightGray")); + this._outer.style.width = node.attrs.width; + this._outer.style.height = node.attrs.height; + this._outer.style.display = node.attrs.hidden ? "none" : "inline-block"; + // this._outer.style.overflow = "hidden"; // bcz: not sure if this is needed. if it's used, then the doc doesn't highlight when you hover over a docComment + (this._outer.style as any).float = node.attrs.float; + + this._dashSpan.style.width = node.attrs.width; + this._dashSpan.style.height = node.attrs.height; + this._dashSpan.style.position = "absolute"; + this._dashSpan.style.display = "inline-block"; + this._dashSpan.onpointerleave = () => { + const ele = document.getElementById("DashDocCommentView-" + node.attrs.docid); + if (ele) { + (ele as HTMLDivElement).style.backgroundColor = ""; + } + }; + this._dashSpan.onpointerenter = () => { + const ele = document.getElementById("DashDocCommentView-" + node.attrs.docid); + if (ele) { + (ele as HTMLDivElement).style.backgroundColor = "orange"; + } + }; + const removeDoc = () => { + const pos = getPos(); + const ns = new NodeSelection(view.state.doc.resolve(pos)); + view.dispatch(view.state.tr.setSelection(ns).deleteSelection()); + return true; + }; + const alias = node.attrs.alias; + + const docid = node.attrs.docid || tbox.props.Document[Id];// tbox.props.DataDoc?.[Id] || tbox.dataDoc?.[Id]; + DocServer.GetRefField(docid + alias).then(async dashDoc => { + if (!(dashDoc instanceof Doc)) { + alias && DocServer.GetRefField(docid).then(async dashDocBase => { + if (dashDocBase instanceof Doc) { + const aliasedDoc = Doc.MakeAlias(dashDocBase, docid + alias); + aliasedDoc.layoutKey = "layout"; + node.attrs.fieldKey && Doc.makeCustomViewClicked(aliasedDoc, Docs.Create.StackingDocument, node.attrs.fieldKey, undefined); + self.doRender(aliasedDoc, removeDoc, node, view, getPos); + } + }); + } else { + self.doRender(dashDoc, removeDoc, node, view, getPos); + } + }); + const self = this; + this._dashSpan.onkeydown = function (e: any) { + e.stopPropagation(); + if (e.key === "Tab" || e.key === "Enter") { + e.preventDefault(); + } + }; + this._dashSpan.onkeypress = function (e: any) { e.stopPropagation(); }; + this._dashSpan.onwheel = function (e: any) { e.preventDefault(); }; + this._dashSpan.onkeyup = function (e: any) { e.stopPropagation(); }; + this._outer.appendChild(this._dashSpan); + (this as any).dom = this._outer; + } + + doRender(dashDoc: Doc, removeDoc: any, node: any, view: any, getPos: any) { + this._dashDoc = dashDoc; + const self = this; + const dashLayoutDoc = Doc.Layout(dashDoc); + const finalLayout = node.attrs.docid ? dashDoc : Doc.expandTemplateLayout(dashLayoutDoc, dashDoc, node.attrs.fieldKey); + + if (!finalLayout) setTimeout(() => self.doRender(dashDoc, removeDoc, node, view, getPos), 0); + else { + this._reactionDisposer?.(); + this._reactionDisposer = reaction(() => ({ dim: [finalLayout[WidthSym](), finalLayout[HeightSym]()], color: finalLayout.color }), ({ dim, color }) => { + this._dashSpan.style.width = this._outer.style.width = Math.max(20, dim[0]) + "px"; + this._dashSpan.style.height = this._outer.style.height = Math.max(20, dim[1]) + "px"; + this._outer.style.border = "1px solid " + StrCast(finalLayout.color, (Cast(Doc.UserDoc().activeWorkspace, Doc, null).darkScheme ? "dimGray" : "lightGray")); + }, { fireImmediately: true }); + const doReactRender = (finalLayout: Doc, resolvedDataDoc: Doc) => { + ReactDOM.unmountComponentAtNode(this._dashSpan); + + ReactDOM.render(, this._dashSpan); + if (node.attrs.width !== dashDoc._width + "px" || node.attrs.height !== dashDoc._height + "px") { + try { // bcz: an exception will be thrown if two aliases are open at the same time when a doc view comment is made + view.dispatch(view.state.tr.setNodeMarkup(getPos(), null, { ...node.attrs, width: dashDoc._width + "px", height: dashDoc._height + "px" })); + } catch (e) { + console.log(e); + } + } + }; + this._renderDisposer?.(); + this._renderDisposer = reaction(() => { + // if (!Doc.AreProtosEqual(finalLayout, dashDoc)) { + // finalLayout.rootDocument = dashDoc.aliasOf; // bcz: check on this ... why is it here? + // } + const layoutKey = StrCast(finalLayout.layoutKey); + const finalKey = layoutKey && StrCast(finalLayout[layoutKey]).split("'")?.[1]; + if (finalLayout !== dashDoc && finalKey) { + const finalLayoutField = finalLayout[finalKey]; + if (finalLayoutField instanceof ObjectField) { + finalLayout[finalKey + "-textTemplate"] = ComputedField.MakeFunction(`copyField(this.${finalKey})`, { this: Doc.name }); + } + } + return { finalLayout, resolvedDataDoc: Cast(finalLayout.resolvedDataDoc, Doc, null) }; + }, + (res) => doReactRender(res.finalLayout, res.resolvedDataDoc), + { fireImmediately: true }); + } + } + destroy() { + ReactDOM.unmountComponentAtNode(this._dashSpan); + this._reactionDisposer?.(); + } +} + +export class DashFieldView { + _fieldWrapper: HTMLDivElement; // container for label and value + _labelSpan: HTMLSpanElement; // field label + _fieldSpan: HTMLSpanElement; // field value + _fieldCheck: HTMLInputElement; + _enumerables: HTMLDivElement; // field value + _reactionDisposer: IReactionDisposer | undefined; + _textBoxDoc: Doc; + @observable _dashDoc: Doc | undefined; + _fieldKey: string; + _options: Doc[] = []; + + constructor(node: any, view: any, getPos: any, tbox: FormattedTextBox) { + this._fieldKey = node.attrs.fieldKey; + this._textBoxDoc = tbox.props.Document; + this._fieldWrapper = document.createElement("p"); + this._fieldWrapper.style.width = node.attrs.width; + this._fieldWrapper.style.height = node.attrs.height; + this._fieldWrapper.style.fontWeight = "bold"; + this._fieldWrapper.style.position = "relative"; + this._fieldWrapper.style.display = "inline-block"; + + const self = this; + + this._enumerables = document.createElement("div"); + this._enumerables.style.width = "10px"; + this._enumerables.style.height = "10px"; + this._enumerables.style.position = "relative"; + this._enumerables.style.display = "none"; + + //Moved + this._enumerables.onpointerdown = async (e) => { + e.stopPropagation(); + const collview = await Doc.addFieldEnumerations(self._textBoxDoc, self._fieldKey, [{ title: self._fieldSpan.innerText }]); + collview instanceof Doc && tbox.props.addDocTab(collview, "onRight"); + }; + //Moved + const updateText = (forceMatch: boolean) => { + self._enumerables.style.display = "none"; + const newText = self._fieldSpan.innerText.startsWith(":=") || self._fieldSpan.innerText.startsWith("=:=") ? ":=-computed-" : self._fieldSpan.innerText; + + // look for a document whose id === the fieldKey being displayed. If there's a match, then that document + // holds the different enumerated values for the field in the titles of its collected documents. + // if there's a partial match from the start of the input text, complete the text --- TODO: make this an auto suggest box and select from a drop down. + DocServer.GetRefField(self._fieldKey).then(options => { + let modText = ""; + (options instanceof Doc) && DocListCast(options.data).forEach(opt => (forceMatch ? StrCast(opt.title).startsWith(newText) : StrCast(opt.title) === newText) && (modText = StrCast(opt.title))); + if (modText) { + self._fieldSpan.innerHTML = self._dashDoc![self._fieldKey] = modText; + Doc.addFieldEnumerations(self._textBoxDoc, self._fieldKey, []); + } // if the text starts with a ':=' then treat it as an expression by making a computed field from its value storing it in the key + else if (self._fieldSpan.innerText.startsWith(":=")) { + self._dashDoc![self._fieldKey] = ComputedField.MakeFunction(self._fieldSpan.innerText.substring(2)); + } else if (self._fieldSpan.innerText.startsWith("=:=")) { + Doc.Layout(tbox.props.Document)[self._fieldKey] = ComputedField.MakeFunction(self._fieldSpan.innerText.substring(3)); + } else { + self._dashDoc![self._fieldKey] = newText; + } + }); + }; + + //Moved + this._fieldCheck = document.createElement("input"); + this._fieldCheck.id = Utils.GenerateGuid(); + this._fieldCheck.type = "checkbox"; + this._fieldCheck.style.position = "relative"; + this._fieldCheck.style.display = "none"; + this._fieldCheck.style.minWidth = "12px"; + this._fieldCheck.style.backgroundColor = "rgba(155, 155, 155, 0.24)"; + this._fieldCheck.onchange = function (e: any) { + self._dashDoc![self._fieldKey] = e.target.checked; + }; + + this._fieldSpan = document.createElement("span"); + this._fieldSpan.id = Utils.GenerateGuid(); + this._fieldSpan.contentEditable = "true"; + this._fieldSpan.style.position = "relative"; + this._fieldSpan.style.display = "none"; + this._fieldSpan.style.minWidth = "12px"; + this._fieldSpan.style.fontSize = "large"; + this._fieldSpan.onkeypress = function (e: any) { e.stopPropagation(); }; + this._fieldSpan.onkeyup = function (e: any) { e.stopPropagation(); }; + this._fieldSpan.onmousedown = function (e: any) { e.stopPropagation(); self._enumerables.style.display = "inline-block"; }; + this._fieldSpan.onblur = function (e: any) { updateText(false); }; + + // MOVED + const setDashDoc = (doc: Doc) => { + self._dashDoc = doc; + if (self._options?.length && !self._dashDoc[self._fieldKey]) { + self._dashDoc[self._fieldKey] = StrCast(self._options[0].title); + } + this._labelSpan.innerHTML = `${self._fieldKey}: `; + const fieldVal = Cast(this._dashDoc?.[self._fieldKey], "boolean", null); + this._fieldCheck.style.display = (fieldVal === true || fieldVal === false) ? "inline-block" : "none"; + this._fieldSpan.style.display = !(fieldVal === true || fieldVal === false) ? StrCast(this._dashDoc?.[self._fieldKey]) ? "" : "inline-block" : "none"; + }; + + //Moved + this._fieldSpan.onkeydown = function (e: any) { + e.stopPropagation(); + if ((e.key === "a" && e.ctrlKey) || (e.key === "a" && e.metaKey)) { + if (window.getSelection) { + const range = document.createRange(); + range.selectNodeContents(self._fieldSpan); + window.getSelection()!.removeAllRanges(); + window.getSelection()!.addRange(range); + } + e.preventDefault(); + } + if (e.key === "Enter") { + e.preventDefault(); + e.ctrlKey && Doc.addFieldEnumerations(self._textBoxDoc, self._fieldKey, [{ title: self._fieldSpan.innerText }]); + updateText(true); + } + }; + + this._labelSpan = document.createElement("span"); + this._labelSpan.style.position = "relative"; + this._labelSpan.style.fontSize = "small"; + this._labelSpan.title = "click to see related tags"; + this._labelSpan.style.fontSize = "x-small"; + this._labelSpan.onpointerdown = function (e: any) { + e.stopPropagation(); + let container = tbox.props.ContainingCollectionView; + while (container?.props.Document.isTemplateForField || container?.props.Document.isTemplateDoc) { + container = container.props.ContainingCollectionView; + } + if (container) { + const alias = Doc.MakeAlias(container.props.Document); + alias.viewType = CollectionViewType.Time; + let list = Cast(alias.schemaColumns, listSpec(SchemaHeaderField)); + if (!list) { + alias.schemaColumns = list = new List(); + } + list.map(c => c.heading).indexOf(self._fieldKey) === -1 && list.push(new SchemaHeaderField(self._fieldKey, "#f1efeb")); + list.map(c => c.heading).indexOf("text") === -1 && list.push(new SchemaHeaderField("text", "#f1efeb")); + alias._pivotField = self._fieldKey; + tbox.props.addDocTab(alias, "onRight"); + } + }; + this._labelSpan.innerHTML = `${self._fieldKey}: `; + //MOVED + if (node.attrs.docid) { + DocServer.GetRefField(node.attrs.docid). + then(async dashDoc => dashDoc instanceof Doc && runInAction(() => setDashDoc(dashDoc))); + } else { + setDashDoc(tbox.props.DataDoc || tbox.dataDoc); + } + + //Moved + this._reactionDisposer?.(); + this._reactionDisposer = reaction(() => { // this reaction will update the displayed text whenever the document's fieldKey's value changes + const dashVal = this._dashDoc?.[self._fieldKey]; + return StrCast(dashVal).startsWith(":=") || dashVal === "" ? Doc.Layout(tbox.props.Document)[self._fieldKey] : dashVal; + }, fval => { + const boolVal = Cast(fval, "boolean", null); + if (boolVal === true || boolVal === false) { + this._fieldCheck.checked = boolVal; + } else { + this._fieldSpan.innerHTML = Field.toString(fval as Field) || ""; + } + this._fieldCheck.style.display = (boolVal === true || boolVal === false) ? "inline-block" : "none"; + this._fieldSpan.style.display = !(fval === true || fval === false) ? (StrCast(fval) ? "" : "inline-block") : "none"; + }, { fireImmediately: true }); + + //MOVED IN ORDER + this._fieldWrapper.appendChild(this._labelSpan); + this._fieldWrapper.appendChild(this._fieldCheck); + this._fieldWrapper.appendChild(this._fieldSpan); + this._fieldWrapper.appendChild(this._enumerables); + (this as any).dom = this._fieldWrapper; + //updateText(false); + } + //MOVED + destroy() { + this._reactionDisposer?.(); + } + //moved + selectNode() { } +} + +export class FootnoteView { + innerView: any; + outerView: any; + node: any; + dom: any; + getPos: any; + + constructor(node: any, view: any, getPos: any) { + // We'll need these later + this.node = node; + this.outerView = view; + this.getPos = getPos; + + // The node's representation in the editor (empty, for now) + this.dom = document.createElement("footnote"); + this.dom.addEventListener("pointerup", this.toggle, true); + // These are used when the footnote is selected + this.innerView = null; + } + selectNode() { + const attrs = { ...this.node.attrs }; + attrs.visibility = true; + this.dom.classList.add("ProseMirror-selectednode"); + if (!this.innerView) this.open(); + } + + deselectNode() { + const attrs = { ...this.node.attrs }; + attrs.visibility = false; + this.dom.classList.remove("ProseMirror-selectednode"); + if (this.innerView) this.close(); + } + open() { + // Append a tooltip to the outer node + const tooltip = this.dom.appendChild(document.createElement("div")); + tooltip.className = "footnote-tooltip"; + // And put a sub-ProseMirror into that + this.innerView = new EditorView(tooltip, { + // You can use any node as an editor document + state: EditorState.create({ + doc: this.node, + plugins: [keymap(baseKeymap), + keymap({ + "Mod-z": () => undo(this.outerView.state, this.outerView.dispatch), + "Mod-y": () => redo(this.outerView.state, this.outerView.dispatch), + "Mod-b": toggleMark(schema.marks.strong) + }), + // new Plugin({ + // view(newView) { + // // TODO -- make this work with RichTextMenu + // // return FormattedTextBox.getToolTip(newView); + // } + // }) + ], + + }), + // This is the magic part + dispatchTransaction: this.dispatchInner.bind(this), + handleDOMEvents: { + pointerdown: ((view: any, e: PointerEvent) => { + // Kludge to prevent issues due to the fact that the whole + // footnote is node-selected (and thus DOM-selected) when + // the parent editor is focused. + e.stopPropagation(); + document.addEventListener("pointerup", this.ignore, true); + if (this.outerView.hasFocus()) this.innerView.focus(); + }) as any + } + + }); + setTimeout(() => this.innerView && this.innerView.docView.setSelection(0, 0, this.innerView.root, true), 0); + } + + ignore = (e: PointerEvent) => { + e.stopPropagation(); + document.removeEventListener("pointerup", this.ignore, true); + } + + toggle = () => { + if (this.innerView) this.close(); + else { + this.open(); + } + } + close() { + this.innerView && this.innerView.destroy(); + this.innerView = null; + this.dom.textContent = ""; + } + + dispatchInner(tr: any) { + const { state, transactions } = this.innerView.state.applyTransaction(tr); + this.innerView.updateState(state); + + if (!tr.getMeta("fromOutside")) { + const outerTr = this.outerView.state.tr, offsetMap = StepMap.offset(this.getPos() + 1); + for (const transaction of transactions) { + const steps = transaction.steps; + for (const step of steps) { + outerTr.step(step.map(offsetMap)); + } + } + if (outerTr.docChanged) this.outerView.dispatch(outerTr); + } + } + update(node: any) { + if (!node.sameMarkup(this.node)) return false; + this.node = node; + if (this.innerView) { + const state = this.innerView.state; + const start = node.content.findDiffStart(state.doc.content); + if (start !== null) { + let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content); + const overlap = start - Math.min(endA, endB); + if (overlap > 0) { endA += overlap; endB += overlap; } + this.innerView.dispatch( + state.tr + .replace(start, endB, node.slice(start, endA)) + .setMeta("fromOutside", true)); + } + } + return true; + } + + destroy() { + if (this.innerView) this.close(); + } + + stopEvent(event: any) { + return this.innerView && this.innerView.dom.contains(event.target); + } + + ignoreMutation() { return true; } +} + +export class SummaryView { + _collapsed: HTMLElement; + _view: any; + constructor(node: any, view: any, getPos: any) { + this._collapsed = document.createElement("span"); + this._collapsed.className = this.className(node.attrs.visibility); + this._view = view; + const js = node.toJSON; + node.toJSON = function () { + return js.apply(this, arguments); + }; + + this._collapsed.onpointerdown = (e: any) => { + const visible = !node.attrs.visibility; + const attrs = { ...node.attrs, visibility: visible }; + let textSelection = TextSelection.create(view.state.doc, getPos() + 1); + if (!visible) { // update summarized text and save in attrs + textSelection = this.updateSummarizedText(getPos() + 1); + attrs.text = textSelection.content(); + attrs.textslice = attrs.text.toJSON(); + } + view.dispatch(view.state.tr. + setSelection(textSelection). // select the current summarized text (or where it will be if its collapsed) + replaceSelection(!visible ? new Slice(Fragment.fromArray([]), 0, 0) : node.attrs.text). // collapse/expand it + setNodeMarkup(getPos(), undefined, attrs)); // update the attrs + e.preventDefault(); + e.stopPropagation(); + this._collapsed.className = this.className(visible); + }; + (this as any).dom = this._collapsed; + } + selectNode() { } + + deselectNode() { } + + className = (visible: boolean) => "formattedTextBox-summarizer" + (visible ? "" : "-collapsed"); + + updateSummarizedText(start?: any) { + const mtype = this._view.state.schema.marks.summarize; + const mtypeInc = this._view.state.schema.marks.summarizeInclusive; + let endPos = start; + + const visited = new Set(); + for (let i: number = start + 1; i < this._view.state.doc.nodeSize - 1; i++) { + let skip = false; + this._view.state.doc.nodesBetween(start, i, (node: Node, pos: number, parent: Node, index: number) => { + if (node.isLeaf && !visited.has(node) && !skip) { + if (node.marks.find((m: any) => m.type === mtype || m.type === mtypeInc)) { + visited.add(node); + endPos = i + node.nodeSize - 1; + } + else skip = true; + } + }); + } + return TextSelection.create(this._view.state.doc, start, endPos); + } +} \ No newline at end of file diff --git a/src/client/views/nodes/formattedText/SummaryView.tsx b/src/client/views/nodes/formattedText/SummaryView.tsx new file mode 100644 index 000000000..89908d8ee --- /dev/null +++ b/src/client/views/nodes/formattedText/SummaryView.tsx @@ -0,0 +1,81 @@ +import { TextSelection } from "prosemirror-state"; +import { Fragment, Node, Slice } from "prosemirror-model"; + +import React = require("react"); + +interface ISummaryView { + node: any; + view: any; + getPos: any; + self: any; +} +export class SummaryView extends React.Component { + + onPointerDown = (e: any) => { + const visible = !this.props.node.attrs.visibility; + const attrs = { ...this.props.node.attrs, visibility: visible }; + let textSelection = TextSelection.create(this.props.view.state.doc, this.props.getPos() + 1); + if (!visible) { // update summarized text and save in attrs + textSelection = this.updateSummarizedText(this.props.getPos() + 1); + attrs.text = textSelection.content(); + attrs.textslice = attrs.text.toJSON(); + } + this.props.view.dispatch(this.props.view.state.tr. + setSelection(textSelection). // select the current summarized text (or where it will be if its collapsed) + replaceSelection(!visible ? new Slice(Fragment.fromArray([]), 0, 0) : this.props.node.attrs.text). // collapse/expand it + setNodeMarkup(this.props.getPos(), undefined, attrs)); // update the attrs + e.preventDefault(); + e.stopPropagation(); + const _collapsed = document.getElementById('collapse') as HTMLElement; + _collapsed.className = this.className(visible); + } + + updateSummarizedText(start?: any) { + const mtype = this.props.view.state.schema.marks.summarize; + const mtypeInc = this.props.view.state.schema.marks.summarizeInclusive; + let endPos = start; + + const visited = new Set(); + for (let i: number = start + 1; i < this.props.view.state.doc.nodeSize - 1; i++) { + let skip = false; + this.props.view.state.doc.nodesBetween(start, i, (node: Node, pos: number, parent: Node, index: number) => { + if (this.props.node.isLeaf && !visited.has(node) && !skip) { + if (this.props.node.marks.find((m: any) => m.type === mtype || m.type === mtypeInc)) { + visited.add(node); + endPos = i + this.props.node.nodeSize - 1; + } + else skip = true; + } + }); + } + return TextSelection.create(this.props.view.state.doc, start, endPos); + } + + className = (visible: boolean) => "formattedTextBox-summarizer" + (visible ? "" : "-collapsed"); + + selectNode() { } + + deselectNode() { } + + render() { + const _view = this.props.node.view; + const js = this.props.node.toJSon; + + this.props.node.toJSON = function () { + return js.apply(this, arguments); + }; + + const spanCollapsedClassName = this.className(this.props.node.attrs.visibility); + + return ( + + + + ); + + } +} \ No newline at end of file diff --git a/src/client/views/nodes/formattedText/TooltipTextMenu.scss b/src/client/views/nodes/formattedText/TooltipTextMenu.scss new file mode 100644 index 000000000..e2149e9c1 --- /dev/null +++ b/src/client/views/nodes/formattedText/TooltipTextMenu.scss @@ -0,0 +1,372 @@ +@import "../views/globalCssVariables"; +.ProseMirror-menu-dropdown-wrap { + display: inline-block; + position: relative; +} + +.ProseMirror-menu-dropdown { + vertical-align: 1px; + cursor: pointer; + position: relative; + padding: 0 15px 0 4px; + background: white; + border-radius: 2px; + text-align: left; + font-size: 12px; + white-space: nowrap; + margin-right: 4px; + + &:after { + content: ""; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid currentColor; + opacity: .6; + position: absolute; + right: 4px; + top: calc(50% - 2px); + } +} + +.ProseMirror-menu-submenu-wrap { + position: relative; + margin-right: -4px; +} + +.ProseMirror-menu-dropdown-menu, +.ProseMirror-menu-submenu { + font-size: 12px; + background: white; + border: 1px solid rgb(223, 223, 223); + min-width: 40px; + z-index: 50000; + position: absolute; + box-sizing: content-box; + + .ProseMirror-menu-dropdown-item { + cursor: pointer; + z-index: 100000; + text-align: left; + padding: 3px; + + &:hover { + background-color: $light-color-secondary; + } + } +} + + +.ProseMirror-menu-submenu-label:after { + content: ""; + border-top: 4px solid transparent; + border-bottom: 4px solid transparent; + border-left: 4px solid currentColor; + opacity: .6; + position: absolute; + right: 4px; + top: calc(50% - 4px); +} + + .ProseMirror-icon { + display: inline-block; + // line-height: .8; + // vertical-align: -2px; /* Compensate for padding */ + // padding: 2px 8px; + cursor: pointer; + + &.ProseMirror-menu-disabled { + cursor: default; + } + + svg { + fill:white; + height: 1em; + } + + span { + vertical-align: text-top; + } + } + +.wrapper { + position: absolute; + pointer-events: all; + display: flex; + align-items: center; + transform: translateY(-85px); + + height: 35px; + background: #323232; + border-radius: 6px; + box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.25); + +} + +.tooltipMenu, .basic-tools { + z-index: 20000; + pointer-events: all; + padding: 3px; + padding-bottom: 5px; + display: flex; + align-items: center; + + .ProseMirror-example-setup-style hr { + padding: 2px 10px; + border: none; + margin: 1em 0; + } + + .ProseMirror-example-setup-style hr:after { + content: ""; + display: block; + height: 1px; + background-color: silver; + line-height: 2px; + } +} + +.menuicon { + width: 25px; + height: 25px; + cursor: pointer; + text-align: center; + line-height: 25px; + margin: 0 2px; + border-radius: 3px; + + &:hover { + background-color: black; + + #link-drag { + background-color: black; + } + } + + &> * { + margin-top: 50%; + margin-left: 50%; + transform: translate(-50%, -50%); + } + + svg { + fill: white; + width: 18px; + height: 18px; + } +} + +.menuicon-active { + width: 25px; + height: 25px; + cursor: pointer; + text-align: center; + line-height: 25px; + margin: 0 2px; + border-radius: 3px; + + &:hover { + background-color: black; + } + + &> * { + margin-top: 50%; + margin-left: 50%; + transform: translate(-50%, -50%); + } + + svg { + fill: greenyellow; + width: 18px; + height: 18px; + } +} + +#colorPicker { + position: relative; + + svg { + width: 18px; + height: 18px; + // margin-top: 11px; + } + + .buttonColor { + position: absolute; + top: 24px; + left: 1px; + width: 24px; + height: 4px; + margin-top: 0; + } +} + +#link-drag { + background-color: #323232; +} + +.underline svg { + margin-top: 13px; +} + + .font-size-indicator { + font-size: 12px; + padding-right: 0px; + } + .summarize{ + color: white; + height: 20px; + text-align: center; + } + + +.brush{ + display: inline-block; + width: 1em; + height: 1em; + stroke-width: 0; + stroke: currentColor; + fill: currentColor; + margin-right: 15px; +} + +.brush-active{ + display: inline-block; + width: 1em; + height: 1em; + stroke-width: 3; + fill: greenyellow; + margin-right: 15px; +} + +.dragger-wrapper { + color: #eee; + height: 22px; + padding: 0 5px; + box-sizing: content-box; + cursor: grab; + + .dragger { + width: 18px; + height: 100%; + display: flex; + justify-content: space-evenly; + } + + .dragger-line { + width: 2px; + height: 100%; + background-color: black; + } +} + +.button-dropdown-wrapper { + display: flex; + align-content: center; + + &:hover { + background-color: black; + } +} + +.buttonSettings-dropdown { + + &.ProseMirror-menu-dropdown { + width: 10px; + height: 25px; + margin: 0; + padding: 0 2px; + background-color: #323232; + text-align: center; + + &:after { + border-top: 4px solid white; + right: 2px; + } + + &:hover { + background-color: black; + } + } + + &.ProseMirror-menu-dropdown-menu { + min-width: 150px; + left: -27px; + top: 31px; + background-color: #323232; + border: 1px solid #4d4d4d; + color: $light-color-secondary; + // border: none; + // border: 1px solid $light-color-secondary; + border-radius: 0 6px 6px 6px; + padding: 3px; + box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.25); + + .ProseMirror-menu-dropdown-item{ + cursor: default; + + &:last-child { + border-bottom: none; + } + + &:hover { + background-color: #323232; + } + + .button-setting, .button-setting-disabled { + padding: 2px; + border-radius: 2px; + } + + .button-setting:hover { + cursor: pointer; + background-color: black; + } + + .separated-button { + border-top: 1px solid $light-color-secondary; + padding-top: 6px; + } + + input { + color: black; + border: none; + border-radius: 1px; + padding: 3px; + } + + button { + padding: 6px; + background-color: #323232; + border: 1px solid black; + border-radius: 1px; + + &:hover { + background-color: black; + } + } + } + + + } +} + +.colorPicker-wrapper { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + margin-top: 3px; + margin-left: -3px; + width: calc(100% + 6px); +} + +button.colorPicker { + width: 20px; + height: 20px; + border-radius: 15px !important; + margin: 3px; + border: none !important; + + &.active { + border: 2px solid white !important; + } +} diff --git a/src/client/views/nodes/formattedText/marks_rts.ts b/src/client/views/nodes/formattedText/marks_rts.ts new file mode 100644 index 000000000..46bf481fb --- /dev/null +++ b/src/client/views/nodes/formattedText/marks_rts.ts @@ -0,0 +1,296 @@ +import React = require("react"); +import { DOMOutputSpecArray, Fragment, MarkSpec, Node, NodeSpec, Schema, Slice } from "prosemirror-model"; +import { Doc } from "../../../../new_fields/Doc"; + + +const emDOM: DOMOutputSpecArray = ["em", 0]; +const strongDOM: DOMOutputSpecArray = ["strong", 0]; +const codeDOM: DOMOutputSpecArray = ["code", 0]; + +// :: Object [Specs](#model.MarkSpec) for the marks in the schema. +export const marks: { [index: string]: MarkSpec } = { + // :: MarkSpec A link. Has `href` and `title` attributes. `title` + // defaults to the empty string. Rendered and parsed as an `` + // element. + link: { + attrs: { + href: {}, + targetId: { default: "" }, + linkId: { default: "" }, + showPreview: { default: true }, + location: { default: null }, + title: { default: null }, + docref: { default: false } // flags whether the linked text comes from a document within Dash. If so, an attribution label is appended after the text + }, + inclusive: false, + parseDOM: [{ + tag: "a[href]", getAttrs(dom: any) { + return { href: dom.getAttribute("href"), location: dom.getAttribute("location"), title: dom.getAttribute("title"), targetId: dom.getAttribute("id") }; + } + }], + toDOM(node: any) { + return node.attrs.docref && node.attrs.title ? + ["div", ["span", `"`], ["span", 0], ["span", `"`], ["br"], ["a", { ...node.attrs, class: "prosemirror-attribution", title: `${node.attrs.title}` }, node.attrs.title], ["br"]] : + ["a", { ...node.attrs, id: node.attrs.linkId + node.attrs.targetId, title: `${node.attrs.title}` }, 0]; + } + }, + + + // :: MarkSpec Coloring on text. Has `color` attribute that defined the color of the marked text. + pFontColor: { + attrs: { + color: { default: "#000" } + }, + inclusive: true, + parseDOM: [{ + tag: "span", getAttrs(dom: any) { + return { color: dom.getAttribute("color") }; + } + }], + toDOM(node: any) { + return node.attrs.color ? ['span', { style: 'color:' + node.attrs.color }] : ['span', 0]; + } + }, + + marker: { + attrs: { + highlight: { default: "transparent" } + }, + inclusive: true, + parseDOM: [{ + tag: "span", getAttrs(dom: any) { + return { highlight: dom.getAttribute("backgroundColor") }; + } + }], + toDOM(node: any) { + return node.attrs.highlight ? ['span', { style: 'background-color:' + node.attrs.highlight }] : ['span', { style: 'background-color: transparent' }]; + } + }, + + // :: MarkSpec An emphasis mark. Rendered as an `` element. + // Has parse rules that also match `` and `font-style: italic`. + em: { + parseDOM: [{ tag: "i" }, { tag: "em" }, { style: "font-style: italic" }], + toDOM() { return emDOM; } + }, + + // :: MarkSpec A strong mark. Rendered as ``, parse rules + // also match `` and `font-weight: bold`. + strong: { + parseDOM: [{ tag: "strong" }, + { tag: "b" }, + { style: "font-weight" }], + toDOM() { return strongDOM; } + }, + + strikethrough: { + parseDOM: [ + { tag: 'strike' }, + { style: 'text-decoration=line-through' }, + { style: 'text-decoration-line=line-through' } + ], + toDOM: () => ['span', { + style: 'text-decoration-line:line-through' + }] + }, + + subscript: { + excludes: 'superscript', + parseDOM: [ + { tag: 'sub' }, + { style: 'vertical-align=sub' } + ], + toDOM: () => ['sub'] + }, + + superscript: { + excludes: 'subscript', + parseDOM: [ + { tag: 'sup' }, + { style: 'vertical-align=super' } + ], + toDOM: () => ['sup'] + }, + + mbulletType: { + attrs: { + bulletType: { default: "decimal" } + }, + toDOM(node: any) { + return ['span', { + style: `background: ${node.attrs.bulletType === "decimal" ? "yellow" : node.attrs.bulletType === "upper-alpha" ? "blue" : "green"}` + }]; + } + }, + + metadata: { + toDOM() { + return ['span', { style: 'font-size:75%; background:rgba(100, 100, 100, 0.2); ' }]; + } + }, + metadataKey: { + toDOM() { + return ['span', { style: 'font-style:italic; ' }]; + } + }, + metadataVal: { + toDOM() { + return ['span']; + } + }, + + summarizeInclusive: { + parseDOM: [ + { + tag: "span", + getAttrs: (p: any) => { + if (typeof (p) !== "string") { + const style = getComputedStyle(p); + if (style.textDecoration === "underline") return null; + if (p.parentElement.outerHTML.indexOf("text-decoration: underline") !== -1 && + p.parentElement.outerHTML.indexOf("text-decoration-style: solid") !== -1) { + return null; + } + } + return false; + } + }, + ], + inclusive: true, + toDOM() { + return ['span', { + style: 'text-decoration: underline; text-decoration-style: solid; text-decoration-color: rgba(204, 206, 210, 0.92)' + }]; + } + }, + + summarize: { + inclusive: false, + parseDOM: [ + { + tag: "span", + getAttrs: (p: any) => { + if (typeof (p) !== "string") { + const style = getComputedStyle(p); + if (style.textDecoration === "underline") return null; + if (p.parentElement.outerHTML.indexOf("text-decoration: underline") !== -1 && + p.parentElement.outerHTML.indexOf("text-decoration-style: dotted") !== -1) { + return null; + } + } + return false; + } + }, + ], + toDOM() { + return ['span', { + style: 'text-decoration: underline; text-decoration-style: dotted; text-decoration-color: rgba(204, 206, 210, 0.92)' + }]; + } + }, + + underline: { + parseDOM: [ + { + tag: "span", + getAttrs: (p: any) => { + if (typeof (p) !== "string") { + const style = getComputedStyle(p); + if (style.textDecoration === "underline" || p.parentElement.outerHTML.indexOf("text-decoration-style:line") !== -1) { + return null; + } + } + return false; + } + } + // { style: "text-decoration=underline" } + ], + toDOM: () => ['span', { + style: 'text-decoration:underline;text-decoration-style:line' + }] + }, + + search_highlight: { + attrs: { + selected: { default: false } + }, + parseDOM: [{ style: 'background: yellow' }], + toDOM(node: any) { + return ['span', { + style: `background: ${node.attrs.selected ? "orange" : "yellow"}` + }]; + } + }, + + // the id of the user who entered the text + user_mark: { + attrs: { + userid: { default: "" }, + modified: { default: "when?" }, // 1 second intervals since 1970 + }, + group: "inline", + toDOM(node: any) { + const uid = node.attrs.userid.replace(".", "").replace("@", ""); + const min = Math.round(node.attrs.modified / 12); + const hr = Math.round(min / 60); + const day = Math.round(hr / 60 / 24); + const remote = node.attrs.userid !== Doc.CurrentUserEmail ? " userMark-remote" : ""; + return ['span', { class: "userMark-" + uid + remote + " userMark-min-" + min + " userMark-hr-" + hr + " userMark-day-" + day }, 0]; + } + }, + // the id of the user who entered the text + user_tag: { + attrs: { + userid: { default: "" }, + modified: { default: "when?" }, // 1 second intervals since 1970 + tag: { default: "" } + }, + group: "inline", + inclusive: false, + toDOM(node: any) { + const uid = node.attrs.userid.replace(".", "").replace("@", ""); + return ['span', { class: "userTag-" + uid + " userTag-" + node.attrs.tag }, 0]; + } + }, + + + // :: MarkSpec Code font mark. Represented as a `` element. + code: { + parseDOM: [{ tag: "code" }], + toDOM() { return codeDOM; } + }, + + /* FONTS */ + pFontFamily: { + attrs: { + family: { default: "Crimson Text" }, + }, + parseDOM: [{ + tag: "span", getAttrs(dom: any) { + const cstyle = getComputedStyle(dom); + if (cstyle.font) { + if (cstyle.font.indexOf("Times New Roman") !== -1) return { family: "Times New Roman" }; + if (cstyle.font.indexOf("Arial") !== -1) return { family: "Arial" }; + if (cstyle.font.indexOf("Georgia") !== -1) return { family: "Georgia" }; + if (cstyle.font.indexOf("Comic Sans") !== -1) return { family: "Comic Sans MS" }; + if (cstyle.font.indexOf("Tahoma") !== -1) return { family: "Tahoma" }; + if (cstyle.font.indexOf("Crimson") !== -1) return { family: "Crimson Text" }; + } + } + }], + toDOM: (node) => ['span', { + style: `font-family: "${node.attrs.family}";` + }] + }, + + /** FONT SIZES */ + pFontSize: { + attrs: { + fontSize: { default: 10 } + }, + parseDOM: [{ style: 'font-size: 10px;' }], + toDOM: (node) => ['span', { + style: `font-size: ${node.attrs.fontSize}px;` + }] + }, +}; diff --git a/src/client/views/nodes/formattedText/nodes_rts.ts b/src/client/views/nodes/formattedText/nodes_rts.ts new file mode 100644 index 000000000..e7bcf444a --- /dev/null +++ b/src/client/views/nodes/formattedText/nodes_rts.ts @@ -0,0 +1,264 @@ +import React = require("react"); +import { DOMOutputSpecArray, Fragment, MarkSpec, Node, NodeSpec, Schema, Slice } from "prosemirror-model"; +import { bulletList, listItem, orderedList } from 'prosemirror-schema-list'; +import ParagraphNodeSpec from "./ParagraphNodeSpec"; + +const blockquoteDOM: DOMOutputSpecArray = ["blockquote", 0], hrDOM: DOMOutputSpecArray = ["hr"], + preDOM: DOMOutputSpecArray = ["pre", ["code", 0]], brDOM: DOMOutputSpecArray = ["br"], ulDOM: DOMOutputSpecArray = ["ul", 0]; + +// :: Object +// [Specs](#model.NodeSpec) for the nodes defined in this schema. +export const nodes: { [index: string]: NodeSpec } = { + // :: NodeSpec The top level document node. + doc: { + content: "block+" + }, + + footnote: { + group: "inline", + content: "inline*", + inline: true, + attrs: { + visibility: { default: false } + }, + // This makes the view treat the node as a leaf, even though it + // technically has content + atom: true, + toDOM: () => ["footnote", 0], + parseDOM: [{ tag: "footnote" }] + }, + + paragraph: ParagraphNodeSpec, + + // :: NodeSpec A blockquote (`
`) wrapping one or more blocks. + blockquote: { + content: "block+", + group: "block", + defining: true, + parseDOM: [{ tag: "blockquote" }], + toDOM() { return blockquoteDOM; } + }, + + // :: NodeSpec A horizontal rule (`
`). + horizontal_rule: { + group: "block", + parseDOM: [{ tag: "hr" }], + toDOM() { return hrDOM; } + }, + + // :: NodeSpec A heading textblock, with a `level` attribute that + // should hold the number 1 to 6. Parsed and serialized as `

` to + // `

` elements. + heading: { + attrs: { level: { default: 1 } }, + content: "inline*", + group: "block", + defining: true, + parseDOM: [{ tag: "h1", attrs: { level: 1 } }, + { tag: "h2", attrs: { level: 2 } }, + { tag: "h3", attrs: { level: 3 } }, + { tag: "h4", attrs: { level: 4 } }, + { tag: "h5", attrs: { level: 5 } }, + { tag: "h6", attrs: { level: 6 } }], + toDOM(node: any) { return ["h" + node.attrs.level, 0]; } + }, + + // :: NodeSpec A code listing. Disallows marks or non-text inline + // nodes by default. Represented as a `
` element with a
+    // `` element inside of it.
+    code_block: {
+        content: "text*",
+        marks: "",
+        group: "block",
+        code: true,
+        defining: true,
+        parseDOM: [{ tag: "pre", preserveWhitespace: "full" }],
+        toDOM() { return preDOM; }
+    },
+
+    // :: NodeSpec The text node.
+    text: {
+        group: "inline"
+    },
+
+    dashComment: {
+        attrs: {
+            docid: { default: "" },
+        },
+        inline: true,
+        group: "inline",
+        toDOM(node) {
+            const attrs = { style: `width: 40px` };
+            return ["span", { ...node.attrs, ...attrs }, "←"];
+        },
+    },
+
+    summary: {
+        inline: true,
+        attrs: {
+            visibility: { default: false },
+            text: { default: undefined },
+            textslice: { default: undefined },
+        },
+        group: "inline",
+        toDOM(node) {
+            const attrs = { style: `width: 40px` };
+            return ["span", { ...node.attrs, ...attrs }];
+        },
+    },
+
+    // :: NodeSpec An inline image (``) node. Supports `src`,
+    // `alt`, and `href` attributes. The latter two default to the empty
+    // string.
+    image: {
+        inline: true,
+        attrs: {
+            src: {},
+            agnostic: { default: null },
+            width: { default: 100 },
+            alt: { default: null },
+            title: { default: null },
+            float: { default: "left" },
+            location: { default: "onRight" },
+            docid: { default: "" }
+        },
+        group: "inline",
+        draggable: true,
+        parseDOM: [{
+            tag: "img[src]", getAttrs(dom: any) {
+                return {
+                    src: dom.getAttribute("src"),
+                    title: dom.getAttribute("title"),
+                    alt: dom.getAttribute("alt"),
+                    width: Math.min(100, Number(dom.getAttribute("width"))),
+                };
+            }
+        }],
+        // TODO if we don't define toDom, dragging the image crashes. Why?
+        toDOM(node) {
+            const attrs = { style: `width: ${node.attrs.width}` };
+            return ["img", { ...node.attrs, ...attrs }];
+        }
+    },
+
+    dashDoc: {
+        inline: true,
+        attrs: {
+            width: { default: 200 },
+            height: { default: 100 },
+            title: { default: null },
+            float: { default: "right" },
+            location: { default: "onRight" },
+            hidden: { default: false },
+            fieldKey: { default: "" },
+            docid: { default: "" },
+            alias: { default: "" }
+        },
+        group: "inline",
+        draggable: false,
+        toDOM(node) {
+            const attrs = { style: `width: ${node.attrs.width}, height: ${node.attrs.height}` };
+            return ["div", { ...node.attrs, ...attrs }];
+        }
+    },
+
+    dashField: {
+        inline: true,
+        attrs: {
+            fieldKey: { default: "" },
+            docid: { default: "" }
+        },
+        group: "inline",
+        draggable: false,
+        toDOM(node) {
+            const attrs = { style: `width: ${node.attrs.width}, height: ${node.attrs.height}` };
+            return ["div", { ...node.attrs, ...attrs }];
+        }
+    },
+
+    video: {
+        inline: true,
+        attrs: {
+            src: {},
+            width: { default: "100px" },
+            alt: { default: null },
+            title: { default: null }
+        },
+        group: "inline",
+        draggable: true,
+        parseDOM: [{
+            tag: "video[src]", getAttrs(dom: any) {
+                return {
+                    src: dom.getAttribute("src"),
+                    title: dom.getAttribute("title"),
+                    alt: dom.getAttribute("alt"),
+                    width: Math.min(100, Number(dom.getAttribute("width"))),
+                };
+            }
+        }],
+        toDOM(node) {
+            const attrs = { style: `width: ${node.attrs.width}` };
+            return ["video", { ...node.attrs, ...attrs }];
+        }
+    },
+
+    // :: NodeSpec A hard line break, represented in the DOM as `
`. + hard_break: { + inline: true, + group: "inline", + selectable: false, + parseDOM: [{ tag: "br" }], + toDOM() { return brDOM; } + }, + + ordered_list: { + ...orderedList, + content: 'list_item+', + group: 'block', + attrs: { + bulletStyle: { default: 0 }, + mapStyle: { default: "decimal" }, + setFontSize: { default: undefined }, + setFontFamily: { default: "inherit" }, + setFontColor: { default: "inherit" }, + inheritedFontSize: { default: undefined }, + visibility: { default: true }, + indent: { default: undefined } + }, + toDOM(node: Node) { + if (node.attrs.mapStyle === "bullet") return ['ul', 0]; + const map = node.attrs.bulletStyle ? node.attrs.mapStyle + node.attrs.bulletStyle : ""; + const fsize = node.attrs.setFontSize ? node.attrs.setFontSize : node.attrs.inheritedFontSize; + const ffam = node.attrs.setFontFamily; + const color = node.attrs.setFontColor; + return node.attrs.visibility ? + ['ol', { class: `${map}-ol`, style: `list-style: none; font-size: ${fsize}; font-family: ${ffam}; color:${color}; margin-left: ${node.attrs.indent}` }, 0] : + ['ol', { class: `${map}-ol`, style: `list-style: none;` }]; + } + }, + + bullet_list: { + ...bulletList, + content: 'list_item+', + group: 'block', + // parseDOM: [{ tag: "ul" }, { style: 'list-style-type=disc' }], + toDOM(node: Node) { + return ['ul', 0]; + } + }, + + list_item: { + attrs: { + bulletStyle: { default: 0 }, + mapStyle: { default: "decimal" }, + visibility: { default: true } + }, + ...listItem, + content: 'paragraph block*', + toDOM(node: any) { + const map = node.attrs.bulletStyle ? node.attrs.mapStyle + node.attrs.bulletStyle : ""; + return node.attrs.visibility ? ["li", { class: `${map}` }, 0] : ["li", { class: `${map}` }, "..."]; + //return ["li", { class: `${map}` }, 0]; + } + }, +}; \ No newline at end of file diff --git a/src/client/views/nodes/formattedText/prosemirrorPatches.js b/src/client/views/nodes/formattedText/prosemirrorPatches.js new file mode 100644 index 000000000..269423482 --- /dev/null +++ b/src/client/views/nodes/formattedText/prosemirrorPatches.js @@ -0,0 +1,139 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var prosemirrorInputRules = require('prosemirror-inputrules'); +var prosemirrorTransform = require('prosemirror-transform'); +var prosemirrorModel = require('prosemirror-model'); + +exports.liftListItem = liftListItem; +exports.sinkListItem = sinkListItem; +exports.wrappingInputRule = wrappingInputRule; +// :: (NodeType) → (state: EditorState, dispatch: ?(tr: Transaction)) → bool +// Create a command to lift the list item around the selection up into +// a wrapping list. +function liftListItem(itemType) { + return function (tx, dispatch) { + var ref = tx.selection; + var $from = ref.$from; + var $to = ref.$to; + var range = $from.blockRange($to, function (node) { return node.childCount && node.firstChild.type == itemType; }); + if (!range) { return false } + if (!dispatch) { return true } + if ($from.node(range.depth - 1).type == itemType) // Inside a parent list + { return liftToOuterList(tx, dispatch, itemType, range) } + else // Outer list node + { return liftOutOfList(tx, dispatch, range) } + } +} + +function liftToOuterList(tr, dispatch, itemType, range) { + var end = range.end, endOfList = range.$to.end(range.depth); + if (end < endOfList) { + // There are siblings after the lifted items, which must become + // children of the last item + tr.step(new prosemirrorTransform.ReplaceAroundStep(end - 1, endOfList, end, endOfList, + new prosemirrorModel.Slice(prosemirrorModel.Fragment.from(itemType.create(null, range.parent.copy())), 1, 0), 1, true)); + range = new prosemirrorModel.NodeRange(tr.doc.resolve(range.$from.pos), tr.doc.resolve(endOfList), range.depth); + } + dispatch(tr.lift(range, prosemirrorTransform.liftTarget(range)).scrollIntoView()); + return true +} + +function liftOutOfList(tr, dispatch, range) { + var list = range.parent; + // Merge the list items into a single big item + for (var pos = range.end, i = range.endIndex - 1, e = range.startIndex; i > e; i--) { + pos -= list.child(i).nodeSize; + tr.delete(pos - 1, pos + 1); + } + var $start = tr.doc.resolve(range.start), item = $start.nodeAfter; + var atStart = range.startIndex == 0, atEnd = range.endIndex == list.childCount; + var parent = $start.node(-1), indexBefore = $start.index(-1); + if (!parent.canReplace(indexBefore + (atStart ? 0 : 1), indexBefore + 1, + item.content.append(atEnd ? prosemirrorModel.Fragment.empty : prosemirrorModel.Fragment.from(list)))) { return false } + var start = $start.pos, end = start + item.nodeSize; + // Strip off the surrounding list. At the sides where we're not at + // the end of the list, the existing list is closed. At sides where + // this is the end, it is overwritten to its end. + tr.step(new prosemirrorTransform.ReplaceAroundStep(start - (atStart ? 1 : 0), end + (atEnd ? 1 : 0), start + 1, end - 1, + new prosemirrorModel.Slice((atStart ? prosemirrorModel.Fragment.empty : prosemirrorModel.Fragment.from(list.copy(prosemirrorModel.Fragment.empty))) + .append(atEnd ? prosemirrorModel.Fragment.empty : prosemirrorModel.Fragment.from(list.copy(prosemirrorModel.Fragment.empty))), + atStart ? 0 : 1, atEnd ? 0 : 1), atStart ? 0 : 1)); + dispatch(tr.scrollIntoView()); + return true +} + +// :: (NodeType) → (state: EditorState, dispatch: ?(tr: Transaction)) → bool +// Create a command to sink the list item around the selection down +// into an inner list. +function sinkListItem(itemType) { + return function (state, dispatch) { + var ref = state.selection; + var $from = ref.$from; + var $to = ref.$to; + var range = $from.blockRange($to, function (node) { return node.childCount && node.firstChild.type == itemType; }); + if (!range) { return false } + var startIndex = range.startIndex; + if (startIndex == 0) { return false } + var parent = range.parent, nodeBefore = parent.child(startIndex - 1); + if (nodeBefore.type != itemType) { return false; } + + if (dispatch) { + var nestedBefore = nodeBefore.lastChild && nodeBefore.lastChild.type == parent.type; + var inner = prosemirrorModel.Fragment.from(nestedBefore ? itemType.create() : null); + let slice = new prosemirrorModel.Slice(prosemirrorModel.Fragment.from(itemType.create(null, prosemirrorModel.Fragment.from(parent.type.create({ ...parent.attrs, fontSize: parent.attrs.fontSize ? parent.attrs.fontSize - 4 : undefined }, inner)))), + nestedBefore ? 3 : 1, 0); + var before = range.start, after = range.end; + dispatch(state.tr.step(new prosemirrorTransform.ReplaceAroundStep(before - (nestedBefore ? 3 : 1), after, + before, after, slice, 1, true)) + .scrollIntoView()); + } + return true + } +} + +function findWrappingOutside(range, type) { + var parent = range.parent; + var startIndex = range.startIndex; + var endIndex = range.endIndex; + var around = parent.contentMatchAt(startIndex).findWrapping(type); + if (!around) { return null } + var outer = around.length ? around[0] : type; + return parent.canReplaceWith(startIndex, endIndex, outer) ? around : null +} + +function findWrappingInside(range, type) { + var parent = range.parent; + var startIndex = range.startIndex; + var endIndex = range.endIndex; + var inner = parent.child(startIndex); + var inside = type.contentMatch.findWrapping(inner.type); + if (!inside) { return null } + var lastType = inside.length ? inside[inside.length - 1] : type; + var innerMatch = lastType.contentMatch; + for (var i = startIndex; innerMatch && i < endIndex; i++) { innerMatch = innerMatch.matchType(parent.child(i).type); } + if (!innerMatch || !innerMatch.validEnd) { return null } + return inside +} +function findWrapping(range, nodeType, attrs, innerRange, customWithAttrs = null) { + if (innerRange === void 0) innerRange = range; + let withAttrs = (type) => ({ type: type, attrs: null }); + var around = findWrappingOutside(range, nodeType); + var inner = around && findWrappingInside(innerRange, nodeType); + if (!inner) { return null } + return around.map(withAttrs).concat({ type: nodeType, attrs: attrs }).concat(inner.map(customWithAttrs ? customWithAttrs : withAttrs)) +} +function wrappingInputRule(regexp, nodeType, getAttrs, joinPredicate, customWithAttrs = null) { + return new prosemirrorInputRules.InputRule(regexp, function (state, match, start, end) { + var attrs = getAttrs instanceof Function ? getAttrs(match) : getAttrs; + var tr = state.tr.delete(start, end); + var $start = tr.doc.resolve(start), range = $start.blockRange(), wrapping = range && findWrapping(range, nodeType, attrs, undefined, customWithAttrs); + if (!wrapping) { return null } + tr.wrap(range, wrapping); + var before = tr.doc.resolve(start - 1).nodeBefore; + if (before && before.type == nodeType && prosemirrorTransform.canJoin(tr.doc, start - 1) && + (!joinPredicate || joinPredicate(match, before))) { tr.join(start - 1); } + return tr + }) +} \ No newline at end of file diff --git a/src/client/views/nodes/formattedText/schema_rts.ts b/src/client/views/nodes/formattedText/schema_rts.ts new file mode 100644 index 000000000..83561073c --- /dev/null +++ b/src/client/views/nodes/formattedText/schema_rts.ts @@ -0,0 +1,26 @@ +import { Schema, Slice } from "prosemirror-model"; + +import { nodes } from "./nodes_rts"; +import { marks } from "./marks_rts"; + + +// :: Schema +// This schema rougly corresponds to the document schema used by +// [CommonMark](http://commonmark.org/), minus the list elements, +// which are defined in the [`prosemirror-schema-list`](#schema-list) +// module. +// +// To reuse elements from this schema, extend or read from its +// `spec.nodes` and `spec.marks` [properties](#model.Schema.spec). + +export const schema = new Schema({ nodes, marks }); + +const fromJson = schema.nodeFromJSON; + +schema.nodeFromJSON = (json: any) => { + const node = fromJson(json); + if (json.type === schema.nodes.summary.name) { + node.attrs.text = Slice.fromJSON(schema, node.attrs.textslice); + } + return node; +}; \ No newline at end of file diff --git a/src/mobile/MobileInterface.tsx b/src/mobile/MobileInterface.tsx index 73ebbb303..69a80e1b4 100644 --- a/src/mobile/MobileInterface.tsx +++ b/src/mobile/MobileInterface.tsx @@ -7,7 +7,7 @@ import { observer } from 'mobx-react'; import { DocServer } from '../client/DocServer'; import { Docs } from '../client/documents/Documents'; import { DocumentManager } from '../client/util/DocumentManager'; -import RichTextMenu from '../client/util/RichTextMenu'; +import RichTextMenu from '../client/views/nodes/formattedText/RichTextMenu'; import { Scripting } from '../client/util/Scripting'; import { Transform } from '../client/util/Transform'; import { CollectionView } from '../client/views/collections/CollectionView'; diff --git a/src/new_fields/RichTextUtils.ts b/src/new_fields/RichTextUtils.ts index c9960e783..c475d0d73 100644 --- a/src/new_fields/RichTextUtils.ts +++ b/src/new_fields/RichTextUtils.ts @@ -4,11 +4,11 @@ import { Fragment, Mark, Node } from "prosemirror-model"; import { sinkListItem } from "prosemirror-schema-list"; import { Utils } from "../Utils"; import { Docs } from "../client/documents/Documents"; -import { schema } from "../client/util/schema_rts"; +import { schema } from "../client/views/nodes/formattedText/schema_rts"; import { GooglePhotos } from "../client/apis/google_docs/GooglePhotosClientUtils"; import { DocServer } from "../client/DocServer"; import { Networking } from "../client/Network"; -import { FormattedTextBox } from "../client/views/nodes/FormattedTextBox"; +import { FormattedTextBox } from "../client/views/nodes/formattedText/FormattedTextBox"; import { Doc, Opt } from "./Doc"; import { Id } from "./FieldSymbols"; import { RichTextField } from "./RichTextField"; diff --git a/src/server/authentication/models/current_user_utils.ts b/src/server/authentication/models/current_user_utils.ts index 1d41c3570..08dc21460 100644 --- a/src/server/authentication/models/current_user_utils.ts +++ b/src/server/authentication/models/current_user_utils.ts @@ -17,7 +17,7 @@ import { CollectionViewType } from "../../../client/views/collections/Collection import { makeTemplate } from "../../../client/util/DropConverter"; import { RichTextField } from "../../../new_fields/RichTextField"; import { PrefetchProxy } from "../../../new_fields/Proxy"; -import { FormattedTextBox } from "../../../client/views/nodes/FormattedTextBox"; +import { FormattedTextBox } from "../../../client/views/nodes/formattedText/FormattedTextBox"; import { MainView } from "../../../client/views/MainView"; import { DocumentType } from "../../../client/documents/DocumentTypes"; import { SchemaHeaderField } from "../../../new_fields/SchemaHeaderField"; -- cgit v1.2.3-70-g09d2 From 6b2896756c55727ed397c223187cb03fe8a51a59 Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Tue, 28 Apr 2020 15:51:34 -0400 Subject: ignore rightlick events on masonry header to allow for context menu from doc decorations --- src/client/views/collections/CollectionMasonryViewFieldRow.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/collections/CollectionMasonryViewFieldRow.tsx b/src/client/views/collections/CollectionMasonryViewFieldRow.tsx index 3bada43f0..7ad15ef41 100644 --- a/src/client/views/collections/CollectionMasonryViewFieldRow.tsx +++ b/src/client/views/collections/CollectionMasonryViewFieldRow.tsx @@ -183,8 +183,10 @@ export class CollectionMasonryViewFieldRow extends React.Component) => { - setupMoveUpEvents(this, e, this.headerMove, emptyFunction, () => (this.props.parent.props.Document._chromeStatus === "disabled") && this.collapseSection(e)); - this._createAliasSelected = false; + if (e.button === 0 && !e.ctrlKey) { + setupMoveUpEvents(this, e, this.headerMove, emptyFunction, () => (this.props.parent.props.Document._chromeStatus === "disabled") && this.collapseSection(e)); + this._createAliasSelected = false; + } } renderColorPicker = () => { -- cgit v1.2.3-70-g09d2 From a28420bf41d8f0064ef38daed5ba53dc3534f11f Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Tue, 28 Apr 2020 17:41:04 -0400 Subject: from last --- .../views/collections/collectionFreeForm/CollectionFreeFormView.tsx | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/client/views/collections') diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index b9e80bb43..d85233041 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -1093,6 +1093,7 @@ export class CollectionFreeFormView extends CollectionSubView { this.props.Document._panX = this.props.Document._panY = 0; this.props.Document.scale = 1; }, icon: "compress-arrows-alt" }); optionItems.push({ description: `${this.Document._LODdisable ? "Enable LOD" : "Disable LOD"}`, event: () => this.Document._LODdisable = !this.Document._LODdisable, icon: "table" }); optionItems.push({ description: `${this.fitToContent ? "Unset" : "Set"} Fit To Container`, event: () => this.Document._fitToBox = !this.fitToContent, icon: !this.fitToContent ? "expand-arrows-alt" : "compress-arrows-alt" }); @@ -1170,6 +1171,7 @@ export class CollectionFreeFormView extends CollectionSubView {this.children} + ; } -- cgit v1.2.3-70-g09d2 From 0d17c38d1fa4a2db3d11e57d4325f5c5ee311d59 Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Wed, 29 Apr 2020 11:15:57 -0400 Subject: added props to fieldview / text box for height/width/background/color to use in layout strings. --- src/client/views/collections/CollectionSubView.tsx | 25 +++++++++++----------- src/client/views/nodes/FieldView.tsx | 5 +++++ .../views/nodes/formattedText/FormattedTextBox.tsx | 6 +++--- src/new_fields/Doc.ts | 1 - src/new_fields/util.ts | 5 ++--- 5 files changed, 22 insertions(+), 20 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/collections/CollectionSubView.tsx b/src/client/views/collections/CollectionSubView.tsx index 9ddc1296e..1bfd408f8 100644 --- a/src/client/views/collections/CollectionSubView.tsx +++ b/src/client/views/collections/CollectionSubView.tsx @@ -1,31 +1,30 @@ import { action, computed, IReactionDisposer, reaction } from "mobx"; +import { basename } from 'path'; import CursorField from "../../../new_fields/CursorField"; -import { Doc, DocListCast, Opt, WidthSym, HeightSym } from "../../../new_fields/Doc"; +import { Doc, Opt } from "../../../new_fields/Doc"; import { Id } from "../../../new_fields/FieldSymbols"; import { List } from "../../../new_fields/List"; import { listSpec } from "../../../new_fields/Schema"; import { ScriptField } from "../../../new_fields/ScriptField"; -import { Cast, StrCast } from "../../../new_fields/Types"; +import { Cast } from "../../../new_fields/Types"; +import { GestureUtils } from "../../../pen-gestures/GestureUtils"; import { CurrentUserUtils } from "../../../server/authentication/models/current_user_utils"; +import { Upload } from "../../../server/SharedMediaTypes"; import { Utils } from "../../../Utils"; +import { GooglePhotos } from "../../apis/google_docs/GooglePhotosClientUtils"; import { DocServer } from "../../DocServer"; -import { DocumentType } from "../../documents/DocumentTypes"; import { Docs, DocumentOptions } from "../../documents/Documents"; -import { DragManager, dropActionType } from "../../util/DragManager"; +import { DocumentType } from "../../documents/DocumentTypes"; +import { Networking } from "../../Network"; +import { DragManager } from "../../util/DragManager"; +import { ImageUtils } from "../../util/Import & Export/ImageUtils"; +import { InteractionUtils } from "../../util/InteractionUtils"; import { undoBatch, UndoManager } from "../../util/UndoManager"; +import { DocComponent } from "../DocComponent"; import { FieldViewProps } from "../nodes/FieldView"; import { FormattedTextBox, GoogleRef } from "../nodes/formattedText/FormattedTextBox"; import { CollectionView } from "./CollectionView"; import React = require("react"); -import { DocComponent } from "../DocComponent"; -var path = require('path'); -import { basename } from 'path'; -import { GooglePhotos } from "../../apis/google_docs/GooglePhotosClientUtils"; -import { ImageUtils } from "../../util/Import & Export/ImageUtils"; -import { Networking } from "../../Network"; -import { GestureUtils } from "../../../pen-gestures/GestureUtils"; -import { InteractionUtils } from "../../util/InteractionUtils"; -import { Upload } from "../../../server/SharedMediaTypes"; export interface CollectionViewProps extends FieldViewProps { addDocument: (document: Doc) => boolean; diff --git a/src/client/views/nodes/FieldView.tsx b/src/client/views/nodes/FieldView.tsx index a3790d38b..0b9edbcd3 100644 --- a/src/client/views/nodes/FieldView.tsx +++ b/src/client/views/nodes/FieldView.tsx @@ -51,6 +51,11 @@ export interface FieldViewProps { ContentScaling: () => number; ChromeHeight?: () => number; childLayoutTemplate?: () => Opt; + // properties intended to be used from within layout strings (otherwise use the function equivalents that work more efficiently with React) + height?: number; + width?: number; + background?: string; + color?: string; } @observer diff --git a/src/client/views/nodes/formattedText/FormattedTextBox.tsx b/src/client/views/nodes/formattedText/FormattedTextBox.tsx index 248b4f467..c4e387e5a 100644 --- a/src/client/views/nodes/formattedText/FormattedTextBox.tsx +++ b/src/client/views/nodes/formattedText/FormattedTextBox.tsx @@ -1224,10 +1224,10 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp
doc[key]); if (field instanceof RefField) { copy[key] = field; } else if (cfield instanceof ComputedField) { diff --git a/src/new_fields/util.ts b/src/new_fields/util.ts index 740a77847..8c719ccd8 100644 --- a/src/new_fields/util.ts +++ b/src/new_fields/util.ts @@ -75,15 +75,14 @@ const _setterImpl = action(function (target: any, prop: string | symbol | number } else { target.__fields[prop] = value; } - // if (typeof value === "object" && !(value instanceof ObjectField)) debugger; + if (typeof value === "object" && !(value instanceof ObjectField)) debugger; if (writeToServer) { if (value === undefined) target[Update]({ '$unset': { ["fields." + prop]: "" } }); else target[Update]({ '$set': { ["fields." + prop]: value instanceof ObjectField ? SerializationHelper.Serialize(value) : (value === undefined ? null : value) } }); } else { DocServer.registerDocWithCachedUpdate(receiver, prop as string, curValue); } - UndoManager. - AddEvent({ + UndoManager.AddEvent({ redo: () => receiver[prop] = value, undo: () => receiver[prop] = curValue }); -- cgit v1.2.3-70-g09d2 From d66aaffc27405f4231a29cd6edda3477077ae946 Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Wed, 29 Apr 2020 13:48:13 -0400 Subject: fixes for text layout strings. --- src/client/views/animationtimeline/Keyframe.tsx | 4 +- .../collections/collectionFreeForm/MarqueeView.tsx | 2 +- src/client/views/nodes/DocumentBox.tsx | 27 ++- .../views/nodes/formattedText/DashDocView.tsx | 2 +- .../views/nodes/formattedText/FormattedTextBox.tsx | 5 +- .../views/nodes/formattedText/RichTextSchema.tsx | 181 --------------------- .../authentication/models/current_user_utils.ts | 14 +- 7 files changed, 28 insertions(+), 207 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/animationtimeline/Keyframe.tsx b/src/client/views/animationtimeline/Keyframe.tsx index a3407f653..bbd7b2676 100644 --- a/src/client/views/animationtimeline/Keyframe.tsx +++ b/src/client/views/animationtimeline/Keyframe.tsx @@ -225,7 +225,7 @@ export class Keyframe extends React.Component { this._mouseToggled = true; } const left = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.left, this.regiondata, this.regions)!; - const right = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.right, this.regiondata, this.regions!); + const right = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.right, this.regiondata, this.regions)!; const prevX = this.regiondata.position; const futureX = this.regiondata.position + KeyframeFunc.convertPixelTime(e.movementX, "mili", "time", this.props.tickSpacing, this.props.tickIncrement); if (futureX <= 0) { @@ -495,7 +495,7 @@ export class Keyframe extends React.Component { } else { return
-
+
; } }); } diff --git a/src/client/views/collections/collectionFreeForm/MarqueeView.tsx b/src/client/views/collections/collectionFreeForm/MarqueeView.tsx index 2d3bb6f3c..c70301b2f 100644 --- a/src/client/views/collections/collectionFreeForm/MarqueeView.tsx +++ b/src/client/views/collections/collectionFreeForm/MarqueeView.tsx @@ -113,7 +113,7 @@ export class MarqueeView extends React.Component; @@ -28,7 +27,7 @@ export class DocHolderBox extends ViewBoxAnnotatableComponent this.contentDoc[this.props.fieldKey], (data) => { + this._prevSelectionDisposer = reaction(() => this.layoutDoc[this.props.fieldKey], (data) => { if (data instanceof Doc && !this.isSelectionLocked()) { this._selections.indexOf(data) !== -1 && this._selections.splice(this._selections.indexOf(data), 1); this._selections.push(data); @@ -42,22 +41,20 @@ export class DocHolderBox extends ViewBoxAnnotatableComponent { const funcs: ContextMenuProps[] = []; funcs.push({ description: (this.isSelectionLocked() ? "Show" : "Lock") + " Selection", event: () => this.toggleLockSelection, icon: "expand-arrows-alt" }); - funcs.push({ description: (this.props.Document.excludeCollections ? "Include" : "Exclude") + " Collections", event: () => Doc.GetProto(this.props.Document).excludeCollections = !this.props.Document.excludeCollections, icon: "expand-arrows-alt" }); - funcs.push({ description: `${this.props.Document.forceActive ? "Select" : "Force"} Contents Active`, event: () => this.props.Document.forceActive = !this.props.Document.forceActive, icon: "project-diagram" }); + funcs.push({ description: (this.layoutDoc.excludeCollections ? "Include" : "Exclude") + " Collections", event: () => this.layoutDoc.excludeCollections = !this.layoutDoc.excludeCollections, icon: "expand-arrows-alt" }); + funcs.push({ description: `${this.layoutDoc.forceActive ? "Select" : "Force"} Contents Active`, event: () => this.layoutDoc.forceActive = !this.layoutDoc.forceActive, icon: "project-diagram" }); + funcs.push({ description: `Show ${this.layoutDoc.childTemplateName !== "keyValue" ? "key values" : "contents"}`, event: () => this.layoutDoc.childTemplateName = this.layoutDoc.childTemplateName ? undefined : "keyValue", icon: "project-diagram" }); ContextMenu.Instance.addItem({ description: "Options...", subitems: funcs, icon: "asterisk" }); } - @computed get contentDoc() { - return (this.props.Document.isTemplateDoc || this.props.Document.isTemplateForField ? this.props.Document : Doc.GetProto(this.props.Document)); - } lockSelection = () => { - this.contentDoc[this.props.fieldKey] = this.props.Document[this.props.fieldKey]; + this.layoutDoc[this.props.fieldKey] = this.layoutDoc[this.props.fieldKey]; } showSelection = () => { - this.contentDoc[this.props.fieldKey] = ComputedField.MakeFunction(`selectedDocs(self,this.excludeCollections,[_last_])?.[0]`); + this.layoutDoc[this.props.fieldKey] = ComputedField.MakeFunction(`selectedDocs(self,this.excludeCollections,[_last_])?.[0]`); } isSelectionLocked = () => { - const kvpstring = Field.toKeyValueString(this.contentDoc, this.props.fieldKey); + const kvpstring = Field.toKeyValueString(this.layoutDoc, this.props.fieldKey); return !kvpstring || kvpstring.includes("DOC"); } toggleLockSelection = () => { @@ -67,13 +64,13 @@ export class DocHolderBox extends ViewBoxAnnotatableComponent { this.lockSelection(); if (this._curSelection > 0) { - this.contentDoc[this.props.fieldKey] = this._selections[--this._curSelection]; + this.layoutDoc[this.props.fieldKey] = this._selections[--this._curSelection]; return true; } } nextSelection = () => { if (this._curSelection < this._selections.length - 1 && this._selections.length) { - this.contentDoc[this.props.fieldKey] = this._selections[++this._curSelection]; + this.layoutDoc[this.props.fieldKey] = this._selections[++this._curSelection]; return true; } } @@ -107,8 +104,8 @@ export class DocHolderBox extends ViewBoxAnnotatableComponent this.props.PanelHeight() - 2 * this.yPad; getTransform = () => this.props.ScreenToLocalTransform().translate(-this.xPad, -this.yPad); get renderContents() { - const containedDoc = Cast(this.contentDoc[this.props.fieldKey], Doc, null); - const childTemplateName = StrCast(this.props.Document.childTemplateName); + const containedDoc = Cast(this.dataDoc[this.props.fieldKey], Doc, null); + const childTemplateName = StrCast(this.layoutDoc.childTemplateName); if (containedDoc && childTemplateName && !containedDoc["layout_" + childTemplateName]) { setTimeout(() => { Doc.createCustomView(containedDoc, Docs.Create.StackingDocument, childTemplateName); @@ -145,7 +142,7 @@ export class DocHolderBox extends ViewBoxAnnotatableComponent { if (dashDocBase instanceof Doc) { const aliasedDoc = Doc.MakeAlias(dashDocBase, docid + alias); aliasedDoc.layoutKey = "layout"; - node.attrs.fieldKey && DocumentView.makeCustomViewClicked(aliasedDoc, Docs.Create.StackingDocument, node.attrs.fieldKey, undefined); + node.attrs.fieldKey && Doc.makeCustomViewClicked(aliasedDoc, Docs.Create.StackingDocument, node.attrs.fieldKey, undefined); this._dashDoc = aliasedDoc; // self.doRender(aliasedDoc, removeDoc, node, view, getPos); } diff --git a/src/client/views/nodes/formattedText/FormattedTextBox.tsx b/src/client/views/nodes/formattedText/FormattedTextBox.tsx index c4e387e5a..782a91547 100644 --- a/src/client/views/nodes/formattedText/FormattedTextBox.tsx +++ b/src/client/views/nodes/formattedText/FormattedTextBox.tsx @@ -418,9 +418,10 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp const cm = ContextMenu.Instance; const funcs: ContextMenuProps[] = []; - this.props.Document.isTemplateDoc && funcs.push({ description: "Make Default Layout", event: async () => Doc.UserDoc().defaultTextLayout = new PrefetchProxy(this.props.Document), icon: "eye" }); + this.rootDoc.isTemplateDoc && funcs.push({ description: "Make Default Layout", event: async () => Doc.UserDoc().defaultTextLayout = new PrefetchProxy(this.props.Document), icon: "eye" }); + !this.rootDoc.isTemplateDoc && funcs.push({ description: "Show Template", event: async () => this.props.addDocTab(Doc.GetProto(this.layoutDoc), "onRight"), icon: "eye" }); funcs.push({ description: "Reset Default Layout", event: () => Doc.UserDoc().defaultTextLayout = undefined, icon: "eye" }); - !this.props.Document.rootDocument && funcs.push({ + !this.rootDoc.isTemplateDoc && funcs.push({ description: "Make Template", event: () => { this.props.Document.isTemplateDoc = makeTemplate(this.props.Document); Doc.AddDocToList(Cast(Doc.UserDoc()["template-notes"], Doc, null), "data", this.props.Document); diff --git a/src/client/views/nodes/formattedText/RichTextSchema.tsx b/src/client/views/nodes/formattedText/RichTextSchema.tsx index 33caf5751..cdb7374f8 100644 --- a/src/client/views/nodes/formattedText/RichTextSchema.tsx +++ b/src/client/views/nodes/formattedText/RichTextSchema.tsx @@ -342,187 +342,6 @@ export class DashDocView { } } -export class DashFieldView { - _fieldWrapper: HTMLDivElement; // container for label and value - _labelSpan: HTMLSpanElement; // field label - _fieldSpan: HTMLSpanElement; // field value - _fieldCheck: HTMLInputElement; - _enumerables: HTMLDivElement; // field value - _reactionDisposer: IReactionDisposer | undefined; - _textBoxDoc: Doc; - @observable _dashDoc: Doc | undefined; - _fieldKey: string; - _options: Doc[] = []; - - constructor(node: any, view: any, getPos: any, tbox: FormattedTextBox) { - this._fieldKey = node.attrs.fieldKey; - this._textBoxDoc = tbox.props.Document; - this._fieldWrapper = document.createElement("p"); - this._fieldWrapper.style.width = node.attrs.width; - this._fieldWrapper.style.height = node.attrs.height; - this._fieldWrapper.style.fontWeight = "bold"; - this._fieldWrapper.style.position = "relative"; - this._fieldWrapper.style.display = "inline-block"; - - const self = this; - - this._enumerables = document.createElement("div"); - this._enumerables.style.width = "10px"; - this._enumerables.style.height = "10px"; - this._enumerables.style.position = "relative"; - this._enumerables.style.display = "none"; - - //Moved - this._enumerables.onpointerdown = async (e) => { - e.stopPropagation(); - const collview = await Doc.addFieldEnumerations(self._textBoxDoc, self._fieldKey, [{ title: self._fieldSpan.innerText }]); - collview instanceof Doc && tbox.props.addDocTab(collview, "onRight"); - }; - //Moved - const updateText = (forceMatch: boolean) => { - self._enumerables.style.display = "none"; - const newText = self._fieldSpan.innerText.startsWith(":=") || self._fieldSpan.innerText.startsWith("=:=") ? ":=-computed-" : self._fieldSpan.innerText; - - // look for a document whose id === the fieldKey being displayed. If there's a match, then that document - // holds the different enumerated values for the field in the titles of its collected documents. - // if there's a partial match from the start of the input text, complete the text --- TODO: make this an auto suggest box and select from a drop down. - DocServer.GetRefField(self._fieldKey).then(options => { - let modText = ""; - (options instanceof Doc) && DocListCast(options.data).forEach(opt => (forceMatch ? StrCast(opt.title).startsWith(newText) : StrCast(opt.title) === newText) && (modText = StrCast(opt.title))); - if (modText) { - self._fieldSpan.innerHTML = self._dashDoc![self._fieldKey] = modText; - Doc.addFieldEnumerations(self._textBoxDoc, self._fieldKey, []); - } // if the text starts with a ':=' then treat it as an expression by making a computed field from its value storing it in the key - else if (self._fieldSpan.innerText.startsWith(":=")) { - self._dashDoc![self._fieldKey] = ComputedField.MakeFunction(self._fieldSpan.innerText.substring(2)); - } else if (self._fieldSpan.innerText.startsWith("=:=")) { - Doc.Layout(tbox.props.Document)[self._fieldKey] = ComputedField.MakeFunction(self._fieldSpan.innerText.substring(3)); - } else { - self._dashDoc![self._fieldKey] = newText; - } - }); - }; - - //Moved - this._fieldCheck = document.createElement("input"); - this._fieldCheck.id = Utils.GenerateGuid(); - this._fieldCheck.type = "checkbox"; - this._fieldCheck.style.position = "relative"; - this._fieldCheck.style.display = "none"; - this._fieldCheck.style.minWidth = "12px"; - this._fieldCheck.style.backgroundColor = "rgba(155, 155, 155, 0.24)"; - this._fieldCheck.onchange = function (e: any) { - self._dashDoc![self._fieldKey] = e.target.checked; - }; - - this._fieldSpan = document.createElement("span"); - this._fieldSpan.id = Utils.GenerateGuid(); - this._fieldSpan.contentEditable = "true"; - this._fieldSpan.style.position = "relative"; - this._fieldSpan.style.display = "none"; - this._fieldSpan.style.minWidth = "12px"; - this._fieldSpan.style.fontSize = "large"; - this._fieldSpan.onkeypress = function (e: any) { e.stopPropagation(); }; - this._fieldSpan.onkeyup = function (e: any) { e.stopPropagation(); }; - this._fieldSpan.onmousedown = function (e: any) { e.stopPropagation(); self._enumerables.style.display = "inline-block"; }; - this._fieldSpan.onblur = function (e: any) { updateText(false); }; - - // MOVED - const setDashDoc = (doc: Doc) => { - self._dashDoc = doc; - if (self._options?.length && !self._dashDoc[self._fieldKey]) { - self._dashDoc[self._fieldKey] = StrCast(self._options[0].title); - } - this._labelSpan.innerHTML = `${self._fieldKey}: `; - const fieldVal = Cast(this._dashDoc?.[self._fieldKey], "boolean", null); - this._fieldCheck.style.display = (fieldVal === true || fieldVal === false) ? "inline-block" : "none"; - this._fieldSpan.style.display = !(fieldVal === true || fieldVal === false) ? StrCast(this._dashDoc?.[self._fieldKey]) ? "" : "inline-block" : "none"; - }; - - //Moved - this._fieldSpan.onkeydown = function (e: any) { - e.stopPropagation(); - if ((e.key === "a" && e.ctrlKey) || (e.key === "a" && e.metaKey)) { - if (window.getSelection) { - const range = document.createRange(); - range.selectNodeContents(self._fieldSpan); - window.getSelection()!.removeAllRanges(); - window.getSelection()!.addRange(range); - } - e.preventDefault(); - } - if (e.key === "Enter") { - e.preventDefault(); - e.ctrlKey && Doc.addFieldEnumerations(self._textBoxDoc, self._fieldKey, [{ title: self._fieldSpan.innerText }]); - updateText(true); - } - }; - - this._labelSpan = document.createElement("span"); - this._labelSpan.style.position = "relative"; - this._labelSpan.style.fontSize = "small"; - this._labelSpan.title = "click to see related tags"; - this._labelSpan.style.fontSize = "x-small"; - this._labelSpan.onpointerdown = function (e: any) { - e.stopPropagation(); - let container = tbox.props.ContainingCollectionView; - while (container?.props.Document.isTemplateForField || container?.props.Document.isTemplateDoc) { - container = container.props.ContainingCollectionView; - } - if (container) { - const alias = Doc.MakeAlias(container.props.Document); - alias.viewType = CollectionViewType.Time; - let list = Cast(alias.schemaColumns, listSpec(SchemaHeaderField)); - if (!list) { - alias.schemaColumns = list = new List(); - } - list.map(c => c.heading).indexOf(self._fieldKey) === -1 && list.push(new SchemaHeaderField(self._fieldKey, "#f1efeb")); - list.map(c => c.heading).indexOf("text") === -1 && list.push(new SchemaHeaderField("text", "#f1efeb")); - alias._pivotField = self._fieldKey; - tbox.props.addDocTab(alias, "onRight"); - } - }; - this._labelSpan.innerHTML = `${self._fieldKey}: `; - //MOVED - if (node.attrs.docid) { - DocServer.GetRefField(node.attrs.docid). - then(async dashDoc => dashDoc instanceof Doc && runInAction(() => setDashDoc(dashDoc))); - } else { - setDashDoc(tbox.props.DataDoc || tbox.dataDoc); - } - - //Moved - this._reactionDisposer?.(); - this._reactionDisposer = reaction(() => { // this reaction will update the displayed text whenever the document's fieldKey's value changes - const dashVal = this._dashDoc?.[self._fieldKey]; - return StrCast(dashVal).startsWith(":=") || dashVal === "" ? Doc.Layout(tbox.props.Document)[self._fieldKey] : dashVal; - }, fval => { - const boolVal = Cast(fval, "boolean", null); - if (boolVal === true || boolVal === false) { - this._fieldCheck.checked = boolVal; - } else { - this._fieldSpan.innerHTML = Field.toString(fval as Field) || ""; - } - this._fieldCheck.style.display = (boolVal === true || boolVal === false) ? "inline-block" : "none"; - this._fieldSpan.style.display = !(fval === true || fval === false) ? (StrCast(fval) ? "" : "inline-block") : "none"; - }, { fireImmediately: true }); - - //MOVED IN ORDER - this._fieldWrapper.appendChild(this._labelSpan); - this._fieldWrapper.appendChild(this._fieldCheck); - this._fieldWrapper.appendChild(this._fieldSpan); - this._fieldWrapper.appendChild(this._enumerables); - (this as any).dom = this._fieldWrapper; - //updateText(false); - } - //MOVED - destroy() { - this._reactionDisposer?.(); - } - //moved - selectNode() { } -} - export class FootnoteView { innerView: any; outerView: any; diff --git a/src/server/authentication/models/current_user_utils.ts b/src/server/authentication/models/current_user_utils.ts index 08dc21460..4b2aafac1 100644 --- a/src/server/authentication/models/current_user_utils.ts +++ b/src/server/authentication/models/current_user_utils.ts @@ -72,8 +72,8 @@ export class CurrentUserUtils { } if (doc["template-button-description"] === undefined) { - const descriptionTemplate = Docs.Create.TextDocument("", { title: "text", _height: 100, _showTitle: "title" }); - Doc.GetProto(descriptionTemplate).layout = FormattedTextBox.LayoutString("description"); + const descriptionTemplate = Docs.Create.TextDocument("", { title: "header", _height: 100 }); + Doc.GetProto(descriptionTemplate).layout = "
"; descriptionTemplate.isTemplateDoc = makeTemplate(descriptionTemplate, true, "descriptionView"); doc["template-button-description"] = CurrentUserUtils.ficon({ @@ -181,9 +181,13 @@ export class CurrentUserUtils { doc["template-note-Idea"] as any as Doc, doc["template-note-Topic"] as any as Doc, doc["template-note-Todo"] as any as Doc], { title: "Note Layouts", _height: 75 })); } else { - const noteTypes = Cast(doc["template-notes"], Doc, null); - DocListCastAsync(noteTypes).then(list => noteTypes.data = new List([doc["template-note-Note"] as any as Doc, - doc["template-note-Idea"] as any as Doc, doc["template-note-Topic"] as any as Doc, doc["template-note-Todo"] as any as Doc])); + const curNoteTypes = Cast(doc["template-notes"], Doc, null); + const requiredTypes = [doc["template-note-Note"] as any as Doc, doc["template-note-Idea"] as any as Doc, + doc["template-note-Topic"] as any as Doc, doc["template-note-Todo"] as any as Doc]; + DocListCastAsync(curNoteTypes.data).then(async curNotes => { + await Promise.all(curNotes!); + requiredTypes.map(ntype => Doc.AddDocToList(curNoteTypes, "data", ntype)); + }); } return doc["template-notes"] as Doc; -- cgit v1.2.3-70-g09d2 From 37b5878ac3a8f0bd5168431b71e58eee27a3ec99 Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Wed, 29 Apr 2020 22:27:59 -0400 Subject: fixed problems with snapping so that it snaps on finishDrag. cleaned up code a bit. --- src/client/util/DragManager.ts | 81 ++++++++++++---------- src/client/views/MainView.tsx | 14 ++-- .../collectionFreeForm/CollectionFreeFormView.tsx | 60 +++++----------- 3 files changed, 68 insertions(+), 87 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/util/DragManager.ts b/src/client/util/DragManager.ts index a905dff0a..36c26fe2c 100644 --- a/src/client/util/DragManager.ts +++ b/src/client/util/DragManager.ts @@ -75,8 +75,8 @@ export function SetupDrag( export namespace DragManager { let dragDiv: HTMLDivElement; - export let horizSnapLines: number[]; - export let vertSnapLines: number[]; + export let horizSnapLines: number[] = []; + export let vertSnapLines: number[] = []; export function Root() { const root = document.getElementById("root"); @@ -296,7 +296,6 @@ export namespace DragManager { StartDrag([ele], {}, downX, downY); } - @action export function SetSnapLines(horizLines: number[], vertLines: number[]) { horizSnapLines = horizLines; vertSnapLines = vertLines; @@ -304,6 +303,36 @@ export namespace DragManager { MainView.Instance._vLines = vertLines; } + function snapDrag(e: PointerEvent, xFromLeft: number, yFromTop: number, xFromRight: number, yFromBottom: number) { + let thisX = e.pageX; + let thisY = e.pageY; + const currLeft = e.pageX - xFromLeft; + const currTop = e.pageY - yFromTop; + const currRight = e.pageX + xFromRight; + const currBottom = e.pageY + yFromBottom; + const closestLeft = vertSnapLines.reduce((prev, curr) => Math.abs(prev - currLeft) > Math.abs(curr - currLeft) ? curr : prev); + const closestTop = horizSnapLines.reduce((prev, curr) => Math.abs(prev - currTop) > Math.abs(curr - currTop) ? curr : prev); + const closestRight = vertSnapLines.reduce((prev, curr) => Math.abs(prev - currRight) > Math.abs(curr - currRight) ? curr : prev); + const closestBottom = horizSnapLines.reduce((prev, curr) => Math.abs(prev - currBottom) > Math.abs(curr - currBottom) ? curr : prev); + const distFromClosestLeft = Math.abs(e.pageX - xFromLeft - closestLeft); + const distFromClosestTop = Math.abs(e.pageY - yFromTop - closestTop); + const distFromClosestRight = Math.abs(e.pageX + xFromRight - closestRight); + const distFromClosestBottom = Math.abs(e.pageY + yFromBottom - closestBottom); + if (distFromClosestLeft < 10 && distFromClosestLeft < distFromClosestRight) { + thisX = closestLeft + xFromLeft; + } + else if (distFromClosestRight < 10) { + thisX = closestRight - xFromRight; + } + if (distFromClosestTop < 10 && distFromClosestTop < distFromClosestRight) { + thisY = closestTop + yFromTop; + } + else if (distFromClosestBottom < 10) { + thisY = closestBottom - yFromBottom; + } + return { thisX, thisY }; + } + export let docsBeingDragged: Doc[] = []; function StartDrag(eles: HTMLElement[], dragData: { [id: string]: any }, downX: number, downY: number, options?: DragOptions, finishDrag?: (dropData: DragCompleteEvent) => void) { eles = eles.filter(e => e); if (!dragDiv) { @@ -318,7 +347,7 @@ export namespace DragManager { const xs: number[] = []; const ys: number[] = []; - const docs = dragData instanceof DocumentDragData ? dragData.draggedDocuments : dragData instanceof PdfAnnoDragData ? [dragData.dragDocument] : []; + docsBeingDragged = dragData instanceof DocumentDragData ? dragData.draggedDocuments : dragData instanceof PdfAnnoDragData ? [dragData.dragDocument] : []; const elesCont = { left: Number.MAX_SAFE_INTEGER, top: Number.MAX_SAFE_INTEGER, @@ -354,7 +383,7 @@ export namespace DragManager { dragElement.style.width = `${rect.width / scaleX}px`; dragElement.style.height = `${rect.height / scaleY}px`; - if (docs.length) { + if (docsBeingDragged.length) { const pdfBox = dragElement.getElementsByTagName("canvas"); const pdfBoxSrc = ele.getElementsByTagName("canvas"); Array.from(pdfBox).map((pb, i) => pb.getContext('2d')!.drawImage(pdfBoxSrc[i], 0, 0)); @@ -408,32 +437,8 @@ export namespace DragManager { button: 0 }, dragData.droppedDocuments); } - let thisX = e.pageX; - let thisY = e.pageY; - const currLeft = e.pageX - xFromLeft; - const currTop = e.pageY - yFromTop; - const currRight = e.pageX + xFromRight; - const currBottom = e.pageY + yFromBottom; - const closestLeft = vertSnapLines.reduce((prev, curr) => Math.abs(prev - currLeft) > Math.abs(curr - currLeft) ? curr : prev); - const closestTop = horizSnapLines.reduce((prev, curr) => Math.abs(prev - currTop) > Math.abs(curr - currTop) ? curr : prev); - const closestRight = vertSnapLines.reduce((prev, curr) => Math.abs(prev - currRight) > Math.abs(curr - currRight) ? curr : prev); - const closestBottom = horizSnapLines.reduce((prev, curr) => Math.abs(prev - currBottom) > Math.abs(curr - currBottom) ? curr : prev); - const distFromClosestLeft = Math.abs(e.pageX - xFromLeft - closestLeft); - const distFromClosestTop = Math.abs(e.pageY - yFromTop - closestTop); - const distFromClosestRight = Math.abs(e.pageX + xFromRight - closestRight); - const distFromClosestBottom = Math.abs(e.pageY + yFromBottom - closestBottom); - if (distFromClosestLeft < 10 && distFromClosestLeft < distFromClosestRight) { - thisX = closestLeft + xFromLeft; - } - else if (distFromClosestRight < 10) { - thisX = closestRight - xFromRight; - } - if (distFromClosestTop < 10 && distFromClosestTop < distFromClosestRight) { - thisY = closestTop + yFromTop; - } - else if (distFromClosestBottom < 10) { - thisY = closestBottom - yFromBottom; - } + + const { thisX, thisY } = snapDrag(e, xFromLeft, yFromTop, xFromRight, yFromBottom); alias = "move"; const moveX = thisX - lastX; @@ -462,7 +467,7 @@ export namespace DragManager { }; const upHandler = (e: PointerEvent) => { hideDragShowOriginalElements(); - dispatchDrag(eles, e, dragData, options, finishDrag); + dispatchDrag(eles, e, dragData, xFromLeft, yFromTop, xFromRight, yFromBottom, options, finishDrag); SelectionManager.SetIsDragging(false); endDrag(); options?.dragComplete?.(new DragCompleteEvent(false, dragData)); @@ -471,7 +476,8 @@ export namespace DragManager { document.addEventListener("pointerup", upHandler); } - function dispatchDrag(dragEles: HTMLElement[], e: PointerEvent, dragData: { [index: string]: any }, options?: DragOptions, finishDrag?: (e: DragCompleteEvent) => void) { + function dispatchDrag(dragEles: HTMLElement[], e: PointerEvent, dragData: { [index: string]: any }, + xFromLeft: number, yFromTop: number, xFromRight: number, yFromBottom: number, options?: DragOptions, finishDrag?: (e: DragCompleteEvent) => void) { const removed = dragData.dontHideOnDrop ? [] : dragEles.map(dragEle => { const ret = { ele: dragEle, w: dragEle.style.width, h: dragEle.style.height, o: dragEle.style.overflow }; dragEle.style.width = "0"; @@ -485,14 +491,15 @@ export namespace DragManager { r.ele.style.height = r.h; r.ele.style.overflow = r.o; }); + const { thisX, thisY } = snapDrag(e, xFromLeft, yFromTop, xFromRight, yFromBottom); if (target) { const complete = new DragCompleteEvent(false, dragData); target.dispatchEvent( new CustomEvent("dashPreDrop", { bubbles: true, detail: { - x: e.x, - y: e.y, + x: thisX, + y: thisY, complete: complete, shiftKey: e.shiftKey, altKey: e.altKey, @@ -506,8 +513,8 @@ export namespace DragManager { new CustomEvent("dashOnDrop", { bubbles: true, detail: { - x: e.x, - y: e.y, + x: thisX, + y: thisY, complete: complete, shiftKey: e.shiftKey, altKey: e.altKey, diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx index 0102d1327..62b2d1d18 100644 --- a/src/client/views/MainView.tsx +++ b/src/client/views/MainView.tsx @@ -588,13 +588,13 @@ export class MainView extends React.Component { - {/* TO VIEW SNAP LINES -
- - {this._hLines?.map(l => )} - {this._vLines?.map(l => )} - -
*/} + {// TO VIEW SNAP LINES + /*
+ + {this._hLines?.map(l => )} + {this._vLines?.map(l => )} + +
*/}
); } diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index d291cad21..0c9403429 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -1129,7 +1129,7 @@ export class CollectionFreeFormView extends CollectionSubView !doc.isBackground && doc.z === undefined).map(doc => { - const layoutDoc = Doc.Layout(doc); - const x = NumCast(doc.x); - const y = NumCast(doc.y); - const w = NumCast(layoutDoc._width); - const h = NumCast(layoutDoc._height); - if (this.intersectRect({ left: x, top: y, width: w, height: h }, selRect)) { + const docDims = (doc: Doc, layoutDoc: Doc) => ({ left: NumCast(doc.x), top: NumCast(doc.y), width: NumCast(layoutDoc._width), height: NumCast(layoutDoc._height) }); + const compareDoc = (doc: Doc, rect: { left: number, top: number, width: number, height: number }) => { + if (this.intersectRect(docDims(doc, Doc.Layout(doc)), rect)) { selection.push(doc); } - }); - if (!selection.length) { - this.getActiveDocuments().filter(doc => doc.z === undefined).map(doc => { - const layoutDoc = Doc.Layout(doc); - const x = NumCast(doc.x); - const y = NumCast(doc.y); - const w = NumCast(layoutDoc._width); - const h = NumCast(layoutDoc._height); - if (this.intersectRect({ left: x, top: y, width: w, height: h }, selRect)) { - selection.push(doc); - } - }); - } - if (!selection.length) { - const otherBounds = { left: this.panX(), top: this.panY(), width: Math.abs(size[0]), height: Math.abs(size[1]) }; - this.getActiveDocuments().filter(doc => doc.z !== undefined).map(doc => { - const layoutDoc = Doc.Layout(doc); - const x = NumCast(doc.x); - const y = NumCast(doc.y); - const w = NumCast(layoutDoc._width); - const h = NumCast(layoutDoc._height); - if (this.intersectRect({ left: x, top: y, width: w, height: h }, otherBounds)) { - selection.push(doc); - } - }); } + const otherBounds = { left: this.panX(), top: this.panY(), width: Math.abs(size[0]), height: Math.abs(size[1]) }; + this.getActiveDocuments().filter(doc => !doc.isBackground && doc.z === undefined).map(doc => compareDoc(doc, selRect)); // first try foreground docs + !selection.length && this.getActiveDocuments().filter(doc => doc.z === undefined).map(doc => compareDoc(doc, selRect)); // then background docs + !selection.length && this.getActiveDocuments().filter(doc => doc.z !== undefined).map(doc => compareDoc(doc, otherBounds)); // then floating docs + const horizLines: number[] = []; const vertLines: number[] = []; - selection.forEach(doc => { - const layoutDoc = Doc.Layout(doc); - const x = NumCast(doc.x); - const y = NumCast(doc.y); - const w = NumCast(layoutDoc._width); - const h = NumCast(layoutDoc._height); - const topLeftInScreen = this.getTransform().inverse().transformPoint(x, y); - const docSize = this.getTransform().inverse().transformDirection(w, h); + selection.filter(doc => !DragManager.docsBeingDragged.includes(doc)).forEach(doc => { + const { left, top, width, height } = docDims(doc, Doc.Layout(doc)); + const topLeftInScreen = this.getTransform().inverse().transformPoint(left, top); + const docSize = this.getTransform().inverse().transformDirection(width, height); + horizLines.push(topLeftInScreen[1]); // top line horizLines.push(topLeftInScreen[1] + docSize[1]); // bottom line horizLines.push(topLeftInScreen[1] + docSize[1] / 2); // horiz center line @@ -1292,12 +1265,13 @@ export class CollectionFreeFormView extends CollectionSubView
- {/*
+ {// uncomment to show snap lines + /*
{this._hLines?.map(l => )} {this._vLines?.map(l => )} -
*/} +
*/}
; } } -- cgit v1.2.3-70-g09d2 From 90c45914694a971c1b3cb356921c04f337625db5 Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Thu, 30 Apr 2020 00:06:08 -0400 Subject: fixes for snapping & timeline. changed looi of document decorations --- src/client/util/DragManager.ts | 8 ++--- src/client/views/DocumentDecorations.scss | 34 +++++++++++++++++++++- src/client/views/DocumentDecorations.tsx | 9 +++--- src/client/views/MainView.tsx | 1 - src/client/views/MetadataEntryMenu.scss | 9 +++--- src/client/views/animationtimeline/Timeline.tsx | 33 ++++++++------------- .../collectionFreeForm/CollectionFreeFormView.tsx | 14 ++++++--- .../views/nodes/formattedText/FormattedTextBox.tsx | 8 +++-- 8 files changed, 74 insertions(+), 42 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/util/DragManager.ts b/src/client/util/DragManager.ts index 36c26fe2c..bccdf38ce 100644 --- a/src/client/util/DragManager.ts +++ b/src/client/util/DragManager.ts @@ -310,10 +310,10 @@ export namespace DragManager { const currTop = e.pageY - yFromTop; const currRight = e.pageX + xFromRight; const currBottom = e.pageY + yFromBottom; - const closestLeft = vertSnapLines.reduce((prev, curr) => Math.abs(prev - currLeft) > Math.abs(curr - currLeft) ? curr : prev); - const closestTop = horizSnapLines.reduce((prev, curr) => Math.abs(prev - currTop) > Math.abs(curr - currTop) ? curr : prev); - const closestRight = vertSnapLines.reduce((prev, curr) => Math.abs(prev - currRight) > Math.abs(curr - currRight) ? curr : prev); - const closestBottom = horizSnapLines.reduce((prev, curr) => Math.abs(prev - currBottom) > Math.abs(curr - currBottom) ? curr : prev); + const closestLeft = vertSnapLines.reduce((prev, curr) => Math.abs(prev - currLeft) > Math.abs(curr - currLeft) ? curr : prev, currLeft); + const closestTop = horizSnapLines.reduce((prev, curr) => Math.abs(prev - currTop) > Math.abs(curr - currTop) ? curr : prev, currTop); + const closestRight = vertSnapLines.reduce((prev, curr) => Math.abs(prev - currRight) > Math.abs(curr - currRight) ? curr : prev, currRight); + const closestBottom = horizSnapLines.reduce((prev, curr) => Math.abs(prev - currBottom) > Math.abs(curr - currBottom) ? curr : prev, currBottom); const distFromClosestLeft = Math.abs(e.pageX - xFromLeft - closestLeft); const distFromClosestTop = Math.abs(e.pageY - yFromTop - closestTop); const distFromClosestRight = Math.abs(e.pageX + xFromRight - closestRight); diff --git a/src/client/views/DocumentDecorations.scss b/src/client/views/DocumentDecorations.scss index 28cf9fd47..61d517d43 100644 --- a/src/client/views/DocumentDecorations.scss +++ b/src/client/views/DocumentDecorations.scss @@ -21,9 +21,13 @@ $linkGap : 3px; background: none; } + .documentDecorations-resizer { pointer-events: auto; background: $alt-accent; + opacity: 0.1; + } + .documentDecorations-resizer:hover { opacity: 1; } @@ -80,7 +84,20 @@ $linkGap : 3px; #documentDecorations-topLeftResizer, #documentDecorations-bottomRightResizer { cursor: nwse-resize; - background: dimGray; + background: unset; + opacity: 1; + } + #documentDecorations-topLeftResizer { + border-left: black 2px solid; + border-top: black solid 2px; + } + #documentDecorations-bottomRightResizer { + border-right: black 2px solid; + border-bottom: black solid 2px; + } + #documentDecorations-topLeftResizer:hover, + #documentDecorations-bottomRightResizer:hover { + opacity: 1; } #documentDecorations-bottomRightResizer { @@ -89,8 +106,23 @@ $linkGap : 3px; #documentDecorations-topRightResizer, #documentDecorations-bottomLeftResizer { + cursor: nesw-resize; + background: unset; + opacity: 1; + } + #documentDecorations-topRightResizer { + border-right: black 2px solid; + border-top: black 2px solid; + } + #documentDecorations-bottomLeftResizer { + border-left: black 2px solid; + border-bottom: black 2px solid; + } + #documentDecorations-topRightResizer:hover, + #documentDecorations-bottomLeftResizer:hover { cursor: nesw-resize; background: dimGray; + opacity: 1; } #documentDecorations-topResizer, diff --git a/src/client/views/DocumentDecorations.tsx b/src/client/views/DocumentDecorations.tsx index 312acd5b2..973ec2e89 100644 --- a/src/client/views/DocumentDecorations.tsx +++ b/src/client/views/DocumentDecorations.tsx @@ -473,10 +473,11 @@ export class DocumentDecorations extends React.Component<{}, { value: string }> onPointerDown={this.onPointerDown} onContextMenu={(e) => e.preventDefault()}>
e.preventDefault()}>
- {seldoc.props.renderDepth <= 1 || !seldoc.props.ContainingCollectionView ? (null) :
e.preventDefault()}> - -
} + {seldoc.props.renderDepth <= 1 || !seldoc.props.ContainingCollectionView ? (null) : +
e.preventDefault()}> + +
}
e.preventDefault()}>
diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx index 62b2d1d18..e5a8ebcb5 100644 --- a/src/client/views/MainView.tsx +++ b/src/client/views/MainView.tsx @@ -42,7 +42,6 @@ import { OverlayView } from './OverlayView'; import PDFMenu from './pdf/PDFMenu'; import { PreviewCursor } from './PreviewCursor'; import { ScriptField } from '../../new_fields/ScriptField'; -import { DragManager } from '../util/DragManager'; import { TimelineMenu } from './animationtimeline/TimelineMenu'; @observer diff --git a/src/client/views/MetadataEntryMenu.scss b/src/client/views/MetadataEntryMenu.scss index 5776cf070..28de0b7a5 100644 --- a/src/client/views/MetadataEntryMenu.scss +++ b/src/client/views/MetadataEntryMenu.scss @@ -9,9 +9,10 @@ } .metadataEntry-autoSuggester { - width: 100%; + width: 80%; height: 100%; - padding-right: 10px; + margin: 0; + display: inline-block; } #metadataEntry-outer { @@ -25,7 +26,7 @@ flex-direction: column; } .metadataEntry-inputArea { - display:flex; + display:inline-block; flex-direction: row; } @@ -44,7 +45,7 @@ .react-autosuggest__input { border: 1px solid #aaa; border-radius: 4px; - width: 100%; + width: 75%; } .react-autosuggest__input--focused { diff --git a/src/client/views/animationtimeline/Timeline.tsx b/src/client/views/animationtimeline/Timeline.tsx index fe1e40778..77656b85f 100644 --- a/src/client/views/animationtimeline/Timeline.tsx +++ b/src/client/views/animationtimeline/Timeline.tsx @@ -71,7 +71,6 @@ export class Timeline extends React.Component { @observable private _tickIncrement = this.DEFAULT_TICK_INCREMENT; @observable private _time = 100000; //DEFAULT @observable private _playButton = faPlayCircle; - @observable private _timelineVisible = false; @observable private _mouseToggled = false; @observable private _doubleClickEnabled = false; @observable private _titleHeight = 0; @@ -336,20 +335,6 @@ export class Timeline extends React.Component { } - /** - * context menu function. - * opens the timeline or closes the timeline. - * Used in: Freeform - */ - timelineContextMenu = (e: React.MouseEvent): void => { - ContextMenu.Instance.addItem({ - description: (this._timelineVisible ? "Close" : "Open") + " Animation Timeline", event: action(() => { - this._timelineVisible = !this._timelineVisible; - }), icon: this._timelineVisible ? faEyeSlash : faEye - }); - } - - /** * timeline zoom function * use mouse middle button to zoom in/out the timeline @@ -463,7 +448,7 @@ export class Timeline extends React.Component {
-
+
{this.timeIndicator(lengthString, totalTime)}
this.resetView(this.props.Document)}>
this.setView(this.props.Document)}>
@@ -481,10 +466,16 @@ export class Timeline extends React.Component { ); } else { + const ctime = `Current: ${this.getCurrentTime()}`; + const ttime = `Total: ${this.toReadTime(this._time)}`; return (
-
{`Current: ${this.getCurrentTime()}`}
-
{`Total: ${this.toReadTime(this._time)}`}
+
+ {ctime} +
+
+ {ttime} +
); } @@ -601,8 +592,8 @@ export class Timeline extends React.Component { trace(); // change visible and total width return ( -
-
+
+
{this.drawTicks()} @@ -611,7 +602,7 @@ export class Timeline extends React.Component {
{DocListCast(this.children).map(doc => - this.mapOfTracks.push(ref)} node={doc} currentBarX={this._currentBarX} changeCurrentBarX={this.changeCurrentBarX} transform={this.props.ScreenToLocalTransform()} time={this._time} tickSpacing={this._tickSpacing} tickIncrement={this._tickIncrement} collection={this.props.Document} timelineVisible={this._timelineVisible} /> + this.mapOfTracks.push(ref)} node={doc} currentBarX={this._currentBarX} changeCurrentBarX={this.changeCurrentBarX} transform={this.props.ScreenToLocalTransform()} time={this._time} tickSpacing={this._tickSpacing} tickIncrement={this._tickIncrement} collection={this.props.Document} timelineVisible={true} /> )}
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index 0c9403429..77de486d9 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -1,5 +1,5 @@ import { library } from "@fortawesome/fontawesome-svg-core"; -import { faEye } from "@fortawesome/free-regular-svg-icons"; +import { faEye, faEyeSlash } from "@fortawesome/free-regular-svg-icons"; import { faBraille, faChalkboard, faCompass, faCompressArrowsAlt, faExpandArrowsAlt, faFileUpload, faPaintBrush, faTable, faUpload } from "@fortawesome/free-solid-svg-icons"; import { action, computed, IReactionDisposer, observable, ObservableMap, reaction, runInAction } from "mobx"; import { observer } from "mobx-react"; @@ -1093,7 +1093,6 @@ export class CollectionFreeFormView extends CollectionSubView { this.props.Document._panX = this.props.Document._panY = 0; this.props.Document.scale = 1; }, icon: "compress-arrows-alt" }); optionItems.push({ description: `${this.Document._LODdisable ? "Enable LOD" : "Disable LOD"}`, event: () => this.Document._LODdisable = !this.Document._LODdisable, icon: "table" }); optionItems.push({ description: `${this.fitToContent ? "Unset" : "Set"} Fit To Container`, event: () => this.Document._fitToBox = !this.fitToContent, icon: !this.fitToContent ? "expand-arrows-alt" : "compress-arrows-alt" }); @@ -1130,8 +1129,15 @@ export class CollectionFreeFormView extends CollectionSubView { + this._timelineVisible = !this._timelineVisible; + }), icon: this._timelineVisible ? faEyeSlash : faEye + }); } + @observable _timelineVisible = false; intersectRect(r1: { left: number, top: number, width: number, height: number }, r2: { left: number, top: number, width: number, height: number }) { @@ -1215,7 +1221,7 @@ export class CollectionFreeFormView extends CollectionSubView {this.children} - + {this._timelineVisible ? : (null)} ; } diff --git a/src/client/views/nodes/formattedText/FormattedTextBox.tsx b/src/client/views/nodes/formattedText/FormattedTextBox.tsx index 2038efbc6..4df693c9a 100644 --- a/src/client/views/nodes/formattedText/FormattedTextBox.tsx +++ b/src/client/views/nodes/formattedText/FormattedTextBox.tsx @@ -435,9 +435,11 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp this.rootDoc.isTemplateForField = ""; this.rootDoc.layoutKey = "layout"; this.rootDoc.isTemplateDoc = makeTemplate(this.rootDoc, true, title); - this.rootDoc._width = this.layoutDoc._width || 300; // the width and height are stored on the template, since we're getting rid of the old template - this.rootDoc._height = this.layoutDoc._height || 200; // we need to copy them over to the root. This should probably apply to all '_' fields - this.rootDoc._backgroundColor = Cast(this.layoutDoc._backgroundColor, "string", null); + setTimeout(() => { + this.rootDoc._width = this.layoutDoc._width || 300; // the width and height are stored on the template, since we're getting rid of the old template + this.rootDoc._height = this.layoutDoc._height || 200; // we need to copy them over to the root. This should probably apply to all '_' fields + this.rootDoc._backgroundColor = Cast(this.layoutDoc._backgroundColor, "string", null); + }, 10); Doc.AddDocToList(Cast(Doc.UserDoc()["template-notes"], Doc, null), "data", this.rootDoc); }, icon: "eye" }); -- cgit v1.2.3-70-g09d2 From 0f4b9e541e4e1332bbed95f4a99113162ffef806 Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Thu, 30 Apr 2020 11:10:27 -0400 Subject: added double click script support --- src/client/documents/Documents.ts | 2 ++ src/client/views/ScriptBox.tsx | 4 ++-- .../views/collections/CollectionStackingView.tsx | 7 ++++--- src/client/views/collections/CollectionSubView.tsx | 2 ++ src/client/views/collections/CollectionView.tsx | 7 ++++--- .../collectionFreeForm/CollectionFreeFormView.tsx | 3 ++- .../CollectionMulticolumnView.tsx | 2 ++ .../CollectionMultirowView.tsx | 3 ++- .../views/nodes/ContentFittingDocumentView.tsx | 1 + src/client/views/nodes/DocumentView.tsx | 23 ++++++++++++++++------ src/new_fields/Types.ts | 4 ++-- src/new_fields/documentSchemas.ts | 1 + .../authentication/models/current_user_utils.ts | 8 ++++++-- 13 files changed, 47 insertions(+), 20 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index 0d1d73ca3..436e59daf 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -95,6 +95,7 @@ export interface DocumentOptions { hideHeadings?: boolean; // whether stacking view column headings should be hidden isTemplateForField?: string; // the field key for which the containing document is a rendering template isTemplateDoc?: boolean; + scriptKey?: string; // the script key that a child click func script template document will write into templates?: List; backgroundColor?: string | ScriptField; // background color for data doc _backgroundColor?: string | ScriptField; // background color for each template layout doc ( overrides backgroundColor ) @@ -132,6 +133,7 @@ export interface DocumentOptions { activePen?: Doc; // which pen document is currently active (used as the radio button state for the 'unhecked' pen tool scripts) onClick?: ScriptField; onChildClick?: ScriptField; // script given to children of a collection to execute when they are clicked + onChildDoubleClick?: ScriptField; // script given to children of a collection to execute when they are double clicked onPointerDown?: ScriptField; onPointerUp?: ScriptField; dropConverter?: ScriptField; // script to run when documents are dropped on this Document. diff --git a/src/client/views/ScriptBox.tsx b/src/client/views/ScriptBox.tsx index 153b81876..66d3b937e 100644 --- a/src/client/views/ScriptBox.tsx +++ b/src/client/views/ScriptBox.tsx @@ -81,9 +81,9 @@ export class ScriptBox extends React.Component { ); } //let l = docList(this.source[0].data).length; if (l) { let ind = this.target[0].index !== undefined ? (this.target[0].index+1) % l : 0; this.target[0].index = ind; this.target[0].proto = getProto(docList(this.source[0].data)[ind]);} - public static EditButtonScript(title: string, doc: Doc, fieldKey: string, clientX: number, clientY: number, contextParams?: { [name: string]: string }) { + public static EditButtonScript(title: string, doc: Doc, fieldKey: string, clientX: number, clientY: number, contextParams?: { [name: string]: string }, defaultScript?: ScriptField) { let overlayDisposer: () => void = emptyFunction; - const script = ScriptCast(doc[fieldKey]); + const script = ScriptCast(doc[fieldKey]) || defaultScript; let originalText: string | undefined = undefined; if (script) { originalText = script.script.originalScript; diff --git a/src/client/views/collections/CollectionStackingView.tsx b/src/client/views/collections/CollectionStackingView.tsx index e3720bf01..556d7df5c 100644 --- a/src/client/views/collections/CollectionStackingView.tsx +++ b/src/client/views/collections/CollectionStackingView.tsx @@ -150,8 +150,8 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) { this.createDashEventsTarget(ele!); //so the whole grid is the drop target? } - @computed get onChildClickHandler() { return ScriptCast(this.Document.onChildClick); } - @computed get onClickHandler() { return ScriptCast(this.Document.onChildClick); } + @computed get onChildClickHandler() { return this.props.childClickScript || ScriptCast(this.Document.onChildClick); } + @computed get onChildDoubleClickHandler() { return this.props.childDoubleClickScript || ScriptCast(this.Document.onChildDoubleClick); } addDocTab = (doc: Doc, where: string) => { if (where === "inPlace" && this.layoutDoc.isInPlaceContainer) { @@ -178,7 +178,8 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) { fitToBox={BoolCast(this.props.Document._freezeChildDimensions)} rootSelected={this.rootSelected} dropAction={StrCast(this.props.Document.childDropAction) as dropActionType} - onClick={layoutDoc.isTemplateDoc ? this.onClickHandler : this.onChildClickHandler} + onClick={this.onChildClickHandler} + onDoubleClick={this.onChildDoubleClickHandler} getTransform={dxf} focus={this.props.focus} CollectionDoc={this.props.CollectionView?.props.Document} diff --git a/src/client/views/collections/CollectionSubView.tsx b/src/client/views/collections/CollectionSubView.tsx index 1bfd408f8..8cc1af55b 100644 --- a/src/client/views/collections/CollectionSubView.tsx +++ b/src/client/views/collections/CollectionSubView.tsx @@ -43,6 +43,8 @@ export interface CollectionViewProps extends FieldViewProps { export interface SubCollectionViewProps extends CollectionViewProps { CollectionView: Opt; children?: never | (() => JSX.Element[]) | React.ReactNode; + childClickScript?: ScriptField; + childDoubleClickScript?: ScriptField; freezeChildDimensions?: boolean; // used by TimeView to coerce documents to treat their width height as their native width/height overrideDocuments?: Doc[]; // used to override the documents shown by the sub collection to an explicit list (see LinkBox) ignoreFields?: string[]; // used in TreeView to ignore specified fields (see LinkBox) diff --git a/src/client/views/collections/CollectionView.tsx b/src/client/views/collections/CollectionView.tsx index 801704673..2c52097aa 100644 --- a/src/client/views/collections/CollectionView.tsx +++ b/src/client/views/collections/CollectionView.tsx @@ -247,13 +247,14 @@ export class CollectionView extends Touchable { const existingOnClick = ContextMenu.Instance.findByDescription("OnClick..."); const onClicks = existingOnClick && "subitems" in existingOnClick ? existingOnClick.subitems : []; - const funcs = [{ key: "onChildClick", name: "On Child Clicked", script: undefined as any as ScriptField }]; + const funcs = [{ key: "onChildClick", name: "On Child Clicked", script: undefined as any as ScriptField }, + { key: "onChildDoubleClick", name: "On Child Double Clicked", script: undefined as any as ScriptField }]; DocListCast(Cast(Doc.UserDoc().childClickFuncs, Doc, null).data).forEach(childClick => - funcs.push({ key: "onChildClick", name: StrCast(childClick.title), script: ScriptCast(childClick.script) })); + funcs.push({ key: StrCast(childClick.scriptKey), name: StrCast(childClick.title), script: ScriptCast(childClick.data) })); funcs.map(func => onClicks.push({ description: `Edit ${func.name} script`, icon: "edit", event: (obj: any) => { func.script && (this.props.Document[func.key] = ObjectField.MakeCopy(func.script)); - ScriptBox.EditButtonScript(func.name + "...", this.props.Document, func.key, obj.x, obj.y, { thisContainer: Doc.name }); + ScriptBox.EditButtonScript(func.name + "...", this.props.Document, func.key, obj.x, obj.y, { thisContainer: Doc.name }, func.script); } })); !existingOnClick && ContextMenu.Instance.addItem({ description: "OnClick...", subitems: onClicks, icon: "hand-point-right" }); diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index 77de486d9..11d0f298d 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -70,7 +70,6 @@ type PanZoomDocument = makeInterface<[typeof panZoomSchema, typeof documentSchem const PanZoomDocument = makeInterface(panZoomSchema, documentSchema, positionSchema, pageSchema); export type collectionFreeformViewProps = { forceScaling?: boolean; // whether to force scaling of content (needed by ImageBox) - childClickScript?: ScriptField; viewDefDivClick?: ScriptField; }; @@ -855,6 +854,7 @@ export class CollectionFreeFormView extends CollectionSubView BoolCast(this.Document.useClusters); @computed get backgroundActive() { return this.layoutDoc.isBackground && (this.props.ContainingCollectionView?.active() || this.props.active()); } parentActive = () => this.props.active() || this.backgroundActive ? true : false; @@ -873,6 +873,7 @@ export class CollectionFreeFormView extends CollectionSubView { @@ -229,6 +230,7 @@ export class CollectionMulticolumnView extends CollectionSubView(MulticolumnDocu rootSelected={this.rootSelected} dropAction={StrCast(this.props.Document.childDropAction) as dropActionType} onClick={this.onChildClickHandler} + onDoubleClick={this.onChildDoubleClickHandler} getTransform={dxf} focus={this.props.focus} CollectionDoc={this.props.CollectionView?.props.Document} diff --git a/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx b/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx index af0cc3b5c..615efdb39 100644 --- a/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx +++ b/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx @@ -203,7 +203,7 @@ export class CollectionMultirowView extends CollectionSubView(MultirowDocument) @computed get onChildClickHandler() { return ScriptCast(this.Document.onChildClick); } - + @computed get onChildDoubleClickHandler() { return ScriptCast(this.Document.onChildDoubleClick); } addDocTab = (doc: Doc, where: string) => { if (where === "inPlace" && this.layoutDoc.isInPlaceContainer) { @@ -229,6 +229,7 @@ export class CollectionMultirowView extends CollectionSubView(MultirowDocument) rootSelected={this.rootSelected} dropAction={StrCast(this.props.Document.childDropAction) as dropActionType} onClick={this.onChildClickHandler} + onDoubleClick={this.onChildDoubleClickHandler} getTransform={dxf} focus={this.props.focus} CollectionDoc={this.props.CollectionView?.props.Document} diff --git a/src/client/views/nodes/ContentFittingDocumentView.tsx b/src/client/views/nodes/ContentFittingDocumentView.tsx index 641797cac..d0b0c8ee6 100644 --- a/src/client/views/nodes/ContentFittingDocumentView.tsx +++ b/src/client/views/nodes/ContentFittingDocumentView.tsx @@ -32,6 +32,7 @@ interface ContentFittingDocumentViewProps { CollectionView?: CollectionView; CollectionDoc?: Doc; onClick?: ScriptField; + onDoubleClick?: ScriptField; backgroundColor?: (doc: Doc) => string | undefined; getTransform: () => Transform; addDocument?: (document: Doc) => boolean; diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx index fdcaa2df3..7b28a45f8 100644 --- a/src/client/views/nodes/DocumentView.tsx +++ b/src/client/views/nodes/DocumentView.tsx @@ -64,6 +64,7 @@ export interface DocumentViewProps { contextMenuItems?: () => { script: ScriptField, label: string }[]; rootSelected: (outsideReaction?: boolean) => boolean; // whether the root of a template has been selected onClick?: ScriptField; + onDoubleClick?: ScriptField; onPointerDown?: ScriptField; onPointerUp?: ScriptField; dropAction?: dropActionType; @@ -116,6 +117,7 @@ export class DocumentView extends DocComponent(Docu @computed get nativeWidth() { return NumCast(this.layoutDoc._nativeWidth, this.props.NativeWidth() || (this.freezeDimensions ? this.layoutDoc[WidthSym]() : 0)); } @computed get nativeHeight() { return NumCast(this.layoutDoc._nativeHeight, this.props.NativeHeight() || (this.freezeDimensions ? this.layoutDoc[HeightSym]() : 0)); } @computed get onClickHandler() { return this.props.onClick || Cast(this.layoutDoc.onClick, ScriptField, null) || this.Document.onClick; } + @computed get onDoubleClickHandler() { return this.props.onDoubleClick || Cast(this.layoutDoc.onDoubleClick, ScriptField, null) || this.Document.onDoubleClick; } @computed get onPointerDownHandler() { return this.props.onPointerDown ? this.props.onPointerDown : this.Document.onPointerDown; } @computed get onPointerUpHandler() { return this.props.onPointerUp ? this.props.onPointerUp : this.Document.onPointerUp; } NativeWidth = () => this.nativeWidth; @@ -289,13 +291,22 @@ export class DocumentView extends DocComponent(Docu !this.props.Document.isBackground && this.props.bringToFront(this.props.Document); if (this._doubleTap && this.props.renderDepth && !this.onClickHandler?.script) { // disable double-click to show full screen for things that have an on click behavior since clicking them twice can be misinterpreted as a double click if (!(e.nativeEvent as any).formattedHandled) { - const fullScreenAlias = Doc.MakeAlias(this.props.Document); - if (StrCast(fullScreenAlias.layoutKey) !== "layout_fullScreen" && fullScreenAlias.layout_fullScreen) { - fullScreenAlias.layoutKey = "layout_fullScreen"; + if (this.onDoubleClickHandler?.script && !StrCast(Doc.LayoutField(this.layoutDoc))?.includes("ScriptingBox")) { // bcz: hack? don't execute script if you're clicking on a scripting box itself + const func = () => this.onDoubleClickHandler.script.run({ + this: this.layoutDoc, + self: this.rootDoc, + thisContainer: this.props.ContainingCollectionDoc, shiftKey: e.shiftKey + }, console.log); + func(); + } else { + const fullScreenAlias = Doc.MakeAlias(this.props.Document); + if (StrCast(fullScreenAlias.layoutKey) !== "layout_fullScreen" && fullScreenAlias.layout_fullScreen) { + fullScreenAlias.layoutKey = "layout_fullScreen"; + } + UndoManager.RunInBatch(() => this.props.addDocTab(fullScreenAlias, "inTab"), "double tap"); + SelectionManager.DeselectAll(); + Doc.UnBrushDoc(this.props.Document); } - UndoManager.RunInBatch(() => this.props.addDocTab(fullScreenAlias, "inTab"), "double tap"); - SelectionManager.DeselectAll(); - Doc.UnBrushDoc(this.props.Document); } } else if (this.onClickHandler?.script && !StrCast(Doc.LayoutField(this.layoutDoc))?.includes("ScriptingBox")) { // bcz: hack? don't execute script if you're clicking on a scripting box itself //SelectionManager.DeselectAll(); diff --git a/src/new_fields/Types.ts b/src/new_fields/Types.ts index aa44cefa0..3d784448d 100644 --- a/src/new_fields/Types.ts +++ b/src/new_fields/Types.ts @@ -88,8 +88,8 @@ export function DateCast(field: FieldResult) { return Cast(field, DateField, null); } -export function ScriptCast(field: FieldResult) { - return Cast(field, ScriptField, null); +export function ScriptCast(field: FieldResult, defaultVal: ScriptField | null = null) { + return Cast(field, ScriptField, defaultVal); } type WithoutList = T extends List ? (R extends RefField ? (R | Promise)[] : R[]) : T; diff --git a/src/new_fields/documentSchemas.ts b/src/new_fields/documentSchemas.ts index 7a0be8863..5ca0d681e 100644 --- a/src/new_fields/documentSchemas.ts +++ b/src/new_fields/documentSchemas.ts @@ -81,6 +81,7 @@ export const collectionSchema = createSchema({ childLayout: Doc, // layout template for children of a collecion childDetailView: Doc, // layout template to apply to a child when its clicked on in a collection and opened (requires onChildClick or other script to use this field) onChildClick: ScriptField, // script to run for each child when its clicked + onChildDoubleClick: ScriptField, // script to run for each child when its clicked onCheckedClick: ScriptField, // script to run when a checkbox is clicked next to a child in a tree view }); diff --git a/src/server/authentication/models/current_user_utils.ts b/src/server/authentication/models/current_user_utils.ts index eedd3ee67..1be977e4f 100644 --- a/src/server/authentication/models/current_user_utils.ts +++ b/src/server/authentication/models/current_user_utils.ts @@ -594,9 +594,13 @@ export class CurrentUserUtils { if (doc.childClickFuncs === undefined) { const openInTarget = Docs.Create.ScriptingDocument(ScriptField.MakeScript( "docCast(thisContainer.target).then((target) => { target && docCast(this.source).then((source) => { target.proto.data = new List([source || this]); } ); } )", - { target: Doc.name }), { title: "On Child Clicked (open in target)", _width: 300, _height: 200 }); + { target: Doc.name }), { title: "On Child Clicked (open in target)", _width: 300, _height: 200, scriptKey: "onChildClick" }); - doc.childClickFuncs = Docs.Create.TreeDocument([openInTarget], { title: "on Child Click function templates" }); + const openDetail = Docs.Create.ScriptingDocument(ScriptField.MakeScript( + "openOnRight(self.doubleClickView)", + { target: Doc.name }), { title: "On Child Dbl Clicked (open double click view)", _width: 300, _height: 200, scriptKey: "onChildDoubleClick" }); + + doc.childClickFuncs = Docs.Create.TreeDocument([openInTarget, openDetail], { title: "on Child Click function templates" }); } // this is equivalent to using PrefetchProxies to make sure all the childClickFuncs have been retrieved. PromiseValue(Cast(doc.childClickFuncs, Doc)).then(func => func && PromiseValue(func.data).then(DocListCast)); -- cgit v1.2.3-70-g09d2 From d4dd4ccd299ba2e06b35a6f14f698a26d026aeee Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Thu, 30 Apr 2020 11:34:08 -0400 Subject: clean up of childclick template func menus --- src/client/documents/Documents.ts | 2 +- src/client/views/collections/CollectionView.tsx | 16 ++++++++++------ src/server/authentication/models/current_user_utils.ts | 10 +++++++--- 3 files changed, 18 insertions(+), 10 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index 436e59daf..0809ae24f 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -95,7 +95,7 @@ export interface DocumentOptions { hideHeadings?: boolean; // whether stacking view column headings should be hidden isTemplateForField?: string; // the field key for which the containing document is a rendering template isTemplateDoc?: boolean; - scriptKey?: string; // the script key that a child click func script template document will write into + targetScriptKey?: string; // where to write a template script (used by collections with click templates which need to target onClick, onDoubleClick, etc) templates?: List; backgroundColor?: string | ScriptField; // background color for data doc _backgroundColor?: string | ScriptField; // background color for each template layout doc ( overrides backgroundColor ) diff --git a/src/client/views/collections/CollectionView.tsx b/src/client/views/collections/CollectionView.tsx index 2c52097aa..79bb6c41b 100644 --- a/src/client/views/collections/CollectionView.tsx +++ b/src/client/views/collections/CollectionView.tsx @@ -247,16 +247,20 @@ export class CollectionView extends Touchable { const existingOnClick = ContextMenu.Instance.findByDescription("OnClick..."); const onClicks = existingOnClick && "subitems" in existingOnClick ? existingOnClick.subitems : []; - const funcs = [{ key: "onChildClick", name: "On Child Clicked", script: undefined as any as ScriptField }, - { key: "onChildDoubleClick", name: "On Child Double Clicked", script: undefined as any as ScriptField }]; - DocListCast(Cast(Doc.UserDoc().childClickFuncs, Doc, null).data).forEach(childClick => - funcs.push({ key: StrCast(childClick.scriptKey), name: StrCast(childClick.title), script: ScriptCast(childClick.data) })); + const funcs = [ + { key: "onChildClick", name: "On Child Clicked" }, + { key: "onChildDoubleClick", name: "On Child Double Clicked" }]; funcs.map(func => onClicks.push({ description: `Edit ${func.name} script`, icon: "edit", event: (obj: any) => { - func.script && (this.props.Document[func.key] = ObjectField.MakeCopy(func.script)); - ScriptBox.EditButtonScript(func.name + "...", this.props.Document, func.key, obj.x, obj.y, { thisContainer: Doc.name }, func.script); + ScriptBox.EditButtonScript(func.name + "...", this.props.Document, func.key, obj.x, obj.y, { thisContainer: Doc.name }); } })); + DocListCast(Cast(Doc.UserDoc().childClickFuncs, Doc, null).data).forEach(childClick => + onClicks.push({ + description: `Set child ${childClick.title}`, + icon: "edit", + event: () => this.props.Document[StrCast(childClick.targetScriptKey)] = ObjectField.MakeCopy(ScriptCast(childClick.data)), + })); !existingOnClick && ContextMenu.Instance.addItem({ description: "OnClick...", subitems: onClicks, icon: "hand-point-right" }); const more = ContextMenu.Instance.findByDescription("More..."); diff --git a/src/server/authentication/models/current_user_utils.ts b/src/server/authentication/models/current_user_utils.ts index 1be977e4f..2c861d4fa 100644 --- a/src/server/authentication/models/current_user_utils.ts +++ b/src/server/authentication/models/current_user_utils.ts @@ -593,12 +593,16 @@ export class CurrentUserUtils { static setupClickEditorTemplates(doc: Doc) { if (doc.childClickFuncs === undefined) { const openInTarget = Docs.Create.ScriptingDocument(ScriptField.MakeScript( - "docCast(thisContainer.target).then((target) => { target && docCast(this.source).then((source) => { target.proto.data = new List([source || this]); } ); } )", - { target: Doc.name }), { title: "On Child Clicked (open in target)", _width: 300, _height: 200, scriptKey: "onChildClick" }); + "docCast(thisContainer.target).then((target) => {" + + " target && docCast(this.source).then((source) => { " + + " target.proto.data = new List([source || this]); " + + " }); " + + "})", + { target: Doc.name }), { title: "Click to open in target", _width: 300, _height: 200, targetScriptKey: "onChildClick" }); const openDetail = Docs.Create.ScriptingDocument(ScriptField.MakeScript( "openOnRight(self.doubleClickView)", - { target: Doc.name }), { title: "On Child Dbl Clicked (open double click view)", _width: 300, _height: 200, scriptKey: "onChildDoubleClick" }); + { target: Doc.name }), { title: "Double click to open doubleClickView", _width: 300, _height: 200, targetScriptKey: "onChildDoubleClick" }); doc.childClickFuncs = Docs.Create.TreeDocument([openInTarget, openDetail], { title: "on Child Click function templates" }); } -- cgit v1.2.3-70-g09d2 From baae91e7829676f03878696e9b13e1bdb4fb3c33 Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Thu, 30 Apr 2020 11:40:57 -0400 Subject: from last --- src/client/views/collections/CollectionView.tsx | 2 +- src/server/authentication/models/current_user_utils.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/collections/CollectionView.tsx b/src/client/views/collections/CollectionView.tsx index 79bb6c41b..8d8c321e8 100644 --- a/src/client/views/collections/CollectionView.tsx +++ b/src/client/views/collections/CollectionView.tsx @@ -255,7 +255,7 @@ export class CollectionView extends Touchable { ScriptBox.EditButtonScript(func.name + "...", this.props.Document, func.key, obj.x, obj.y, { thisContainer: Doc.name }); } })); - DocListCast(Cast(Doc.UserDoc().childClickFuncs, Doc, null).data).forEach(childClick => + DocListCast(Cast(Doc.UserDoc()["clickFuncs-child"], Doc, null).data).forEach(childClick => onClicks.push({ description: `Set child ${childClick.title}`, icon: "edit", diff --git a/src/server/authentication/models/current_user_utils.ts b/src/server/authentication/models/current_user_utils.ts index 2c861d4fa..e49cc4804 100644 --- a/src/server/authentication/models/current_user_utils.ts +++ b/src/server/authentication/models/current_user_utils.ts @@ -591,7 +591,7 @@ export class CurrentUserUtils { } static setupClickEditorTemplates(doc: Doc) { - if (doc.childClickFuncs === undefined) { + if (doc["clickFuncs-child"] === undefined) { const openInTarget = Docs.Create.ScriptingDocument(ScriptField.MakeScript( "docCast(thisContainer.target).then((target) => {" + " target && docCast(this.source).then((source) => { " + @@ -604,10 +604,10 @@ export class CurrentUserUtils { "openOnRight(self.doubleClickView)", { target: Doc.name }), { title: "Double click to open doubleClickView", _width: 300, _height: 200, targetScriptKey: "onChildDoubleClick" }); - doc.childClickFuncs = Docs.Create.TreeDocument([openInTarget, openDetail], { title: "on Child Click function templates" }); + doc["clickFuncs-child"] = Docs.Create.TreeDocument([openInTarget, openDetail], { title: "on Child Click function templates" }); } // this is equivalent to using PrefetchProxies to make sure all the childClickFuncs have been retrieved. - PromiseValue(Cast(doc.childClickFuncs, Doc)).then(func => func && PromiseValue(func.data).then(DocListCast)); + PromiseValue(Cast(doc["clickFuncs-child"], Doc)).then(func => func && PromiseValue(func.data).then(DocListCast)); if (doc.clickFuncs === undefined) { const onClick = Docs.Create.ScriptingDocument(undefined, { -- cgit v1.2.3-70-g09d2 From 22748f8d35235941fc6622b19a2d4d3f809ccee7 Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Thu, 30 Apr 2020 17:16:14 -0400 Subject: working version of snapping with resize / templates / centers --- .VSCodeCounter/details.md | 661 +++++++++++++++++ .VSCodeCounter/results.csv | 648 ++++++++++++++++ .VSCodeCounter/results.md | 164 +++++ .VSCodeCounter/results.txt | 813 +++++++++++++++++++++ package-lock.json | 81 +- src/Utils.ts | 4 +- src/client/util/DragManager.ts | 41 +- src/client/views/MainView.tsx | 8 +- .../collectionFreeForm/CollectionFreeFormView.tsx | 70 +- .../views/nodes/formattedText/DashFieldView.tsx | 4 - .../authentication/models/current_user_utils.ts | 6 +- 11 files changed, 2395 insertions(+), 105 deletions(-) create mode 100644 .VSCodeCounter/details.md create mode 100644 .VSCodeCounter/results.csv create mode 100644 .VSCodeCounter/results.md create mode 100644 .VSCodeCounter/results.txt (limited to 'src/client/views/collections') diff --git a/.VSCodeCounter/details.md b/.VSCodeCounter/details.md new file mode 100644 index 000000000..2f988953b --- /dev/null +++ b/.VSCodeCounter/details.md @@ -0,0 +1,661 @@ +# Details + +Date : 2020-04-30 14:40:16 + +Directory /Users/bcz/Documents/GitHub/Dash-Web + +Total : 646 files, 224911 codes, 32987 comments, 15880 blanks, all 273778 lines + +[summary](results.md) + +## Files +| filename | language | code | comment | blank | total | +| :--- | :--- | ---: | ---: | ---: | ---: | +| [README.md](file:///Users/bcz/Documents/GitHub/Dash-Web/README.md) | Markdown | 6 | 0 | 3 | 9 | +| [build/index.html](file:///Users/bcz/Documents/GitHub/Dash-Web/build/index.html) | HTML | 9 | 0 | 3 | 12 | +| [dash.bat](file:///Users/bcz/Documents/GitHub/Dash-Web/dash.bat) | Batch | 2 | 0 | 1 | 3 | +| [deploy/assets/env.json](file:///Users/bcz/Documents/GitHub/Dash-Web/deploy/assets/env.json) | JSON | 15 | 0 | 0 | 15 | +| [deploy/assets/pdf.worker.js](file:///Users/bcz/Documents/GitHub/Dash-Web/deploy/assets/pdf.worker.js) | JavaScript | 55,662 | 174 | 686 | 56,522 | +| [deploy/debug/repl.html](file:///Users/bcz/Documents/GitHub/Dash-Web/deploy/debug/repl.html) | HTML | 11 | 0 | 3 | 14 | +| [deploy/debug/test.html](file:///Users/bcz/Documents/GitHub/Dash-Web/deploy/debug/test.html) | HTML | 10 | 0 | 3 | 13 | +| [deploy/debug/viewer.html](file:///Users/bcz/Documents/GitHub/Dash-Web/deploy/debug/viewer.html) | HTML | 11 | 0 | 3 | 14 | +| [deploy/index.html](file:///Users/bcz/Documents/GitHub/Dash-Web/deploy/index.html) | HTML | 13 | 0 | 3 | 16 | +| [deploy/mobile/image.html](file:///Users/bcz/Documents/GitHub/Dash-Web/deploy/mobile/image.html) | HTML | 12 | 0 | 3 | 15 | +| [deploy/mobile/ink.html](file:///Users/bcz/Documents/GitHub/Dash-Web/deploy/mobile/ink.html) | HTML | 10 | 0 | 3 | 13 | +| [package-lock.json](file:///Users/bcz/Documents/GitHub/Dash-Web/package-lock.json) | JSON | 18,689 | 0 | 1 | 18,690 | +| [package.json](file:///Users/bcz/Documents/GitHub/Dash-Web/package.json) | JSON | 266 | 0 | 1 | 267 | +| [sentence_parser.py](file:///Users/bcz/Documents/GitHub/Dash-Web/sentence_parser.py) | Python | 6 | 0 | 1 | 7 | +| [session.config.json](file:///Users/bcz/Documents/GitHub/Dash-Web/session.config.json) | JSON | 12 | 0 | 1 | 13 | +| [solr-8.3.1/bin/install_solr_service.sh](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/bin/install_solr_service.sh) | Shell Script | 307 | 29 | 35 | 371 | +| [solr-8.3.1/bin/oom_solr.sh](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/bin/oom_solr.sh) | Shell Script | 13 | 15 | 3 | 31 | +| [solr-8.3.1/bin/solr.cmd](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/bin/solr.cmd) | Batch | 1,782 | 43 | 210 | 2,035 | +| [solr-8.3.1/bin/solr.in.cmd](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/bin/solr.in.cmd) | Batch | 16 | 133 | 29 | 178 | +| [solr-8.3.1/bin/solr.in.sh](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/bin/solr.in.sh) | Shell Script | 0 | 172 | 34 | 206 | +| [solr-8.3.1/contrib/prometheus-exporter/bin/solr-exporter.cmd](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/contrib/prometheus-exporter/bin/solr-exporter.cmd) | Batch | 82 | 0 | 26 | 108 | +| [solr-8.3.1/contrib/prometheus-exporter/conf/grafana-solr-dashboard.json](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/contrib/prometheus-exporter/conf/grafana-solr-dashboard.json) | JSON | 4,465 | 0 | 1 | 4,466 | +| [solr-8.3.1/contrib/prometheus-exporter/conf/solr-exporter-config.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/contrib/prometheus-exporter/conf/solr-exporter-config.xml) | XML | 1,734 | 63 | 10 | 1,807 | +| [solr-8.3.1/docs/images/solr.svg](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/docs/images/solr.svg) | XML | 39 | 0 | 1 | 40 | +| [solr-8.3.1/docs/index.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/docs/index.html) | HTML | 20 | 0 | 1 | 21 | +| [solr-8.3.1/example/example-DIH/solr/atom/conf/atom-data-config.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/atom/conf/atom-data-config.xml) | XML | 21 | 6 | 9 | 36 | +| [solr-8.3.1/example/example-DIH/solr/atom/conf/solrconfig.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/atom/conf/solrconfig.xml) | XML | 20 | 37 | 8 | 65 | +| [solr-8.3.1/example/example-DIH/solr/atom/core.properties](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/atom/core.properties) | Properties | 0 | 0 | 2 | 2 | +| [solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/kmeans-attributes.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/kmeans-attributes.xml) | XML | 13 | 6 | 1 | 20 | +| [solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/lingo-attributes.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/lingo-attributes.xml) | XML | 13 | 11 | 1 | 25 | +| [solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/stc-attributes.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/stc-attributes.xml) | XML | 13 | 6 | 1 | 20 | +| [solr-8.3.1/example/example-DIH/solr/db/conf/currency.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/db/conf/currency.xml) | XML | 45 | 19 | 4 | 68 | +| [solr-8.3.1/example/example-DIH/solr/db/conf/db-data-config.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/db/conf/db-data-config.xml) | XML | 26 | 0 | 4 | 30 | +| [solr-8.3.1/example/example-DIH/solr/db/conf/elevate.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/db/conf/elevate.xml) | XML | 3 | 37 | 3 | 43 | +| [solr-8.3.1/example/example-DIH/solr/db/conf/solrconfig.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/db/conf/solrconfig.xml) | XML | 292 | 958 | 104 | 1,354 | +| [solr-8.3.1/example/example-DIH/solr/db/conf/update-script.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/db/conf/update-script.js) | JavaScript | 15 | 26 | 13 | 54 | +| [solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example.xsl](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example.xsl) | XSL | 98 | 20 | 15 | 133 | +| [solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example_atom.xsl](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example_atom.xsl) | XSL | 40 | 20 | 8 | 68 | +| [solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example_rss.xsl](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example_rss.xsl) | XSL | 41 | 20 | 6 | 67 | +| [solr-8.3.1/example/example-DIH/solr/db/conf/xslt/luke.xsl](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/db/conf/xslt/luke.xsl) | XSL | 301 | 19 | 18 | 338 | +| [solr-8.3.1/example/example-DIH/solr/db/conf/xslt/updateXml.xsl](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/db/conf/xslt/updateXml.xsl) | XSL | 35 | 25 | 11 | 71 | +| [solr-8.3.1/example/example-DIH/solr/db/core.properties](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/db/core.properties) | Properties | 0 | 0 | 2 | 2 | +| [solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/kmeans-attributes.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/kmeans-attributes.xml) | XML | 13 | 6 | 1 | 20 | +| [solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/lingo-attributes.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/lingo-attributes.xml) | XML | 13 | 11 | 1 | 25 | +| [solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/stc-attributes.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/stc-attributes.xml) | XML | 13 | 6 | 1 | 20 | +| [solr-8.3.1/example/example-DIH/solr/mail/conf/currency.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/mail/conf/currency.xml) | XML | 45 | 19 | 4 | 68 | +| [solr-8.3.1/example/example-DIH/solr/mail/conf/elevate.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/mail/conf/elevate.xml) | XML | 3 | 37 | 3 | 43 | +| [solr-8.3.1/example/example-DIH/solr/mail/conf/mail-data-config.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/mail/conf/mail-data-config.xml) | XML | 8 | 4 | 1 | 13 | +| [solr-8.3.1/example/example-DIH/solr/mail/conf/solrconfig.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/mail/conf/solrconfig.xml) | XML | 294 | 958 | 105 | 1,357 | +| [solr-8.3.1/example/example-DIH/solr/mail/conf/update-script.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/mail/conf/update-script.js) | JavaScript | 15 | 26 | 13 | 54 | +| [solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example.xsl](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example.xsl) | XSL | 98 | 20 | 15 | 133 | +| [solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example_atom.xsl](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example_atom.xsl) | XSL | 40 | 20 | 8 | 68 | +| [solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example_rss.xsl](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example_rss.xsl) | XSL | 41 | 20 | 6 | 67 | +| [solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/luke.xsl](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/luke.xsl) | XSL | 301 | 19 | 18 | 338 | +| [solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/updateXml.xsl](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/updateXml.xsl) | XSL | 35 | 25 | 11 | 71 | +| [solr-8.3.1/example/example-DIH/solr/mail/core.properties](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/mail/core.properties) | Properties | 0 | 0 | 2 | 2 | +| [solr-8.3.1/example/example-DIH/solr/solr.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/solr.xml) | XML | 2 | 0 | 1 | 3 | +| [solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/kmeans-attributes.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/kmeans-attributes.xml) | XML | 13 | 6 | 1 | 20 | +| [solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/lingo-attributes.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/lingo-attributes.xml) | XML | 13 | 11 | 1 | 25 | +| [solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/stc-attributes.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/stc-attributes.xml) | XML | 13 | 6 | 1 | 20 | +| [solr-8.3.1/example/example-DIH/solr/solr/conf/currency.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/solr/conf/currency.xml) | XML | 45 | 19 | 4 | 68 | +| [solr-8.3.1/example/example-DIH/solr/solr/conf/elevate.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/solr/conf/elevate.xml) | XML | 3 | 37 | 3 | 43 | +| [solr-8.3.1/example/example-DIH/solr/solr/conf/solr-data-config.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/solr/conf/solr-data-config.xml) | XML | 8 | 16 | 2 | 26 | +| [solr-8.3.1/example/example-DIH/solr/solr/conf/solrconfig.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/solr/conf/solrconfig.xml) | XML | 292 | 958 | 102 | 1,352 | +| [solr-8.3.1/example/example-DIH/solr/solr/conf/update-script.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/solr/conf/update-script.js) | JavaScript | 15 | 26 | 13 | 54 | +| [solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example.xsl](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example.xsl) | XSL | 98 | 20 | 15 | 133 | +| [solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example_atom.xsl](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example_atom.xsl) | XSL | 40 | 20 | 8 | 68 | +| [solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example_rss.xsl](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example_rss.xsl) | XSL | 41 | 20 | 6 | 67 | +| [solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/luke.xsl](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/luke.xsl) | XSL | 301 | 19 | 18 | 338 | +| [solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/updateXml.xsl](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/updateXml.xsl) | XSL | 35 | 25 | 11 | 71 | +| [solr-8.3.1/example/example-DIH/solr/solr/core.properties](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/solr/core.properties) | Properties | 0 | 0 | 2 | 2 | +| [solr-8.3.1/example/example-DIH/solr/tika/conf/solrconfig.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/tika/conf/solrconfig.xml) | XML | 17 | 38 | 7 | 62 | +| [solr-8.3.1/example/example-DIH/solr/tika/conf/tika-data-config.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/tika/conf/tika-data-config.xml) | XML | 17 | 3 | 7 | 27 | +| [solr-8.3.1/example/example-DIH/solr/tika/core.properties](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/example-DIH/solr/tika/core.properties) | Properties | 0 | 0 | 2 | 2 | +| [solr-8.3.1/example/exampledocs/books.json](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/exampledocs/books.json) | JSON | 51 | 0 | 1 | 52 | +| [solr-8.3.1/example/exampledocs/gb18030-example.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/exampledocs/gb18030-example.xml) | XML | 14 | 16 | 3 | 33 | +| [solr-8.3.1/example/exampledocs/hd.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/exampledocs/hd.xml) | XML | 33 | 20 | 4 | 57 | +| [solr-8.3.1/example/exampledocs/ipod_other.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/exampledocs/ipod_other.xml) | XML | 32 | 20 | 9 | 61 | +| [solr-8.3.1/example/exampledocs/ipod_video.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/exampledocs/ipod_video.xml) | XML | 21 | 18 | 2 | 41 | +| [solr-8.3.1/example/exampledocs/manufacturers.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/exampledocs/manufacturers.xml) | XML | 57 | 16 | 3 | 76 | +| [solr-8.3.1/example/exampledocs/mem.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/exampledocs/mem.xml) | XML | 45 | 24 | 9 | 78 | +| [solr-8.3.1/example/exampledocs/money.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/exampledocs/money.xml) | XML | 42 | 17 | 7 | 66 | +| [solr-8.3.1/example/exampledocs/monitor.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/exampledocs/monitor.xml) | XML | 14 | 18 | 3 | 35 | +| [solr-8.3.1/example/exampledocs/monitor2.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/exampledocs/monitor2.xml) | XML | 13 | 18 | 3 | 34 | +| [solr-8.3.1/example/exampledocs/mp500.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/exampledocs/mp500.xml) | XML | 23 | 18 | 3 | 44 | +| [solr-8.3.1/example/exampledocs/sample.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/exampledocs/sample.html) | HTML | 13 | 0 | 1 | 14 | +| [solr-8.3.1/example/exampledocs/sd500.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/exampledocs/sd500.xml) | XML | 19 | 18 | 2 | 39 | +| [solr-8.3.1/example/exampledocs/solr.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/exampledocs/solr.xml) | XML | 20 | 16 | 3 | 39 | +| [solr-8.3.1/example/exampledocs/test_utf8.sh](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/exampledocs/test_utf8.sh) | Shell Script | 57 | 21 | 16 | 94 | +| [solr-8.3.1/example/exampledocs/utf8-example.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/exampledocs/utf8-example.xml) | XML | 19 | 20 | 4 | 43 | +| [solr-8.3.1/example/exampledocs/vidcard.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/exampledocs/vidcard.xml) | XML | 40 | 21 | 2 | 63 | +| [solr-8.3.1/example/files/browse-resources/velocity/resources.properties](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/files/browse-resources/velocity/resources.properties) | Properties | 72 | 6 | 5 | 83 | +| [solr-8.3.1/example/files/browse-resources/velocity/resources_de_DE.properties](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/files/browse-resources/velocity/resources_de_DE.properties) | Properties | 18 | 0 | 1 | 19 | +| [solr-8.3.1/example/files/browse-resources/velocity/resources_fr_FR.properties](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/files/browse-resources/velocity/resources_fr_FR.properties) | Properties | 18 | 0 | 3 | 21 | +| [solr-8.3.1/example/files/conf/currency.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/files/conf/currency.xml) | XML | 45 | 19 | 4 | 68 | +| [solr-8.3.1/example/files/conf/elevate.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/files/conf/elevate.xml) | XML | 3 | 37 | 3 | 43 | +| [solr-8.3.1/example/files/conf/params.json](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/files/conf/params.json) | JSON | 34 | 0 | 1 | 35 | +| [solr-8.3.1/example/files/conf/solrconfig.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/files/conf/solrconfig.xml) | XML | 298 | 979 | 102 | 1,379 | +| [solr-8.3.1/example/files/conf/update-script.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/files/conf/update-script.js) | JavaScript | 80 | 13 | 23 | 116 | +| [solr-8.3.1/example/files/conf/velocity/dropit.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/files/conf/velocity/dropit.js) | JavaScript | 0 | 0 | 2 | 2 | +| [solr-8.3.1/example/files/conf/velocity/jquery.tx3-tag-cloud.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/files/conf/velocity/jquery.tx3-tag-cloud.js) | JavaScript | 0 | 0 | 2 | 2 | +| [solr-8.3.1/example/files/conf/velocity/js/dropit.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/files/conf/velocity/js/dropit.js) | JavaScript | 64 | 15 | 19 | 98 | +| [solr-8.3.1/example/files/conf/velocity/js/jquery.autocomplete.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/files/conf/velocity/js/jquery.autocomplete.js) | JavaScript | 620 | 68 | 76 | 764 | +| [solr-8.3.1/example/files/conf/velocity/js/jquery.tx3-tag-cloud.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/files/conf/velocity/js/jquery.tx3-tag-cloud.js) | JavaScript | 46 | 16 | 9 | 71 | +| [solr-8.3.1/example/films/film_data_generator.py](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/films/film_data_generator.py) | Python | 82 | 24 | 12 | 118 | +| [solr-8.3.1/example/films/films.json](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/films/films.json) | JSON | 15,830 | 0 | 1 | 15,831 | +| [solr-8.3.1/example/films/films.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/example/films/films.xml) | XML | 11,438 | 0 | 1 | 11,439 | +| [solr-8.3.1/server/contexts/solr-jetty-context.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/contexts/solr-jetty-context.xml) | XML | 8 | 0 | 1 | 9 | +| [solr-8.3.1/server/etc/jetty-http.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/etc/jetty-http.xml) | XML | 33 | 15 | 4 | 52 | +| [solr-8.3.1/server/etc/jetty-https.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/etc/jetty-https.xml) | XML | 56 | 16 | 5 | 77 | +| [solr-8.3.1/server/etc/jetty-https8.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/etc/jetty-https8.xml) | XML | 34 | 32 | 4 | 70 | +| [solr-8.3.1/server/etc/jetty-ssl.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/etc/jetty-ssl.xml) | XML | 23 | 11 | 4 | 38 | +| [solr-8.3.1/server/etc/jetty.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/etc/jetty.xml) | XML | 110 | 94 | 18 | 222 | +| [solr-8.3.1/server/etc/webdefault.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/etc/webdefault.xml) | XML | 272 | 232 | 24 | 528 | +| [solr-8.3.1/server/resources/jetty-logging.properties](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/resources/jetty-logging.properties) | Properties | 1 | 0 | 1 | 2 | +| [solr-8.3.1/server/resources/log4j2-console.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/resources/log4j2-console.xml) | XML | 19 | 43 | 6 | 68 | +| [solr-8.3.1/server/resources/log4j2.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/resources/log4j2.xml) | XML | 54 | 80 | 9 | 143 | +| [solr-8.3.1/server/scripts/cloud-scripts/snapshotscli.sh](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/scripts/cloud-scripts/snapshotscli.sh) | Shell Script | 152 | 2 | 23 | 177 | +| [solr-8.3.1/server/scripts/cloud-scripts/zkcli.bat](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/scripts/cloud-scripts/zkcli.bat) | Batch | 11 | 8 | 7 | 26 | +| [solr-8.3.1/server/scripts/cloud-scripts/zkcli.sh](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/scripts/cloud-scripts/zkcli.sh) | Shell Script | 9 | 9 | 9 | 27 | +| [solr-8.3.1/server/solr-webapp/webapp/WEB-INF/web.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/web.xml) | XML | 62 | 42 | 11 | 115 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/analysis.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/analysis.css) | CSS | 237 | 19 | 48 | 304 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/chosen.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/chosen.css) | CSS | 402 | 55 | 9 | 466 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/cloud.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/cloud.css) | CSS | 594 | 23 | 106 | 723 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/collections.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/collections.css) | CSS | 296 | 18 | 65 | 379 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/common.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/common.css) | CSS | 647 | 19 | 106 | 772 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/cores.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/cores.css) | CSS | 171 | 18 | 37 | 226 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/dashboard.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/dashboard.css) | CSS | 134 | 18 | 28 | 180 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/dataimport.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/dataimport.css) | CSS | 292 | 18 | 61 | 371 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/documents.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/documents.css) | CSS | 131 | 23 | 26 | 180 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/files.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/files.css) | CSS | 29 | 18 | 7 | 54 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/index.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/index.css) | CSS | 164 | 18 | 35 | 217 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/java-properties.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/java-properties.css) | CSS | 24 | 18 | 6 | 48 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/jquery-ui.min.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/jquery-ui.min.css) | CSS | 1 | 26 | 2 | 29 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/jquery-ui.structure.min.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/jquery-ui.structure.min.css) | CSS | 1 | 22 | 2 | 25 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/logging.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/logging.css) | CSS | 303 | 19 | 63 | 385 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/login.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/login.css) | CSS | 80 | 18 | 12 | 110 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/menu.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/menu.css) | CSS | 257 | 18 | 56 | 331 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/overview.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/overview.css) | CSS | 20 | 18 | 5 | 43 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/plugins.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/plugins.css) | CSS | 172 | 18 | 31 | 221 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/query.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/query.css) | CSS | 120 | 18 | 25 | 163 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/replication.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/replication.css) | CSS | 404 | 18 | 79 | 501 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/schema.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/schema.css) | CSS | 596 | 20 | 112 | 728 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/segments.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/segments.css) | CSS | 133 | 18 | 22 | 173 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/stream.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/stream.css) | CSS | 178 | 22 | 34 | 234 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/suggestions.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/suggestions.css) | CSS | 43 | 18 | 4 | 65 | +| [solr-8.3.1/server/solr-webapp/webapp/css/angular/threads.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/css/angular/threads.css) | CSS | 119 | 18 | 24 | 161 | +| [solr-8.3.1/server/solr-webapp/webapp/img/solr.svg](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/img/solr.svg) | XML | 39 | 0 | 1 | 40 | +| [solr-8.3.1/server/solr-webapp/webapp/index.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/index.html) | HTML | 203 | 16 | 38 | 257 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/app.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/app.js) | JavaScript | 512 | 19 | 31 | 562 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/alias-overview.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/alias-overview.js) | JavaScript | 8 | 16 | 4 | 28 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/analysis.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/analysis.js) | JavaScript | 161 | 18 | 23 | 202 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cloud.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cloud.js) | JavaScript | 847 | 51 | 124 | 1,022 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cluster-suggestions.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cluster-suggestions.js) | JavaScript | 43 | 18 | 2 | 63 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/collection-overview.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/collection-overview.js) | JavaScript | 18 | 16 | 6 | 40 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/collections.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/collections.js) | JavaScript | 244 | 19 | 27 | 290 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/core-overview.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/core-overview.js) | JavaScript | 69 | 16 | 9 | 94 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cores.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cores.js) | JavaScript | 151 | 16 | 14 | 181 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/dataimport.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/dataimport.js) | JavaScript | 234 | 25 | 44 | 303 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/documents.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/documents.js) | JavaScript | 107 | 18 | 13 | 138 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/files.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/files.js) | JavaScript | 72 | 16 | 13 | 101 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/index.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/index.js) | JavaScript | 61 | 23 | 14 | 98 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/java-properties.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/java-properties.js) | JavaScript | 27 | 16 | 3 | 46 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/logging.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/logging.js) | JavaScript | 112 | 35 | 12 | 159 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/login.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/login.js) | JavaScript | 269 | 30 | 19 | 318 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/plugins.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/plugins.js) | JavaScript | 130 | 19 | 19 | 168 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/query.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/query.js) | JavaScript | 88 | 19 | 14 | 121 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/replication.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/replication.js) | JavaScript | 178 | 18 | 40 | 236 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/schema.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/schema.js) | JavaScript | 524 | 19 | 69 | 612 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/segments.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/segments.js) | JavaScript | 64 | 16 | 20 | 100 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/stream.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/stream.js) | JavaScript | 173 | 16 | 51 | 240 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/threads.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/threads.js) | JavaScript | 33 | 16 | 2 | 51 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/unknown.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/unknown.js) | JavaScript | 14 | 22 | 2 | 38 | +| [solr-8.3.1/server/solr-webapp/webapp/js/angular/services.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/js/angular/services.js) | JavaScript | 311 | 18 | 11 | 340 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/angular-chosen.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/angular-chosen.js) | JavaScript | 112 | 24 | 4 | 140 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/angular-cookies.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/angular-cookies.js) | JavaScript | 73 | 135 | 22 | 230 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/angular-cookies.min.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/angular-cookies.min.js) | JavaScript | 2 | 29 | 1 | 32 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/angular-resource.min.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/angular-resource.min.js) | JavaScript | 7 | 29 | 1 | 37 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/angular-route.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/angular-route.js) | JavaScript | 316 | 636 | 67 | 1,019 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/angular-route.min.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/angular-route.min.js) | JavaScript | 9 | 29 | 1 | 39 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/angular-sanitize.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/angular-sanitize.js) | JavaScript | 311 | 328 | 65 | 704 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/angular-sanitize.min.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/angular-sanitize.min.js) | JavaScript | 10 | 29 | 1 | 40 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/angular-utf8-base64.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/angular-utf8-base64.js) | JavaScript | 157 | 48 | 13 | 218 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/angular-utf8-base64.min.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/angular-utf8-base64.min.js) | JavaScript | 1 | 42 | 3 | 46 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/angular.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/angular.js) | JavaScript | 10,845 | 13,211 | 2,038 | 26,094 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/angular.min.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/angular.min.js) | JavaScript | 73 | 201 | 0 | 274 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/chosen.jquery.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/chosen.jquery.js) | JavaScript | 1,151 | 36 | 8 | 1,195 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/chosen.jquery.min.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/chosen.jquery.min.js) | JavaScript | 2 | 29 | 0 | 31 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/d3.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/d3.js) | JavaScript | 7,720 | 519 | 1,135 | 9,374 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/highlight.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/highlight.js) | JavaScript | 2 | 29 | 1 | 32 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/jquery-1.7.2.min.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/jquery-1.7.2.min.js) | JavaScript | 3 | 26 | 2 | 31 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/jquery-2.1.3.min.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/jquery-2.1.3.min.js) | JavaScript | 3 | 26 | 1 | 30 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/jquery-ui.min.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/jquery-ui.min.js) | JavaScript | 2 | 26 | 3 | 31 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/jquery.jstree.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/jquery.jstree.js) | JavaScript | 3,222 | 228 | 85 | 3,535 | +| [solr-8.3.1/server/solr-webapp/webapp/libs/ngtimeago.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/libs/ngtimeago.js) | JavaScript | 66 | 23 | 13 | 102 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/alias_overview.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/alias_overview.html) | HTML | 21 | 16 | 10 | 47 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/analysis.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/analysis.html) | HTML | 87 | 16 | 26 | 129 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/cloud.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/cloud.html) | HTML | 263 | 16 | 24 | 303 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/cluster_suggestions.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/cluster_suggestions.html) | HTML | 30 | 16 | 4 | 50 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/collection_overview.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/collection_overview.html) | HTML | 48 | 16 | 22 | 86 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/collections.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/collections.html) | HTML | 301 | 16 | 79 | 396 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/core_overview.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/core_overview.html) | HTML | 125 | 16 | 66 | 207 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/cores.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/cores.html) | HTML | 142 | 16 | 67 | 225 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/dataimport.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/dataimport.html) | HTML | 142 | 16 | 52 | 210 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/documents.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/documents.html) | HTML | 83 | 20 | 9 | 112 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/files.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/files.html) | HTML | 17 | 16 | 15 | 48 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/index.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/index.html) | HTML | 135 | 42 | 85 | 262 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/java-properties.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/java-properties.html) | HTML | 10 | 16 | 2 | 28 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/logging-levels.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/logging-levels.html) | HTML | 35 | 16 | 6 | 57 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/logging.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/logging.html) | HTML | 40 | 16 | 2 | 58 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/login.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/login.html) | HTML | 134 | 16 | 11 | 161 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/plugins.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/plugins.html) | HTML | 48 | 17 | 8 | 73 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/query.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/query.html) | HTML | 270 | 16 | 84 | 370 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/replication.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/replication.html) | HTML | 153 | 16 | 71 | 240 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/schema.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/schema.html) | HTML | 336 | 16 | 104 | 456 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/segments.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/segments.html) | HTML | 70 | 16 | 14 | 100 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/stream.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/stream.html) | HTML | 40 | 16 | 9 | 65 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/threads.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/threads.html) | HTML | 36 | 16 | 14 | 66 | +| [solr-8.3.1/server/solr-webapp/webapp/partials/unknown.html](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr-webapp/webapp/partials/unknown.html) | HTML | 5 | 16 | 3 | 24 | +| [solr-8.3.1/server/solr/configsets/_default/conf/params.json](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/_default/conf/params.json) | JSON | 20 | 0 | 1 | 21 | +| [solr-8.3.1/server/solr/configsets/_default/conf/solrconfig.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/_default/conf/solrconfig.xml) | XML | 296 | 976 | 98 | 1,370 | +| [solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_rest_managed.json](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_rest_managed.json) | JSON | 1 | 0 | 1 | 2 | +| [solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_schema_analysis_stopwords_english.json](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_schema_analysis_stopwords_english.json) | JSON | 38 | 0 | 1 | 39 | +| [solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_schema_analysis_synonyms_english.json](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_schema_analysis_synonyms_english.json) | JSON | 11 | 0 | 1 | 12 | +| [solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/kmeans-attributes.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/kmeans-attributes.xml) | XML | 13 | 6 | 1 | 20 | +| [solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/lingo-attributes.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/lingo-attributes.xml) | XML | 13 | 11 | 1 | 25 | +| [solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/stc-attributes.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/stc-attributes.xml) | XML | 13 | 6 | 1 | 20 | +| [solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/currency.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/currency.xml) | XML | 45 | 19 | 4 | 68 | +| [solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/elevate.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/elevate.xml) | XML | 3 | 37 | 3 | 43 | +| [solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/params.json](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/params.json) | JSON | 11 | 0 | 1 | 12 | +| [solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml) | XML | 410 | 1,097 | 124 | 1,631 | +| [solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/update-script.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/update-script.js) | JavaScript | 15 | 26 | 13 | 54 | +| [solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.css) | CSS | 34 | 9 | 6 | 49 | +| [solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.js](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.js) | JavaScript | 620 | 68 | 76 | 764 | +| [solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/main.css](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/main.css) | CSS | 185 | 0 | 47 | 232 | +| [solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example.xsl](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example.xsl) | XSL | 98 | 20 | 15 | 133 | +| [solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example_atom.xsl](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example_atom.xsl) | XSL | 40 | 20 | 8 | 68 | +| [solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example_rss.xsl](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example_rss.xsl) | XSL | 41 | 20 | 6 | 67 | +| [solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/luke.xsl](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/luke.xsl) | XSL | 301 | 19 | 18 | 338 | +| [solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/updateXml.xsl](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/updateXml.xsl) | XSL | 35 | 25 | 11 | 71 | +| [solr-8.3.1/server/solr/dash/conf/params.json](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/dash/conf/params.json) | JSON | 20 | 0 | 0 | 20 | +| [solr-8.3.1/server/solr/dash/conf/schema.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/dash/conf/schema.xml) | XML | 51 | 4 | 7 | 62 | +| [solr-8.3.1/server/solr/dash/conf/solrconfig.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/dash/conf/solrconfig.xml) | XML | 270 | 962 | 97 | 1,329 | +| [solr-8.3.1/server/solr/dash/core.properties](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/dash/core.properties) | Properties | 4 | 2 | 1 | 7 | +| [solr-8.3.1/server/solr/solr.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/solr.xml) | XML | 21 | 25 | 11 | 57 | +| [solr-8.3.1/server/solr/zoo.cfg](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/solr/zoo.cfg) | Properties | 3 | 25 | 4 | 32 | +| [solr-8.3.1/server/tmp/start_3204295554151338130.properties](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/tmp/start_3204295554151338130.properties) | Properties | 9 | 2 | 1 | 12 | +| [solr-8.3.1/server/tmp/start_5812170489311981381.properties](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/tmp/start_5812170489311981381.properties) | Properties | 9 | 2 | 1 | 12 | +| [solr-8.3.1/server/tmp/start_6476327636763392575.properties](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/tmp/start_6476327636763392575.properties) | Properties | 9 | 2 | 1 | 12 | +| [solr-8.3.1/server/tmp/start_7329004517204835686.properties](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/tmp/start_7329004517204835686.properties) | Properties | 9 | 2 | 1 | 12 | +| [solr-8.3.1/server/tmp/start_9067375725008958788.properties](file:///Users/bcz/Documents/GitHub/Dash-Web/solr-8.3.1/server/tmp/start_9067375725008958788.properties) | Properties | 9 | 2 | 1 | 12 | +| [src/Utils.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/Utils.ts) | TypeScript | 441 | 23 | 81 | 545 | +| [src/client/ClientRecommender.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/ClientRecommender.scss) | SCSS | 9 | 1 | 2 | 12 | +| [src/client/ClientRecommender.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/ClientRecommender.tsx) | TypeScript React | 320 | 61 | 44 | 425 | +| [src/client/DocServer.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/DocServer.ts) | TypeScript | 279 | 136 | 65 | 480 | +| [src/client/Network.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/Network.ts) | TypeScript | 34 | 0 | 5 | 39 | +| [src/client/apis/GoogleAuthenticationManager.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/apis/GoogleAuthenticationManager.scss) | SCSS | 16 | 0 | 3 | 19 | +| [src/client/apis/GoogleAuthenticationManager.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/apis/GoogleAuthenticationManager.tsx) | TypeScript React | 115 | 2 | 11 | 128 | +| [src/client/apis/IBM_Recommender.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/apis/IBM_Recommender.ts) | TypeScript | 0 | 33 | 7 | 40 | +| [src/client/apis/google_docs/GoogleApiClientUtils.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/apis/google_docs/GoogleApiClientUtils.ts) | TypeScript | 225 | 9 | 27 | 261 | +| [src/client/apis/google_docs/GooglePhotosClientUtils.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/apis/google_docs/GooglePhotosClientUtils.ts) | TypeScript | 318 | 0 | 46 | 364 | +| [src/client/apis/youtube/YoutubeBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/apis/youtube/YoutubeBox.scss) | SCSS | 105 | 5 | 16 | 126 | +| [src/client/apis/youtube/YoutubeBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/apis/youtube/YoutubeBox.tsx) | TypeScript React | 274 | 48 | 40 | 362 | +| [src/client/cognitive_services/CognitiveServices.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/cognitive_services/CognitiveServices.ts) | TypeScript | 342 | 10 | 57 | 409 | +| [src/client/documents/DocumentTypes.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/documents/DocumentTypes.ts) | TypeScript | 32 | 2 | 3 | 37 | +| [src/client/documents/Documents.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/documents/Documents.ts) | TypeScript | 807 | 141 | 87 | 1,035 | +| [src/client/goldenLayout.d.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/goldenLayout.d.ts) | TypeScript | 2 | 0 | 1 | 3 | +| [src/client/goldenLayout.js](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/goldenLayout.js) | JavaScript | 3,084 | 1,571 | 720 | 5,375 | +| [src/client/util/DictationManager.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/DictationManager.ts) | TypeScript | 312 | 25 | 51 | 388 | +| [src/client/util/DocumentManager.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/DocumentManager.ts) | TypeScript | 207 | 16 | 21 | 244 | +| [src/client/util/DragManager.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/DragManager.ts) | TypeScript | 504 | 11 | 35 | 550 | +| [src/client/util/DropConverter.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/DropConverter.ts) | TypeScript | 70 | 6 | 2 | 78 | +| [src/client/util/History.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/History.ts) | TypeScript | 166 | 13 | 27 | 206 | +| [src/client/util/Import & Export/DirectoryImportBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/Import%20%26%20Export/DirectoryImportBox.scss) | SCSS | 6 | 0 | 0 | 6 | +| [src/client/util/Import & Export/DirectoryImportBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/Import%20%26%20Export/DirectoryImportBox.tsx) | TypeScript React | 393 | 0 | 31 | 424 | +| [src/client/util/Import & Export/ImageUtils.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/Import%20%26%20Export/ImageUtils.ts) | TypeScript | 35 | 0 | 4 | 39 | +| [src/client/util/Import & Export/ImportMetadataEntry.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/Import%20%26%20Export/ImportMetadataEntry.tsx) | TypeScript React | 132 | 0 | 17 | 149 | +| [src/client/util/InteractionUtils.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/InteractionUtils.tsx) | TypeScript React | 122 | 112 | 21 | 255 | +| [src/client/util/KeyCodes.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/KeyCodes.ts) | TypeScript | 100 | 36 | 0 | 136 | +| [src/client/util/LinkManager.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/LinkManager.ts) | TypeScript | 161 | 30 | 23 | 214 | +| [src/client/util/ProsemirrorCopy/prompt.js](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/ProsemirrorCopy/prompt.js) | JavaScript | 128 | 30 | 22 | 180 | +| [src/client/util/Scripting.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/Scripting.ts) | TypeScript | 247 | 15 | 30 | 292 | +| [src/client/util/ScrollBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/ScrollBox.tsx) | TypeScript React | 19 | 0 | 2 | 21 | +| [src/client/util/SearchUtil.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/SearchUtil.ts) | TypeScript | 123 | 4 | 18 | 145 | +| [src/client/util/SelectionManager.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/SelectionManager.ts) | TypeScript | 69 | 5 | 15 | 89 | +| [src/client/util/SerializationHelper.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/SerializationHelper.ts) | TypeScript | 113 | 15 | 15 | 143 | +| [src/client/util/SettingsManager.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/SettingsManager.scss) | SCSS | 111 | 0 | 25 | 136 | +| [src/client/util/SettingsManager.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/SettingsManager.tsx) | TypeScript React | 114 | 0 | 17 | 131 | +| [src/client/util/SharingManager.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/SharingManager.scss) | SCSS | 122 | 0 | 18 | 140 | +| [src/client/util/SharingManager.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/SharingManager.tsx) | TypeScript React | 273 | 0 | 25 | 298 | +| [src/client/util/Transform.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/Transform.ts) | TypeScript | 76 | 0 | 23 | 99 | +| [src/client/util/TypedEvent.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/TypedEvent.ts) | TypeScript | 29 | 3 | 8 | 40 | +| [src/client/util/UndoManager.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/UndoManager.ts) | TypeScript | 167 | 1 | 27 | 195 | +| [src/client/util/clamp.js](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/clamp.js) | JavaScript | 14 | 0 | 1 | 15 | +| [src/client/util/convertToCSSPTValue.js](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/convertToCSSPTValue.js) | JavaScript | 31 | 4 | 8 | 43 | +| [src/client/util/jsx-decl.d.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/jsx-decl.d.ts) | TypeScript | 1 | 0 | 1 | 2 | +| [src/client/util/request-image-size.js](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/request-image-size.js) | JavaScript | 51 | 10 | 14 | 75 | +| [src/client/util/toCSSLineSpacing.js](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/util/toCSSLineSpacing.js) | JavaScript | 35 | 15 | 14 | 64 | +| [src/client/views/AntimodeMenu.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/AntimodeMenu.scss) | SCSS | 35 | 1 | 6 | 42 | +| [src/client/views/AntimodeMenu.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/AntimodeMenu.tsx) | TypeScript React | 121 | 14 | 22 | 157 | +| [src/client/views/ContextMenu.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/ContextMenu.scss) | SCSS | 130 | 17 | 14 | 161 | +| [src/client/views/ContextMenu.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/ContextMenu.tsx) | TypeScript React | 258 | 3 | 33 | 294 | +| [src/client/views/ContextMenuItem.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/ContextMenuItem.tsx) | TypeScript React | 107 | 0 | 10 | 117 | +| [src/client/views/DictationOverlay.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/DictationOverlay.tsx) | TypeScript React | 64 | 0 | 7 | 71 | +| [src/client/views/DocComponent.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/DocComponent.tsx) | TypeScript React | 87 | 20 | 15 | 122 | +| [src/client/views/DocumentButtonBar.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/DocumentButtonBar.scss) | SCSS | 89 | 0 | 16 | 105 | +| [src/client/views/DocumentButtonBar.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/DocumentButtonBar.tsx) | TypeScript React | 284 | 4 | 27 | 315 | +| [src/client/views/DocumentDecorations.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/DocumentDecorations.scss) | SCSS | 319 | 0 | 46 | 365 | +| [src/client/views/DocumentDecorations.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/DocumentDecorations.tsx) | TypeScript React | 479 | 2 | 26 | 507 | +| [src/client/views/EditableView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/EditableView.scss) | SCSS | 22 | 0 | 3 | 25 | +| [src/client/views/EditableView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/EditableView.tsx) | TypeScript React | 149 | 19 | 16 | 184 | +| [src/client/views/GestureOverlay.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/GestureOverlay.scss) | SCSS | 56 | 0 | 8 | 64 | +| [src/client/views/GestureOverlay.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/GestureOverlay.tsx) | TypeScript React | 711 | 45 | 67 | 823 | +| [src/client/views/GlobalKeyHandler.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/GlobalKeyHandler.ts) | TypeScript | 232 | 10 | 27 | 269 | +| [src/client/views/InkingControl.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/InkingControl.scss) | SCSS | 127 | 4 | 0 | 131 | +| [src/client/views/InkingControl.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/InkingControl.tsx) | TypeScript React | 78 | 3 | 10 | 91 | +| [src/client/views/InkingStroke.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/InkingStroke.scss) | SCSS | 7 | 0 | 0 | 7 | +| [src/client/views/InkingStroke.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/InkingStroke.tsx) | TypeScript React | 63 | 0 | 5 | 68 | +| [src/client/views/KeyphraseQueryView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/KeyphraseQueryView.scss) | SCSS | 7 | 0 | 1 | 8 | +| [src/client/views/KeyphraseQueryView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/KeyphraseQueryView.tsx) | TypeScript React | 30 | 2 | 3 | 35 | +| [src/client/views/Main.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/Main.scss) | SCSS | 51 | 8 | 10 | 69 | +| [src/client/views/Main.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/Main.tsx) | TypeScript React | 22 | 1 | 2 | 25 | +| [src/client/views/MainView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/MainView.scss) | SCSS | 138 | 1 | 21 | 160 | +| [src/client/views/MainView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/MainView.tsx) | TypeScript React | 553 | 13 | 36 | 602 | +| [src/client/views/MainViewModal.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/MainViewModal.scss) | SCSS | 24 | 0 | 1 | 25 | +| [src/client/views/MainViewModal.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/MainViewModal.tsx) | TypeScript React | 39 | 0 | 5 | 44 | +| [src/client/views/MainViewNotifs.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/MainViewNotifs.scss) | SCSS | 17 | 0 | 1 | 18 | +| [src/client/views/MainViewNotifs.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/MainViewNotifs.tsx) | TypeScript React | 29 | 0 | 4 | 33 | +| [src/client/views/MetadataEntryMenu.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/MetadataEntryMenu.scss) | SCSS | 79 | 0 | 14 | 93 | +| [src/client/views/MetadataEntryMenu.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/MetadataEntryMenu.tsx) | TypeScript React | 207 | 0 | 16 | 223 | +| [src/client/views/OCRUtils.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/OCRUtils.ts) | TypeScript | 2 | 2 | 4 | 8 | +| [src/client/views/OverlayView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/OverlayView.scss) | SCSS | 41 | 0 | 6 | 47 | +| [src/client/views/OverlayView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/OverlayView.tsx) | TypeScript React | 194 | 4 | 19 | 217 | +| [src/client/views/Palette.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/Palette.scss) | SCSS | 26 | 0 | 4 | 30 | +| [src/client/views/Palette.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/Palette.tsx) | TypeScript React | 65 | 0 | 5 | 70 | +| [src/client/views/PreviewCursor.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/PreviewCursor.scss) | SCSS | 9 | 0 | 1 | 10 | +| [src/client/views/PreviewCursor.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/PreviewCursor.tsx) | TypeScript React | 115 | 8 | 9 | 132 | +| [src/client/views/RecommendationsBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/RecommendationsBox.scss) | SCSS | 52 | 10 | 8 | 70 | +| [src/client/views/RecommendationsBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/RecommendationsBox.tsx) | TypeScript React | 116 | 67 | 17 | 200 | +| [src/client/views/ScriptBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/ScriptBox.scss) | SCSS | 15 | 0 | 2 | 17 | +| [src/client/views/ScriptBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/ScriptBox.tsx) | TypeScript React | 112 | 2 | 12 | 126 | +| [src/client/views/ScriptingRepl.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/ScriptingRepl.scss) | SCSS | 42 | 0 | 9 | 51 | +| [src/client/views/ScriptingRepl.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/ScriptingRepl.tsx) | TypeScript React | 220 | 1 | 24 | 245 | +| [src/client/views/SearchDocBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/SearchDocBox.tsx) | TypeScript React | 359 | 17 | 55 | 431 | +| [src/client/views/TemplateMenu.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/TemplateMenu.scss) | SCSS | 46 | 0 | 5 | 51 | +| [src/client/views/TemplateMenu.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/TemplateMenu.tsx) | TypeScript React | 167 | 1 | 14 | 182 | +| [src/client/views/Templates.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/Templates.tsx) | TypeScript React | 34 | 0 | 8 | 42 | +| [src/client/views/TouchScrollableMenu.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/TouchScrollableMenu.tsx) | TypeScript React | 52 | 0 | 7 | 59 | +| [src/client/views/Touchable.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/Touchable.tsx) | TypeScript React | 172 | 28 | 39 | 239 | +| [src/client/views/_nodeModuleOverrides.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/_nodeModuleOverrides.scss) | SCSS | 9 | 9 | 4 | 22 | +| [src/client/views/animationtimeline/Keyframe.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/animationtimeline/Keyframe.scss) | SCSS | 83 | 5 | 17 | 105 | +| [src/client/views/animationtimeline/Keyframe.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/animationtimeline/Keyframe.tsx) | TypeScript React | 468 | 50 | 42 | 560 | +| [src/client/views/animationtimeline/Timeline.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/animationtimeline/Timeline.scss) | SCSS | 264 | 14 | 44 | 322 | +| [src/client/views/animationtimeline/Timeline.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/animationtimeline/Timeline.tsx) | TypeScript React | 467 | 97 | 58 | 622 | +| [src/client/views/animationtimeline/TimelineMenu.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/animationtimeline/TimelineMenu.scss) | SCSS | 75 | 2 | 17 | 94 | +| [src/client/views/animationtimeline/TimelineMenu.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/animationtimeline/TimelineMenu.tsx) | TypeScript React | 68 | 0 | 10 | 78 | +| [src/client/views/animationtimeline/TimelineOverview.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/animationtimeline/TimelineOverview.scss) | SCSS | 89 | 6 | 12 | 107 | +| [src/client/views/animationtimeline/TimelineOverview.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/animationtimeline/TimelineOverview.tsx) | TypeScript React | 155 | 0 | 27 | 182 | +| [src/client/views/animationtimeline/Track.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/animationtimeline/Track.scss) | SCSS | 13 | 0 | 2 | 15 | +| [src/client/views/animationtimeline/Track.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/animationtimeline/Track.tsx) | TypeScript React | 284 | 63 | 33 | 380 | +| [src/client/views/collections/CollectionCarouselView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionCarouselView.scss) | SCSS | 37 | 0 | 1 | 38 | +| [src/client/views/collections/CollectionCarouselView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionCarouselView.tsx) | TypeScript React | 110 | 1 | 10 | 121 | +| [src/client/views/collections/CollectionDockingView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionDockingView.scss) | SCSS | 391 | 7 | 60 | 458 | +| [src/client/views/collections/CollectionDockingView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionDockingView.tsx) | TypeScript React | 707 | 61 | 65 | 833 | +| [src/client/views/collections/CollectionLinearView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionLinearView.scss) | SCSS | 68 | 0 | 10 | 78 | +| [src/client/views/collections/CollectionLinearView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionLinearView.tsx) | TypeScript React | 125 | 1 | 9 | 135 | +| [src/client/views/collections/CollectionMapView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionMapView.scss) | SCSS | 27 | 0 | 3 | 30 | +| [src/client/views/collections/CollectionMapView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionMapView.tsx) | TypeScript React | 235 | 10 | 18 | 263 | +| [src/client/views/collections/CollectionMasonryViewFieldRow.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionMasonryViewFieldRow.tsx) | TypeScript React | 308 | 0 | 24 | 332 | +| [src/client/views/collections/CollectionPileView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionPileView.scss) | SCSS | 8 | 0 | 1 | 9 | +| [src/client/views/collections/CollectionPileView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionPileView.tsx) | TypeScript React | 112 | 5 | 11 | 128 | +| [src/client/views/collections/CollectionSchemaCells.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionSchemaCells.tsx) | TypeScript React | 274 | 17 | 38 | 329 | +| [src/client/views/collections/CollectionSchemaHeaders.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionSchemaHeaders.tsx) | TypeScript React | 318 | 5 | 41 | 364 | +| [src/client/views/collections/CollectionSchemaMovableTableHOC.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionSchemaMovableTableHOC.tsx) | TypeScript React | 216 | 0 | 27 | 243 | +| [src/client/views/collections/CollectionSchemaView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionSchemaView.scss) | SCSS | 406 | 4 | 88 | 498 | +| [src/client/views/collections/CollectionSchemaView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionSchemaView.tsx) | TypeScript React | 651 | 20 | 82 | 753 | +| [src/client/views/collections/CollectionStackingView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionStackingView.scss) | SCSS | 353 | 1 | 50 | 404 | +| [src/client/views/collections/CollectionStackingView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionStackingView.tsx) | TypeScript React | 430 | 5 | 25 | 460 | +| [src/client/views/collections/CollectionStackingViewFieldColumn.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionStackingViewFieldColumn.tsx) | TypeScript React | 367 | 0 | 27 | 394 | +| [src/client/views/collections/CollectionStaffView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionStaffView.scss) | SCSS | 12 | 0 | 1 | 13 | +| [src/client/views/collections/CollectionStaffView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionStaffView.tsx) | TypeScript React | 46 | 0 | 7 | 53 | +| [src/client/views/collections/CollectionSubView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionSubView.tsx) | TypeScript React | 390 | 7 | 25 | 422 | +| [src/client/views/collections/CollectionTimeView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionTimeView.scss) | SCSS | 80 | 0 | 13 | 93 | +| [src/client/views/collections/CollectionTimeView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionTimeView.tsx) | TypeScript React | 177 | 0 | 15 | 192 | +| [src/client/views/collections/CollectionTreeView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionTreeView.scss) | SCSS | 125 | 4 | 23 | 152 | +| [src/client/views/collections/CollectionTreeView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionTreeView.tsx) | TypeScript React | 801 | 19 | 40 | 860 | +| [src/client/views/collections/CollectionView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionView.scss) | SCSS | 70 | 0 | 8 | 78 | +| [src/client/views/collections/CollectionView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionView.tsx) | TypeScript React | 457 | 13 | 34 | 504 | +| [src/client/views/collections/CollectionViewChromes.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionViewChromes.scss) | SCSS | 308 | 4 | 45 | 357 | +| [src/client/views/collections/CollectionViewChromes.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/CollectionViewChromes.tsx) | TypeScript React | 393 | 67 | 47 | 507 | +| [src/client/views/collections/KeyRestrictionRow.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/KeyRestrictionRow.tsx) | TypeScript React | 49 | 2 | 4 | 55 | +| [src/client/views/collections/ParentDocumentSelector.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/ParentDocumentSelector.scss) | SCSS | 54 | 0 | 2 | 56 | +| [src/client/views/collections/ParentDocumentSelector.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/ParentDocumentSelector.tsx) | TypeScript React | 120 | 0 | 11 | 131 | +| [src/client/views/collections/collectionFreeForm/CollectionFreeFormLayoutEngines.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/collectionFreeForm/CollectionFreeFormLayoutEngines.tsx) | TypeScript React | 422 | 10 | 27 | 459 | +| [src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.scss) | SCSS | 19 | 0 | 1 | 20 | +| [src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.tsx) | TypeScript React | 110 | 5 | 4 | 119 | +| [src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.scss) | SCSS | 11 | 0 | 0 | 11 | +| [src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx) | TypeScript React | 44 | 0 | 2 | 46 | +| [src/client/views/collections/collectionFreeForm/CollectionFreeFormRemoteCursors.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/collectionFreeForm/CollectionFreeFormRemoteCursors.scss) | SCSS | 20 | 1 | 3 | 24 | +| [src/client/views/collections/collectionFreeForm/CollectionFreeFormRemoteCursors.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/collectionFreeForm/CollectionFreeFormRemoteCursors.tsx) | TypeScript React | 67 | 0 | 12 | 79 | +| [src/client/views/collections/collectionFreeForm/CollectionFreeFormView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.scss) | SCSS | 95 | 9 | 17 | 121 | +| [src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx) | TypeScript React | 1,186 | 47 | 97 | 1,330 | +| [src/client/views/collections/collectionFreeForm/MarqueeOptionsMenu.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/collectionFreeForm/MarqueeOptionsMenu.tsx) | TypeScript React | 52 | 0 | 5 | 57 | +| [src/client/views/collections/collectionFreeForm/MarqueeView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/collectionFreeForm/MarqueeView.scss) | SCSS | 30 | 0 | 2 | 32 | +| [src/client/views/collections/collectionFreeForm/MarqueeView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/collectionFreeForm/MarqueeView.tsx) | TypeScript React | 484 | 105 | 33 | 622 | +| [src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.scss) | SCSS | 28 | 0 | 6 | 34 | +| [src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx) | TypeScript React | 202 | 72 | 23 | 297 | +| [src/client/views/collections/collectionMulticolumn/CollectionMultirowView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.scss) | SCSS | 29 | 0 | 6 | 35 | +| [src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx) | TypeScript React | 204 | 72 | 22 | 298 | +| [src/client/views/collections/collectionMulticolumn/MulticolumnResizer.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/collectionMulticolumn/MulticolumnResizer.tsx) | TypeScript React | 94 | 0 | 9 | 103 | +| [src/client/views/collections/collectionMulticolumn/MulticolumnWidthLabel.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/collectionMulticolumn/MulticolumnWidthLabel.tsx) | TypeScript React | 51 | 0 | 5 | 56 | +| [src/client/views/collections/collectionMulticolumn/MultirowHeightLabel.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/collectionMulticolumn/MultirowHeightLabel.tsx) | TypeScript React | 51 | 0 | 5 | 56 | +| [src/client/views/collections/collectionMulticolumn/MultirowResizer.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/collections/collectionMulticolumn/MultirowResizer.tsx) | TypeScript React | 92 | 0 | 9 | 101 | +| [src/client/views/globalCssVariables.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/globalCssVariables.scss) | SCSS | 30 | 10 | 3 | 43 | +| [src/client/views/globalCssVariables.scss.d.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/globalCssVariables.scss.d.ts) | TypeScript | 9 | 0 | 2 | 11 | +| [src/client/views/linking/LinkEditor.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/linking/LinkEditor.scss) | SCSS | 124 | 1 | 25 | 150 | +| [src/client/views/linking/LinkEditor.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/linking/LinkEditor.tsx) | TypeScript React | 252 | 7 | 50 | 309 | +| [src/client/views/linking/LinkMenu.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/linking/LinkMenu.scss) | SCSS | 40 | 0 | 13 | 53 | +| [src/client/views/linking/LinkMenu.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/linking/LinkMenu.tsx) | TypeScript React | 65 | 1 | 10 | 76 | +| [src/client/views/linking/LinkMenuGroup.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/linking/LinkMenuGroup.tsx) | TypeScript React | 84 | 0 | 10 | 94 | +| [src/client/views/linking/LinkMenuItem.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/linking/LinkMenuItem.scss) | SCSS | 75 | 1 | 11 | 87 | +| [src/client/views/linking/LinkMenuItem.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/linking/LinkMenuItem.tsx) | TypeScript React | 107 | 0 | 19 | 126 | +| [src/client/views/nodes/AudioBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/AudioBox.scss) | SCSS | 146 | 0 | 0 | 146 | +| [src/client/views/nodes/AudioBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/AudioBox.tsx) | TypeScript React | 261 | 2 | 24 | 287 | +| [src/client/views/nodes/CollectionFreeFormDocumentView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/CollectionFreeFormDocumentView.scss) | SCSS | 8 | 0 | 0 | 8 | +| [src/client/views/nodes/CollectionFreeFormDocumentView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/CollectionFreeFormDocumentView.tsx) | TypeScript React | 124 | 0 | 7 | 131 | +| [src/client/views/nodes/ColorBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/ColorBox.scss) | SCSS | 22 | 0 | 1 | 23 | +| [src/client/views/nodes/ColorBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/ColorBox.tsx) | TypeScript React | 28 | 0 | 4 | 32 | +| [src/client/views/nodes/ContentFittingDocumentView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/ContentFittingDocumentView.scss) | SCSS | 20 | 0 | 4 | 24 | +| [src/client/views/nodes/ContentFittingDocumentView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/ContentFittingDocumentView.tsx) | TypeScript React | 117 | 0 | 7 | 124 | +| [src/client/views/nodes/DocumentBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/DocumentBox.scss) | SCSS | 14 | 0 | 0 | 14 | +| [src/client/views/nodes/DocumentBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/DocumentBox.tsx) | TypeScript React | 154 | 0 | 4 | 158 | +| [src/client/views/nodes/DocumentContentsView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/DocumentContentsView.tsx) | TypeScript React | 183 | 10 | 17 | 210 | +| [src/client/views/nodes/DocumentIcon.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/DocumentIcon.tsx) | TypeScript React | 60 | 0 | 5 | 65 | +| [src/client/views/nodes/DocumentView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/DocumentView.scss) | SCSS | 110 | 1 | 15 | 126 | +| [src/client/views/nodes/DocumentView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/DocumentView.tsx) | TypeScript React | 1,041 | 54 | 94 | 1,189 | +| [src/client/views/nodes/FaceRectangle.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/FaceRectangle.tsx) | TypeScript React | 25 | 0 | 4 | 29 | +| [src/client/views/nodes/FaceRectangles.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/FaceRectangles.tsx) | TypeScript React | 41 | 0 | 5 | 46 | +| [src/client/views/nodes/FieldTextBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/FieldTextBox.scss) | SCSS | 12 | 0 | 3 | 15 | +| [src/client/views/nodes/FieldView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/FieldView.tsx) | TypeScript React | 89 | 43 | 4 | 136 | +| [src/client/views/nodes/FontIconBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/FontIconBox.scss) | SCSS | 25 | 0 | 2 | 27 | +| [src/client/views/nodes/FontIconBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/FontIconBox.tsx) | TypeScript React | 58 | 0 | 5 | 63 | +| [src/client/views/nodes/ImageBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/ImageBox.scss) | SCSS | 135 | 0 | 17 | 152 | +| [src/client/views/nodes/ImageBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/ImageBox.tsx) | TypeScript React | 430 | 10 | 35 | 475 | +| [src/client/views/nodes/KeyValueBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/KeyValueBox.scss) | SCSS | 120 | 0 | 3 | 123 | +| [src/client/views/nodes/KeyValueBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/KeyValueBox.tsx) | TypeScript React | 244 | 1 | 26 | 271 | +| [src/client/views/nodes/KeyValuePair.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/KeyValuePair.scss) | SCSS | 55 | 1 | 4 | 60 | +| [src/client/views/nodes/KeyValuePair.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/KeyValuePair.tsx) | TypeScript React | 125 | 2 | 8 | 135 | +| [src/client/views/nodes/LabelBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/LabelBox.scss) | SCSS | 31 | 0 | 4 | 35 | +| [src/client/views/nodes/LabelBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/LabelBox.tsx) | TypeScript React | 86 | 1 | 9 | 96 | +| [src/client/views/nodes/LinkAnchorBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/LinkAnchorBox.scss) | SCSS | 27 | 0 | 2 | 29 | +| [src/client/views/nodes/LinkAnchorBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/LinkAnchorBox.tsx) | TypeScript React | 141 | 0 | 9 | 150 | +| [src/client/views/nodes/LinkBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/LinkBox.scss) | SCSS | 3 | 0 | 0 | 3 | +| [src/client/views/nodes/LinkBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/LinkBox.tsx) | TypeScript React | 33 | 0 | 3 | 36 | +| [src/client/views/nodes/PDFBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/PDFBox.scss) | SCSS | 200 | 0 | 19 | 219 | +| [src/client/views/nodes/PDFBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/PDFBox.tsx) | TypeScript React | 246 | 0 | 19 | 265 | +| [src/client/views/nodes/PresBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/PresBox.scss) | SCSS | 52 | 0 | 1 | 53 | +| [src/client/views/nodes/PresBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/PresBox.tsx) | TypeScript React | 268 | 31 | 32 | 331 | +| [src/client/views/nodes/QueryBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/QueryBox.scss) | SCSS | 5 | 0 | 0 | 5 | +| [src/client/views/nodes/QueryBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/QueryBox.tsx) | TypeScript React | 37 | 0 | 4 | 41 | +| [src/client/views/nodes/RadialMenu.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/RadialMenu.scss) | SCSS | 60 | 3 | 7 | 70 | +| [src/client/views/nodes/RadialMenu.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/RadialMenu.tsx) | TypeScript React | 174 | 26 | 36 | 236 | +| [src/client/views/nodes/RadialMenuItem.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/RadialMenuItem.tsx) | TypeScript React | 101 | 0 | 16 | 117 | +| [src/client/views/nodes/ScreenshotBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/ScreenshotBox.scss) | SCSS | 40 | 6 | 5 | 51 | +| [src/client/views/nodes/ScreenshotBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/ScreenshotBox.tsx) | TypeScript React | 174 | 2 | 18 | 194 | +| [src/client/views/nodes/ScriptingBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/ScriptingBox.scss) | SCSS | 33 | 0 | 3 | 36 | +| [src/client/views/nodes/ScriptingBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/ScriptingBox.tsx) | TypeScript React | 87 | 0 | 12 | 99 | +| [src/client/views/nodes/SliderBox-components.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/SliderBox-components.tsx) | TypeScript React | 220 | 12 | 25 | 257 | +| [src/client/views/nodes/SliderBox-tooltip.css](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/SliderBox-tooltip.css) | CSS | 30 | 0 | 3 | 33 | +| [src/client/views/nodes/SliderBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/SliderBox.scss) | SCSS | 7 | 0 | 0 | 7 | +| [src/client/views/nodes/SliderBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/SliderBox.tsx) | TypeScript React | 117 | 0 | 8 | 125 | +| [src/client/views/nodes/VideoBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/VideoBox.scss) | SCSS | 65 | 3 | 6 | 74 | +| [src/client/views/nodes/VideoBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/VideoBox.tsx) | TypeScript React | 343 | 2 | 34 | 379 | +| [src/client/views/nodes/WebBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/WebBox.scss) | SCSS | 109 | 0 | 18 | 127 | +| [src/client/views/nodes/WebBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/WebBox.tsx) | TypeScript React | 345 | 15 | 35 | 395 | +| [src/client/views/nodes/formattedText/DashDocCommentView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/DashDocCommentView.tsx) | TypeScript React | 82 | 0 | 13 | 95 | +| [src/client/views/nodes/formattedText/DashDocView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/DashDocView.tsx) | TypeScript React | 223 | 9 | 37 | 269 | +| [src/client/views/nodes/formattedText/DashFieldView.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/DashFieldView.scss) | SCSS | 34 | 0 | 2 | 36 | +| [src/client/views/nodes/formattedText/DashFieldView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/DashFieldView.tsx) | TypeScript React | 178 | 13 | 20 | 211 | +| [src/client/views/nodes/formattedText/FootnoteView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/FootnoteView.tsx) | TypeScript React | 131 | 13 | 19 | 163 | +| [src/client/views/nodes/formattedText/FormattedTextBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/FormattedTextBox.scss) | SCSS | 220 | 11 | 34 | 265 | +| [src/client/views/nodes/formattedText/FormattedTextBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/FormattedTextBox.tsx) | TypeScript React | 1,169 | 68 | 93 | 1,330 | +| [src/client/views/nodes/formattedText/FormattedTextBoxComment.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/FormattedTextBoxComment.scss) | SCSS | 33 | 0 | 0 | 33 | +| [src/client/views/nodes/formattedText/FormattedTextBoxComment.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/FormattedTextBoxComment.tsx) | TypeScript React | 218 | 11 | 8 | 237 | +| [src/client/views/nodes/formattedText/ImageResizeView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/ImageResizeView.tsx) | TypeScript React | 113 | 0 | 25 | 138 | +| [src/client/views/nodes/formattedText/ParagraphNodeSpec.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/ParagraphNodeSpec.ts) | TypeScript | 108 | 9 | 26 | 143 | +| [src/client/views/nodes/formattedText/ProsemirrorExampleTransfer.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/ProsemirrorExampleTransfer.ts) | TypeScript | 231 | 0 | 11 | 242 | +| [src/client/views/nodes/formattedText/RichTextMenu.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/RichTextMenu.scss) | SCSS | 100 | 2 | 19 | 121 | +| [src/client/views/nodes/formattedText/RichTextMenu.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/RichTextMenu.tsx) | TypeScript React | 754 | 12 | 109 | 875 | +| [src/client/views/nodes/formattedText/RichTextRules.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/RichTextRules.ts) | TypeScript | 308 | 7 | 5 | 320 | +| [src/client/views/nodes/formattedText/RichTextSchema.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/RichTextSchema.tsx) | TypeScript React | 465 | 33 | 39 | 537 | +| [src/client/views/nodes/formattedText/SummaryView.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/SummaryView.tsx) | TypeScript React | 67 | 0 | 14 | 81 | +| [src/client/views/nodes/formattedText/TooltipTextMenu.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/TooltipTextMenu.scss) | SCSS | 306 | 6 | 61 | 373 | +| [src/client/views/nodes/formattedText/marks_rts.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/marks_rts.ts) | TypeScript | 259 | 15 | 23 | 297 | +| [src/client/views/nodes/formattedText/nodes_rts.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/nodes_rts.ts) | TypeScript | 224 | 21 | 19 | 264 | +| [src/client/views/nodes/formattedText/prosemirrorPatches.js](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/prosemirrorPatches.js) | JavaScript | 118 | 12 | 9 | 139 | +| [src/client/views/nodes/formattedText/schema_rts.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/nodes/formattedText/schema_rts.ts) | TypeScript | 12 | 8 | 6 | 26 | +| [src/client/views/pdf/Annotation.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/pdf/Annotation.scss) | SCSS | 6 | 0 | 0 | 6 | +| [src/client/views/pdf/Annotation.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/pdf/Annotation.tsx) | TypeScript React | 114 | 0 | 16 | 130 | +| [src/client/views/pdf/PDFMenu.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/pdf/PDFMenu.scss) | SCSS | 6 | 0 | 0 | 6 | +| [src/client/views/pdf/PDFMenu.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/pdf/PDFMenu.tsx) | TypeScript React | 102 | 0 | 21 | 123 | +| [src/client/views/pdf/PDFViewer.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/pdf/PDFViewer.scss) | SCSS | 74 | 4 | 10 | 88 | +| [src/client/views/pdf/PDFViewer.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/pdf/PDFViewer.tsx) | TypeScript React | 662 | 23 | 46 | 731 | +| [src/client/views/presentationview/PresElementBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/presentationview/PresElementBox.scss) | SCSS | 93 | 0 | 10 | 103 | +| [src/client/views/presentationview/PresElementBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/presentationview/PresElementBox.tsx) | TypeScript React | 179 | 31 | 14 | 224 | +| [src/client/views/search/CheckBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/CheckBox.scss) | SCSS | 50 | 1 | 8 | 59 | +| [src/client/views/search/CheckBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/CheckBox.tsx) | TypeScript React | 42 | 74 | 15 | 131 | +| [src/client/views/search/CollectionFilters.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/CollectionFilters.scss) | SCSS | 17 | 0 | 3 | 20 | +| [src/client/views/search/CollectionFilters.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/CollectionFilters.tsx) | TypeScript React | 69 | 0 | 14 | 83 | +| [src/client/views/search/FieldFilters.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/FieldFilters.scss) | SCSS | 10 | 1 | 1 | 12 | +| [src/client/views/search/FieldFilters.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/FieldFilters.tsx) | TypeScript React | 34 | 0 | 7 | 41 | +| [src/client/views/search/FilterBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/FilterBox.scss) | SCSS | 153 | 0 | 25 | 178 | +| [src/client/views/search/FilterBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/FilterBox.tsx) | TypeScript React | 354 | 24 | 54 | 432 | +| [src/client/views/search/IconBar.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/IconBar.scss) | SCSS | 9 | 0 | 1 | 10 | +| [src/client/views/search/IconBar.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/IconBar.tsx) | TypeScript React | 69 | 1 | 17 | 87 | +| [src/client/views/search/IconButton.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/IconButton.scss) | SCSS | 46 | 1 | 6 | 53 | +| [src/client/views/search/IconButton.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/IconButton.tsx) | TypeScript React | 170 | 2 | 19 | 191 | +| [src/client/views/search/NaviconButton.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/NaviconButton.scss) | SCSS | 58 | 0 | 11 | 69 | +| [src/client/views/search/NaviconButton.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/NaviconButton.tsx) | TypeScript React | 32 | 0 | 5 | 37 | +| [src/client/views/search/SearchBox.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/SearchBox.scss) | SCSS | 203 | 82 | 51 | 336 | +| [src/client/views/search/SearchBox.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/SearchBox.tsx) | TypeScript React | 530 | 47 | 94 | 671 | +| [src/client/views/search/SearchItem.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/SearchItem.scss) | SCSS | 138 | 0 | 25 | 163 | +| [src/client/views/search/SearchItem.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/SearchItem.tsx) | TypeScript React | 272 | 2 | 29 | 303 | +| [src/client/views/search/SelectorContextMenu.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/SelectorContextMenu.scss) | SCSS | 12 | 1 | 3 | 16 | +| [src/client/views/search/ToggleBar.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/ToggleBar.scss) | SCSS | 35 | 2 | 4 | 41 | +| [src/client/views/search/ToggleBar.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/search/ToggleBar.tsx) | TypeScript React | 77 | 0 | 9 | 86 | +| [src/client/views/webcam/DashWebRTCVideo.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/webcam/DashWebRTCVideo.scss) | SCSS | 70 | 4 | 9 | 83 | +| [src/client/views/webcam/DashWebRTCVideo.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/webcam/DashWebRTCVideo.tsx) | TypeScript React | 67 | 6 | 16 | 89 | +| [src/client/views/webcam/WebCamLogic.js](file:///Users/bcz/Documents/GitHub/Dash-Web/src/client/views/webcam/WebCamLogic.js) | JavaScript | 234 | 7 | 51 | 292 | +| [src/debug/Repl.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/debug/Repl.tsx) | TypeScript React | 59 | 0 | 7 | 66 | +| [src/debug/Test.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/debug/Test.tsx) | TypeScript React | 12 | 0 | 2 | 14 | +| [src/debug/Viewer.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/debug/Viewer.tsx) | TypeScript React | 173 | 0 | 19 | 192 | +| [src/extensions/ArrayExtensions.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/extensions/ArrayExtensions.ts) | TypeScript | 26 | 5 | 6 | 37 | +| [src/extensions/General/Extensions.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/extensions/General/Extensions.ts) | TypeScript | 7 | 0 | 2 | 9 | +| [src/extensions/General/ExtensionsTypings.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/extensions/General/ExtensionsTypings.ts) | TypeScript | 7 | 0 | 1 | 8 | +| [src/extensions/StringExtensions.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/extensions/StringExtensions.ts) | TypeScript | 13 | 0 | 4 | 17 | +| [src/mobile/ImageUpload.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/mobile/ImageUpload.scss) | SCSS | 30 | 0 | 4 | 34 | +| [src/mobile/ImageUpload.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/mobile/ImageUpload.tsx) | TypeScript React | 78 | 41 | 12 | 131 | +| [src/mobile/InkControls.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/mobile/InkControls.tsx) | TypeScript React | 0 | 0 | 1 | 1 | +| [src/mobile/MobileInkOverlay.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/mobile/MobileInkOverlay.scss) | SCSS | 33 | 1 | 5 | 39 | +| [src/mobile/MobileInkOverlay.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/mobile/MobileInkOverlay.tsx) | TypeScript React | 162 | 3 | 26 | 191 | +| [src/mobile/MobileInterface.scss](file:///Users/bcz/Documents/GitHub/Dash-Web/src/mobile/MobileInterface.scss) | SCSS | 17 | 0 | 2 | 19 | +| [src/mobile/MobileInterface.tsx](file:///Users/bcz/Documents/GitHub/Dash-Web/src/mobile/MobileInterface.tsx) | TypeScript React | 297 | 15 | 32 | 344 | +| [src/new_fields/CursorField.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/CursorField.ts) | TypeScript | 54 | 0 | 12 | 66 | +| [src/new_fields/DateField.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/DateField.ts) | TypeScript | 30 | 0 | 7 | 37 | +| [src/new_fields/Doc.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/Doc.ts) | TypeScript | 897 | 85 | 76 | 1,058 | +| [src/new_fields/FieldSymbols.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/FieldSymbols.ts) | TypeScript | 11 | 0 | 2 | 13 | +| [src/new_fields/HtmlField.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/HtmlField.ts) | TypeScript | 22 | 0 | 5 | 27 | +| [src/new_fields/IconField.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/IconField.ts) | TypeScript | 22 | 0 | 5 | 27 | +| [src/new_fields/InkField.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/InkField.ts) | TypeScript | 41 | 0 | 10 | 51 | +| [src/new_fields/List.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/List.ts) | TypeScript | 244 | 38 | 20 | 302 | +| [src/new_fields/ListSpec.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/ListSpec.ts) | TypeScript | 0 | 0 | 1 | 1 | +| [src/new_fields/ObjectField.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/ObjectField.ts) | TypeScript | 16 | 0 | 4 | 20 | +| [src/new_fields/PresField.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/PresField.ts) | TypeScript | 3 | 1 | 2 | 6 | +| [src/new_fields/Proxy.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/Proxy.ts) | TypeScript | 95 | 2 | 14 | 111 | +| [src/new_fields/RefField.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/RefField.ts) | TypeScript | 17 | 0 | 5 | 22 | +| [src/new_fields/RichTextField.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/RichTextField.ts) | TypeScript | 33 | 0 | 8 | 41 | +| [src/new_fields/RichTextUtils.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/RichTextUtils.ts) | TypeScript | 455 | 8 | 56 | 519 | +| [src/new_fields/Schema.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/Schema.ts) | TypeScript | 107 | 5 | 8 | 120 | +| [src/new_fields/SchemaHeaderField.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/SchemaHeaderField.ts) | TypeScript | 104 | 4 | 14 | 122 | +| [src/new_fields/ScriptField.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/ScriptField.ts) | TypeScript | 137 | 21 | 19 | 177 | +| [src/new_fields/Types.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/Types.ts) | TypeScript | 86 | 5 | 17 | 108 | +| [src/new_fields/URLField.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/URLField.ts) | TypeScript | 45 | 0 | 9 | 54 | +| [src/new_fields/documentSchemas.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/documentSchemas.ts) | TypeScript | 87 | 0 | 6 | 93 | +| [src/new_fields/util.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/new_fields/util.ts) | TypeScript | 176 | 3 | 15 | 194 | +| [src/pen-gestures/GestureUtils.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/pen-gestures/GestureUtils.ts) | TypeScript | 41 | 0 | 5 | 46 | +| [src/pen-gestures/ndollar.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/pen-gestures/ndollar.ts) | TypeScript | 356 | 172 | 22 | 550 | +| [src/scraping/acm/.gitignore](file:///Users/bcz/Documents/GitHub/Dash-Web/src/scraping/acm/.gitignore) | Ignore | 2 | 0 | 0 | 2 | +| [src/scraping/acm/debug.log](file:///Users/bcz/Documents/GitHub/Dash-Web/src/scraping/acm/debug.log) | log | 38 | 0 | 1 | 39 | +| [src/scraping/acm/index.js](file:///Users/bcz/Documents/GitHub/Dash-Web/src/scraping/acm/index.js) | JavaScript | 82 | 185 | 13 | 280 | +| [src/scraping/acm/package.json](file:///Users/bcz/Documents/GitHub/Dash-Web/src/scraping/acm/package.json) | JSON | 17 | 0 | 1 | 18 | +| [src/scraping/buxton/.idea/buxton.iml](file:///Users/bcz/Documents/GitHub/Dash-Web/src/scraping/buxton/.idea/buxton.iml) | XML | 8 | 0 | 0 | 8 | +| [src/scraping/buxton/.idea/inspectionProfiles/profiles_settings.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/src/scraping/buxton/.idea/inspectionProfiles/profiles_settings.xml) | XML | 6 | 0 | 0 | 6 | +| [src/scraping/buxton/.idea/misc.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/src/scraping/buxton/.idea/misc.xml) | XML | 4 | 0 | 0 | 4 | +| [src/scraping/buxton/.idea/modules.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/src/scraping/buxton/.idea/modules.xml) | XML | 8 | 0 | 0 | 8 | +| [src/scraping/buxton/.idea/vcs.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/src/scraping/buxton/.idea/vcs.xml) | XML | 6 | 0 | 0 | 6 | +| [src/scraping/buxton/.idea/workspace.xml](file:///Users/bcz/Documents/GitHub/Dash-Web/src/scraping/buxton/.idea/workspace.xml) | XML | 173 | 0 | 0 | 173 | +| [src/scraping/buxton/final/BuxtonImporter.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/scraping/buxton/final/BuxtonImporter.ts) | TypeScript | 228 | 142 | 26 | 396 | +| [src/scraping/buxton/jsonifier.py](file:///Users/bcz/Documents/GitHub/Dash-Web/src/scraping/buxton/jsonifier.py) | Python | 183 | 1 | 48 | 232 | +| [src/scraping/buxton/narratives.py](file:///Users/bcz/Documents/GitHub/Dash-Web/src/scraping/buxton/narratives.py) | Python | 11 | 19 | 9 | 39 | +| [src/scraping/buxton/narratives/chord_keyboards.json](file:///Users/bcz/Documents/GitHub/Dash-Web/src/scraping/buxton/narratives/chord_keyboards.json) | JSON | 39 | 0 | 0 | 39 | +| [src/scraping/buxton/scraper.py](file:///Users/bcz/Documents/GitHub/Dash-Web/src/scraping/buxton/scraper.py) | Python | 350 | 5 | 78 | 433 | +| [src/server/ActionUtilities.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/ActionUtilities.ts) | TypeScript | 136 | 1 | 23 | 160 | +| [src/server/ApiManagers/ApiManager.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/ApiManagers/ApiManager.ts) | TypeScript | 8 | 0 | 3 | 11 | +| [src/server/ApiManagers/DeleteManager.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/ApiManagers/DeleteManager.ts) | TypeScript | 71 | 0 | 11 | 82 | +| [src/server/ApiManagers/DownloadManager.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/ApiManagers/DownloadManager.ts) | TypeScript | 173 | 80 | 16 | 269 | +| [src/server/ApiManagers/GeneralGoogleManager.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/ApiManagers/GeneralGoogleManager.ts) | TypeScript | 53 | 0 | 8 | 61 | +| [src/server/ApiManagers/GooglePhotosManager.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/ApiManagers/GooglePhotosManager.ts) | TypeScript | 190 | 119 | 22 | 331 | +| [src/server/ApiManagers/PDFManager.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/ApiManagers/PDFManager.ts) | TypeScript | 103 | 0 | 12 | 115 | +| [src/server/ApiManagers/SearchManager.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/ApiManagers/SearchManager.ts) | TypeScript | 200 | 0 | 15 | 215 | +| [src/server/ApiManagers/SessionManager.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/ApiManagers/SessionManager.ts) | TypeScript | 56 | 0 | 11 | 67 | +| [src/server/ApiManagers/UploadManager.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/ApiManagers/UploadManager.ts) | TypeScript | 226 | 1 | 20 | 247 | +| [src/server/ApiManagers/UserManager.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/ApiManagers/UserManager.ts) | TypeScript | 101 | 4 | 21 | 126 | +| [src/server/ApiManagers/UtilManager.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/ApiManagers/UtilManager.ts) | TypeScript | 42 | 22 | 10 | 74 | +| [src/server/Client.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/Client.ts) | TypeScript | 8 | 0 | 3 | 11 | +| [src/server/DashSession/DashSessionAgent.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/DashSession/DashSessionAgent.ts) | TypeScript | 155 | 52 | 23 | 230 | +| [src/server/DashSession/Session/agents/applied_session_agent.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/DashSession/Session/agents/applied_session_agent.ts) | TypeScript | 47 | 2 | 9 | 58 | +| [src/server/DashSession/Session/agents/monitor.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/DashSession/Session/agents/monitor.ts) | TypeScript | 213 | 59 | 26 | 298 | +| [src/server/DashSession/Session/agents/process_message_router.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/DashSession/Session/agents/process_message_router.ts) | TypeScript | 24 | 10 | 7 | 41 | +| [src/server/DashSession/Session/agents/promisified_ipc_manager.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/DashSession/Session/agents/promisified_ipc_manager.ts) | TypeScript | 106 | 52 | 15 | 173 | +| [src/server/DashSession/Session/agents/server_worker.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/DashSession/Session/agents/server_worker.ts) | TypeScript | 99 | 46 | 15 | 160 | +| [src/server/DashSession/Session/utilities/repl.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/DashSession/Session/utilities/repl.ts) | TypeScript | 116 | 0 | 12 | 128 | +| [src/server/DashSession/Session/utilities/session_config.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/DashSession/Session/utilities/session_config.ts) | TypeScript | 119 | 0 | 10 | 129 | +| [src/server/DashSession/Session/utilities/utilities.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/DashSession/Session/utilities/utilities.ts) | TypeScript | 24 | 8 | 5 | 37 | +| [src/server/DashUploadUtils.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/DashUploadUtils.ts) | TypeScript | 285 | 52 | 30 | 367 | +| [src/server/GarbageCollector.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/GarbageCollector.ts) | TypeScript | 138 | 2 | 11 | 151 | +| [src/server/IDatabase.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/IDatabase.ts) | TypeScript | 17 | 0 | 8 | 25 | +| [src/server/MemoryDatabase.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/MemoryDatabase.ts) | TypeScript | 87 | 0 | 14 | 101 | +| [src/server/Message.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/Message.ts) | TypeScript | 86 | 0 | 18 | 104 | +| [src/server/PdfTypes.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/PdfTypes.ts) | TypeScript | 19 | 0 | 2 | 21 | +| [src/server/ProcessFactory.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/ProcessFactory.ts) | TypeScript | 34 | 0 | 10 | 44 | +| [src/server/Recommender.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/Recommender.ts) | TypeScript | 0 | 120 | 18 | 138 | +| [src/server/RouteManager.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/RouteManager.ts) | TypeScript | 187 | 4 | 19 | 210 | +| [src/server/RouteSubscriber.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/RouteSubscriber.ts) | TypeScript | 21 | 0 | 5 | 26 | +| [src/server/Search.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/Search.ts) | TypeScript | 71 | 2 | 8 | 81 | +| [src/server/SharedMediaTypes.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/SharedMediaTypes.ts) | TypeScript | 41 | 0 | 10 | 51 | +| [src/server/Websocket/Websocket.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/Websocket/Websocket.ts) | TypeScript | 263 | 5 | 46 | 314 | +| [src/server/apis/google/GoogleApiServerUtils.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/apis/google/GoogleApiServerUtils.ts) | TypeScript | 172 | 168 | 25 | 365 | +| [src/server/apis/google/SharedTypes.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/apis/google/SharedTypes.ts) | TypeScript | 19 | 0 | 2 | 21 | +| [src/server/apis/youtube/youtubeApiSample.d.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/apis/youtube/youtubeApiSample.d.ts) | TypeScript | 2 | 0 | 0 | 2 | +| [src/server/apis/youtube/youtubeApiSample.js](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/apis/youtube/youtubeApiSample.js) | JavaScript | 135 | 30 | 14 | 179 | +| [src/server/authentication/config/passport.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/authentication/config/passport.ts) | TypeScript | 23 | 2 | 4 | 29 | +| [src/server/authentication/controllers/user_controller.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/authentication/controllers/user_controller.ts) | TypeScript | 218 | 25 | 25 | 268 | +| [src/server/authentication/models/current_user_utils.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/authentication/models/current_user_utils.ts) | TypeScript | 586 | 30 | 57 | 673 | +| [src/server/authentication/models/user_model.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/authentication/models/user_model.ts) | TypeScript | 63 | 9 | 14 | 86 | +| [src/server/credentials/CredentialsLoader.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/credentials/CredentialsLoader.ts) | TypeScript | 24 | 0 | 6 | 30 | +| [src/server/credentials/google_project_credentials.json](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/credentials/google_project_credentials.json) | JSON | 11 | 0 | 0 | 11 | +| [src/server/database.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/database.ts) | TypeScript | 312 | 0 | 38 | 350 | +| [src/server/downsize.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/downsize.ts) | TypeScript | 34 | 5 | 1 | 40 | +| [src/server/index.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/index.ts) | TypeScript | 107 | 36 | 16 | 159 | +| [src/server/remapUrl.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/remapUrl.ts) | TypeScript | 53 | 4 | 6 | 63 | +| [src/server/server_Initialization.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/server_Initialization.ts) | TypeScript | 138 | 6 | 24 | 168 | +| [src/server/slides.json](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/slides.json) | JSON | 10,820 | 0 | 0 | 10,820 | +| [src/server/updateProtos.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/server/updateProtos.ts) | TypeScript | 11 | 0 | 3 | 14 | +| [src/typings/index.d.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/src/typings/index.d.ts) | TypeScript | 219 | 72 | 38 | 329 | +| [test/test.ts](file:///Users/bcz/Documents/GitHub/Dash-Web/test/test.ts) | TypeScript | 141 | 0 | 20 | 161 | +| [tsconfig.json](file:///Users/bcz/Documents/GitHub/Dash-Web/tsconfig.json) | JSON | 21 | 5 | 0 | 26 | +| [tslint.json](file:///Users/bcz/Documents/GitHub/Dash-Web/tslint.json) | JSON | 30 | 32 | 1 | 63 | +| [views/forgot.pug](file:///Users/bcz/Documents/GitHub/Dash-Web/views/forgot.pug) | Pug | 19 | 1 | 2 | 22 | +| [views/layout.pug](file:///Users/bcz/Documents/GitHub/Dash-Web/views/layout.pug) | Pug | 13 | 0 | 1 | 14 | +| [views/login.pug](file:///Users/bcz/Documents/GitHub/Dash-Web/views/login.pug) | Pug | 24 | 0 | 2 | 26 | +| [views/reset.pug](file:///Users/bcz/Documents/GitHub/Dash-Web/views/reset.pug) | Pug | 20 | 0 | 2 | 22 | +| [views/signup.pug](file:///Users/bcz/Documents/GitHub/Dash-Web/views/signup.pug) | Pug | 25 | 0 | 2 | 27 | +| [views/stylesheets/authentication.css](file:///Users/bcz/Documents/GitHub/Dash-Web/views/stylesheets/authentication.css) | CSS | 185 | 4 | 34 | 223 | +| [views/user_activity.pug](file:///Users/bcz/Documents/GitHub/Dash-Web/views/user_activity.pug) | Pug | 18 | 0 | 1 | 19 | +| [webpack.config.js](file:///Users/bcz/Documents/GitHub/Dash-Web/webpack.config.js) | JavaScript | 116 | 0 | 5 | 121 | + +[summary](results.md) \ No newline at end of file diff --git a/.VSCodeCounter/results.csv b/.VSCodeCounter/results.csv new file mode 100644 index 000000000..b31bc8262 --- /dev/null +++ b/.VSCodeCounter/results.csv @@ -0,0 +1,648 @@ +filename, language, Markdown, JavaScript, JSON, Batch, Python, TypeScript, HTML, Pug, Shell Script, CSS, TypeScript React, SCSS, XML, Properties, Ignore, log, XSL, comment, blank, total +README.md, Markdown, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 9 +build/index.html, HTML, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 12 +dash.bat, Batch, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3 +deploy/assets/env.json, JSON, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15 +deploy/assets/pdf.worker.js, JavaScript, 0, 55662, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 686, 56522 +deploy/debug/repl.html, HTML, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 14 +deploy/debug/test.html, HTML, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 13 +deploy/debug/viewer.html, HTML, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 14 +deploy/index.html, HTML, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 16 +deploy/mobile/image.html, HTML, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 15 +deploy/mobile/ink.html, HTML, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 13 +package-lock.json, JSON, 0, 0, 18689, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 18690 +package.json, JSON, 0, 0, 266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 267 +sentence_parser.py, Python, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7 +session.config.json, JSON, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 13 +solr-8.3.1/bin/install_solr_service.sh, Shell Script, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 0, 0, 0, 29, 35, 371 +solr-8.3.1/bin/oom_solr.sh, Shell Script, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 15, 3, 31 +solr-8.3.1/bin/solr.cmd, Batch, 0, 0, 0, 1782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 210, 2035 +solr-8.3.1/bin/solr.in.cmd, Batch, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 29, 178 +solr-8.3.1/bin/solr.in.sh, Shell Script, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 34, 206 +solr-8.3.1/contrib/prometheus-exporter/bin/solr-exporter.cmd, Batch, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 108 +solr-8.3.1/contrib/prometheus-exporter/conf/grafana-solr-dashboard.json, JSON, 0, 0, 4465, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4466 +solr-8.3.1/contrib/prometheus-exporter/conf/solr-exporter-config.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1734, 0, 0, 0, 0, 63, 10, 1807 +solr-8.3.1/docs/images/solr.svg, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 1, 40 +solr-8.3.1/docs/index.html, HTML, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 21 +solr-8.3.1/example/example-DIH/solr/atom/conf/atom-data-config.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 6, 9, 36 +solr-8.3.1/example/example-DIH/solr/atom/conf/solrconfig.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 37, 8, 65 +solr-8.3.1/example/example-DIH/solr/atom/core.properties, Properties, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2 +solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/kmeans-attributes.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 6, 1, 20 +solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/lingo-attributes.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 11, 1, 25 +solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/stc-attributes.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 6, 1, 20 +solr-8.3.1/example/example-DIH/solr/db/conf/currency.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 19, 4, 68 +solr-8.3.1/example/example-DIH/solr/db/conf/db-data-config.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 4, 30 +solr-8.3.1/example/example-DIH/solr/db/conf/elevate.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 37, 3, 43 +solr-8.3.1/example/example-DIH/solr/db/conf/solrconfig.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 0, 0, 0, 0, 958, 104, 1354 +solr-8.3.1/example/example-DIH/solr/db/conf/update-script.js, JavaScript, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 13, 54 +solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example.xsl, XSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 20, 15, 133 +solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example_atom.xsl, XSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 20, 8, 68 +solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example_rss.xsl, XSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 20, 6, 67 +solr-8.3.1/example/example-DIH/solr/db/conf/xslt/luke.xsl, XSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, 19, 18, 338 +solr-8.3.1/example/example-DIH/solr/db/conf/xslt/updateXml.xsl, XSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 25, 11, 71 +solr-8.3.1/example/example-DIH/solr/db/core.properties, Properties, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2 +solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/kmeans-attributes.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 6, 1, 20 +solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/lingo-attributes.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 11, 1, 25 +solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/stc-attributes.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 6, 1, 20 +solr-8.3.1/example/example-DIH/solr/mail/conf/currency.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 19, 4, 68 +solr-8.3.1/example/example-DIH/solr/mail/conf/elevate.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 37, 3, 43 +solr-8.3.1/example/example-DIH/solr/mail/conf/mail-data-config.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 4, 1, 13 +solr-8.3.1/example/example-DIH/solr/mail/conf/solrconfig.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 0, 0, 0, 958, 105, 1357 +solr-8.3.1/example/example-DIH/solr/mail/conf/update-script.js, JavaScript, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 13, 54 +solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example.xsl, XSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 20, 15, 133 +solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example_atom.xsl, XSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 20, 8, 68 +solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example_rss.xsl, XSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 20, 6, 67 +solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/luke.xsl, XSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, 19, 18, 338 +solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/updateXml.xsl, XSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 25, 11, 71 +solr-8.3.1/example/example-DIH/solr/mail/core.properties, Properties, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2 +solr-8.3.1/example/example-DIH/solr/solr.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 3 +solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/kmeans-attributes.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 6, 1, 20 +solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/lingo-attributes.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 11, 1, 25 +solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/stc-attributes.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 6, 1, 20 +solr-8.3.1/example/example-DIH/solr/solr/conf/currency.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 19, 4, 68 +solr-8.3.1/example/example-DIH/solr/solr/conf/elevate.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 37, 3, 43 +solr-8.3.1/example/example-DIH/solr/solr/conf/solr-data-config.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 16, 2, 26 +solr-8.3.1/example/example-DIH/solr/solr/conf/solrconfig.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 0, 0, 0, 0, 958, 102, 1352 +solr-8.3.1/example/example-DIH/solr/solr/conf/update-script.js, JavaScript, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 13, 54 +solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example.xsl, XSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 20, 15, 133 +solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example_atom.xsl, XSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 20, 8, 68 +solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example_rss.xsl, XSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 20, 6, 67 +solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/luke.xsl, XSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, 19, 18, 338 +solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/updateXml.xsl, XSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 25, 11, 71 +solr-8.3.1/example/example-DIH/solr/solr/core.properties, Properties, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2 +solr-8.3.1/example/example-DIH/solr/tika/conf/solrconfig.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 38, 7, 62 +solr-8.3.1/example/example-DIH/solr/tika/conf/tika-data-config.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 3, 7, 27 +solr-8.3.1/example/example-DIH/solr/tika/core.properties, Properties, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2 +solr-8.3.1/example/exampledocs/books.json, JSON, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 52 +solr-8.3.1/example/exampledocs/gb18030-example.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 16, 3, 33 +solr-8.3.1/example/exampledocs/hd.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 20, 4, 57 +solr-8.3.1/example/exampledocs/ipod_other.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 20, 9, 61 +solr-8.3.1/example/exampledocs/ipod_video.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 18, 2, 41 +solr-8.3.1/example/exampledocs/manufacturers.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 16, 3, 76 +solr-8.3.1/example/exampledocs/mem.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 24, 9, 78 +solr-8.3.1/example/exampledocs/money.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 17, 7, 66 +solr-8.3.1/example/exampledocs/monitor.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 18, 3, 35 +solr-8.3.1/example/exampledocs/monitor2.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 18, 3, 34 +solr-8.3.1/example/exampledocs/mp500.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 18, 3, 44 +solr-8.3.1/example/exampledocs/sample.html, HTML, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 14 +solr-8.3.1/example/exampledocs/sd500.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 18, 2, 39 +solr-8.3.1/example/exampledocs/solr.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 16, 3, 39 +solr-8.3.1/example/exampledocs/test_utf8.sh, Shell Script, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 21, 16, 94 +solr-8.3.1/example/exampledocs/utf8-example.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 20, 4, 43 +solr-8.3.1/example/exampledocs/vidcard.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 21, 2, 63 +solr-8.3.1/example/files/browse-resources/velocity/resources.properties, Properties, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 6, 5, 83 +solr-8.3.1/example/files/browse-resources/velocity/resources_de_DE.properties, Properties, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 1, 19 +solr-8.3.1/example/files/browse-resources/velocity/resources_fr_FR.properties, Properties, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 3, 21 +solr-8.3.1/example/files/conf/currency.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 19, 4, 68 +solr-8.3.1/example/files/conf/elevate.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 37, 3, 43 +solr-8.3.1/example/files/conf/params.json, JSON, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 35 +solr-8.3.1/example/files/conf/solrconfig.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, 0, 0, 0, 979, 102, 1379 +solr-8.3.1/example/files/conf/update-script.js, JavaScript, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 23, 116 +solr-8.3.1/example/files/conf/velocity/dropit.js, JavaScript, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2 +solr-8.3.1/example/files/conf/velocity/jquery.tx3-tag-cloud.js, JavaScript, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2 +solr-8.3.1/example/files/conf/velocity/js/dropit.js, JavaScript, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 19, 98 +solr-8.3.1/example/files/conf/velocity/js/jquery.autocomplete.js, JavaScript, 0, 620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 76, 764 +solr-8.3.1/example/files/conf/velocity/js/jquery.tx3-tag-cloud.js, JavaScript, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 9, 71 +solr-8.3.1/example/films/film_data_generator.py, Python, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 12, 118 +solr-8.3.1/example/films/films.json, JSON, 0, 0, 15830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 15831 +solr-8.3.1/example/films/films.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11438, 0, 0, 0, 0, 0, 1, 11439 +solr-8.3.1/server/contexts/solr-jetty-context.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 1, 9 +solr-8.3.1/server/etc/jetty-http.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 15, 4, 52 +solr-8.3.1/server/etc/jetty-https.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 16, 5, 77 +solr-8.3.1/server/etc/jetty-https8.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 32, 4, 70 +solr-8.3.1/server/etc/jetty-ssl.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 11, 4, 38 +solr-8.3.1/server/etc/jetty.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 94, 18, 222 +solr-8.3.1/server/etc/webdefault.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 232, 24, 528 +solr-8.3.1/server/resources/jetty-logging.properties, Properties, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 2 +solr-8.3.1/server/resources/log4j2-console.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 43, 6, 68 +solr-8.3.1/server/resources/log4j2.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 80, 9, 143 +solr-8.3.1/server/scripts/cloud-scripts/snapshotscli.sh, Shell Script, 0, 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, 2, 23, 177 +solr-8.3.1/server/scripts/cloud-scripts/zkcli.bat, Batch, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 7, 26 +solr-8.3.1/server/scripts/cloud-scripts/zkcli.sh, Shell Script, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 27 +solr-8.3.1/server/solr-webapp/webapp/WEB-INF/web.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 42, 11, 115 +solr-8.3.1/server/solr-webapp/webapp/css/angular/analysis.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 0, 19, 48, 304 +solr-8.3.1/server/solr-webapp/webapp/css/angular/chosen.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 402, 0, 0, 0, 0, 0, 0, 0, 55, 9, 466 +solr-8.3.1/server/solr-webapp/webapp/css/angular/cloud.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 594, 0, 0, 0, 0, 0, 0, 0, 23, 106, 723 +solr-8.3.1/server/solr-webapp/webapp/css/angular/collections.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 18, 65, 379 +solr-8.3.1/server/solr-webapp/webapp/css/angular/common.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 647, 0, 0, 0, 0, 0, 0, 0, 19, 106, 772 +solr-8.3.1/server/solr-webapp/webapp/css/angular/cores.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, 18, 37, 226 +solr-8.3.1/server/solr-webapp/webapp/css/angular/dashboard.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, 18, 28, 180 +solr-8.3.1/server/solr-webapp/webapp/css/angular/dataimport.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 0, 0, 0, 0, 0, 0, 0, 18, 61, 371 +solr-8.3.1/server/solr-webapp/webapp/css/angular/documents.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, 23, 26, 180 +solr-8.3.1/server/solr-webapp/webapp/css/angular/files.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 18, 7, 54 +solr-8.3.1/server/solr-webapp/webapp/css/angular/index.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 0, 0, 0, 0, 0, 0, 0, 18, 35, 217 +solr-8.3.1/server/solr-webapp/webapp/css/angular/java-properties.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 18, 6, 48 +solr-8.3.1/server/solr-webapp/webapp/css/angular/jquery-ui.min.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 26, 2, 29 +solr-8.3.1/server/solr-webapp/webapp/css/angular/jquery-ui.structure.min.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 22, 2, 25 +solr-8.3.1/server/solr-webapp/webapp/css/angular/logging.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, 0, 19, 63, 385 +solr-8.3.1/server/solr-webapp/webapp/css/angular/login.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 18, 12, 110 +solr-8.3.1/server/solr-webapp/webapp/css/angular/menu.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 257, 0, 0, 0, 0, 0, 0, 0, 18, 56, 331 +solr-8.3.1/server/solr-webapp/webapp/css/angular/overview.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 18, 5, 43 +solr-8.3.1/server/solr-webapp/webapp/css/angular/plugins.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, 18, 31, 221 +solr-8.3.1/server/solr-webapp/webapp/css/angular/query.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, 0, 18, 25, 163 +solr-8.3.1/server/solr-webapp/webapp/css/angular/replication.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 404, 0, 0, 0, 0, 0, 0, 0, 18, 79, 501 +solr-8.3.1/server/solr-webapp/webapp/css/angular/schema.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 596, 0, 0, 0, 0, 0, 0, 0, 20, 112, 728 +solr-8.3.1/server/solr-webapp/webapp/css/angular/segments.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, 0, 18, 22, 173 +solr-8.3.1/server/solr-webapp/webapp/css/angular/stream.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 22, 34, 234 +solr-8.3.1/server/solr-webapp/webapp/css/angular/suggestions.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 18, 4, 65 +solr-8.3.1/server/solr-webapp/webapp/css/angular/threads.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 18, 24, 161 +solr-8.3.1/server/solr-webapp/webapp/img/solr.svg, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 1, 40 +solr-8.3.1/server/solr-webapp/webapp/index.html, HTML, 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 38, 257 +solr-8.3.1/server/solr-webapp/webapp/js/angular/app.js, JavaScript, 0, 512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 31, 562 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/alias-overview.js, JavaScript, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 28 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/analysis.js, JavaScript, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 23, 202 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cloud.js, JavaScript, 0, 847, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 124, 1022 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cluster-suggestions.js, JavaScript, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 2, 63 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/collection-overview.js, JavaScript, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 6, 40 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/collections.js, JavaScript, 0, 244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 27, 290 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/core-overview.js, JavaScript, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 9, 94 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cores.js, JavaScript, 0, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 14, 181 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/dataimport.js, JavaScript, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 44, 303 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/documents.js, JavaScript, 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 13, 138 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/files.js, JavaScript, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 13, 101 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/index.js, JavaScript, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 14, 98 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/java-properties.js, JavaScript, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 46 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/logging.js, JavaScript, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 12, 159 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/login.js, JavaScript, 0, 269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 19, 318 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/plugins.js, JavaScript, 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 168 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/query.js, JavaScript, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 14, 121 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/replication.js, JavaScript, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 40, 236 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/schema.js, JavaScript, 0, 524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 69, 612 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/segments.js, JavaScript, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 20, 100 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/stream.js, JavaScript, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 51, 240 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/threads.js, JavaScript, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 2, 51 +solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/unknown.js, JavaScript, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 2, 38 +solr-8.3.1/server/solr-webapp/webapp/js/angular/services.js, JavaScript, 0, 311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 11, 340 +solr-8.3.1/server/solr-webapp/webapp/libs/angular-chosen.js, JavaScript, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 140 +solr-8.3.1/server/solr-webapp/webapp/libs/angular-cookies.js, JavaScript, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 22, 230 +solr-8.3.1/server/solr-webapp/webapp/libs/angular-cookies.min.js, JavaScript, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 1, 32 +solr-8.3.1/server/solr-webapp/webapp/libs/angular-resource.min.js, JavaScript, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 1, 37 +solr-8.3.1/server/solr-webapp/webapp/libs/angular-route.js, JavaScript, 0, 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 636, 67, 1019 +solr-8.3.1/server/solr-webapp/webapp/libs/angular-route.min.js, JavaScript, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 1, 39 +solr-8.3.1/server/solr-webapp/webapp/libs/angular-sanitize.js, JavaScript, 0, 311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 328, 65, 704 +solr-8.3.1/server/solr-webapp/webapp/libs/angular-sanitize.min.js, JavaScript, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 1, 40 +solr-8.3.1/server/solr-webapp/webapp/libs/angular-utf8-base64.js, JavaScript, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 13, 218 +solr-8.3.1/server/solr-webapp/webapp/libs/angular-utf8-base64.min.js, JavaScript, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 3, 46 +solr-8.3.1/server/solr-webapp/webapp/libs/angular.js, JavaScript, 0, 10845, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13211, 2038, 26094 +solr-8.3.1/server/solr-webapp/webapp/libs/angular.min.js, JavaScript, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 201, 0, 274 +solr-8.3.1/server/solr-webapp/webapp/libs/chosen.jquery.js, JavaScript, 0, 1151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 8, 1195 +solr-8.3.1/server/solr-webapp/webapp/libs/chosen.jquery.min.js, JavaScript, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 31 +solr-8.3.1/server/solr-webapp/webapp/libs/d3.js, JavaScript, 0, 7720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 519, 1135, 9374 +solr-8.3.1/server/solr-webapp/webapp/libs/highlight.js, JavaScript, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 1, 32 +solr-8.3.1/server/solr-webapp/webapp/libs/jquery-1.7.2.min.js, JavaScript, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 2, 31 +solr-8.3.1/server/solr-webapp/webapp/libs/jquery-2.1.3.min.js, JavaScript, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 1, 30 +solr-8.3.1/server/solr-webapp/webapp/libs/jquery-ui.min.js, JavaScript, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 3, 31 +solr-8.3.1/server/solr-webapp/webapp/libs/jquery.jstree.js, JavaScript, 0, 3222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 85, 3535 +solr-8.3.1/server/solr-webapp/webapp/libs/ngtimeago.js, JavaScript, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 13, 102 +solr-8.3.1/server/solr-webapp/webapp/partials/alias_overview.html, HTML, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 10, 47 +solr-8.3.1/server/solr-webapp/webapp/partials/analysis.html, HTML, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 26, 129 +solr-8.3.1/server/solr-webapp/webapp/partials/cloud.html, HTML, 0, 0, 0, 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 24, 303 +solr-8.3.1/server/solr-webapp/webapp/partials/cluster_suggestions.html, HTML, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 50 +solr-8.3.1/server/solr-webapp/webapp/partials/collection_overview.html, HTML, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 22, 86 +solr-8.3.1/server/solr-webapp/webapp/partials/collections.html, HTML, 0, 0, 0, 0, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 79, 396 +solr-8.3.1/server/solr-webapp/webapp/partials/core_overview.html, HTML, 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 66, 207 +solr-8.3.1/server/solr-webapp/webapp/partials/cores.html, HTML, 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 225 +solr-8.3.1/server/solr-webapp/webapp/partials/dataimport.html, HTML, 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 52, 210 +solr-8.3.1/server/solr-webapp/webapp/partials/documents.html, HTML, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 9, 112 +solr-8.3.1/server/solr-webapp/webapp/partials/files.html, HTML, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 15, 48 +solr-8.3.1/server/solr-webapp/webapp/partials/index.html, HTML, 0, 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 85, 262 +solr-8.3.1/server/solr-webapp/webapp/partials/java-properties.html, HTML, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 2, 28 +solr-8.3.1/server/solr-webapp/webapp/partials/logging-levels.html, HTML, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 6, 57 +solr-8.3.1/server/solr-webapp/webapp/partials/logging.html, HTML, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 2, 58 +solr-8.3.1/server/solr-webapp/webapp/partials/login.html, HTML, 0, 0, 0, 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 11, 161 +solr-8.3.1/server/solr-webapp/webapp/partials/plugins.html, HTML, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 8, 73 +solr-8.3.1/server/solr-webapp/webapp/partials/query.html, HTML, 0, 0, 0, 0, 0, 0, 270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 84, 370 +solr-8.3.1/server/solr-webapp/webapp/partials/replication.html, HTML, 0, 0, 0, 0, 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 71, 240 +solr-8.3.1/server/solr-webapp/webapp/partials/schema.html, HTML, 0, 0, 0, 0, 0, 0, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 104, 456 +solr-8.3.1/server/solr-webapp/webapp/partials/segments.html, HTML, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 14, 100 +solr-8.3.1/server/solr-webapp/webapp/partials/stream.html, HTML, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 9, 65 +solr-8.3.1/server/solr-webapp/webapp/partials/threads.html, HTML, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 14, 66 +solr-8.3.1/server/solr-webapp/webapp/partials/unknown.html, HTML, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3, 24 +solr-8.3.1/server/solr/configsets/_default/conf/params.json, JSON, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 21 +solr-8.3.1/server/solr/configsets/_default/conf/solrconfig.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 976, 98, 1370 +solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_rest_managed.json, JSON, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2 +solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_schema_analysis_stopwords_english.json, JSON, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 39 +solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_schema_analysis_synonyms_english.json, JSON, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12 +solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/kmeans-attributes.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 6, 1, 20 +solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/lingo-attributes.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 11, 1, 25 +solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/stc-attributes.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 6, 1, 20 +solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/currency.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 19, 4, 68 +solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/elevate.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 37, 3, 43 +solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/params.json, JSON, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12 +solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 410, 0, 0, 0, 0, 1097, 124, 1631 +solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/update-script.js, JavaScript, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 13, 54 +solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 9, 6, 49 +solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.js, JavaScript, 0, 620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 76, 764 +solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/main.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 47, 232 +solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example.xsl, XSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 20, 15, 133 +solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example_atom.xsl, XSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 20, 8, 68 +solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example_rss.xsl, XSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 20, 6, 67 +solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/luke.xsl, XSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, 19, 18, 338 +solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/updateXml.xsl, XSL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 25, 11, 71 +solr-8.3.1/server/solr/dash/conf/params.json, JSON, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20 +solr-8.3.1/server/solr/dash/conf/schema.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 4, 7, 62 +solr-8.3.1/server/solr/dash/conf/solrconfig.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 270, 0, 0, 0, 0, 962, 97, 1329 +solr-8.3.1/server/solr/dash/core.properties, Properties, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 2, 1, 7 +solr-8.3.1/server/solr/solr.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 25, 11, 57 +solr-8.3.1/server/solr/zoo.cfg, Properties, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 25, 4, 32 +solr-8.3.1/server/tmp/start_3204295554151338130.properties, Properties, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 2, 1, 12 +solr-8.3.1/server/tmp/start_5812170489311981381.properties, Properties, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 2, 1, 12 +solr-8.3.1/server/tmp/start_6476327636763392575.properties, Properties, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 2, 1, 12 +solr-8.3.1/server/tmp/start_7329004517204835686.properties, Properties, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 2, 1, 12 +solr-8.3.1/server/tmp/start_9067375725008958788.properties, Properties, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 2, 1, 12 +src/Utils.ts, TypeScript, 0, 0, 0, 0, 0, 441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 81, 545 +src/client/ClientRecommender.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 1, 2, 12 +src/client/ClientRecommender.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 0, 0, 0, 0, 0, 0, 61, 44, 425 +src/client/DocServer.ts, TypeScript, 0, 0, 0, 0, 0, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 65, 480 +src/client/Network.ts, TypeScript, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 39 +src/client/apis/GoogleAuthenticationManager.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 3, 19 +src/client/apis/GoogleAuthenticationManager.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, 2, 11, 128 +src/client/apis/IBM_Recommender.ts, TypeScript, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 7, 40 +src/client/apis/google_docs/GoogleApiClientUtils.ts, TypeScript, 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 27, 261 +src/client/apis/google_docs/GooglePhotosClientUtils.ts, TypeScript, 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 364 +src/client/apis/youtube/YoutubeBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, 0, 5, 16, 126 +src/client/apis/youtube/YoutubeBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 48, 40, 362 +src/client/cognitive_services/CognitiveServices.ts, TypeScript, 0, 0, 0, 0, 0, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 57, 409 +src/client/documents/DocumentTypes.ts, TypeScript, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 37 +src/client/documents/Documents.ts, TypeScript, 0, 0, 0, 0, 0, 807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, 87, 1035 +src/client/goldenLayout.d.ts, TypeScript, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3 +src/client/goldenLayout.js, JavaScript, 0, 3084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1571, 720, 5375 +src/client/util/DictationManager.ts, TypeScript, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 51, 388 +src/client/util/DocumentManager.ts, TypeScript, 0, 0, 0, 0, 0, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 21, 244 +src/client/util/DragManager.ts, TypeScript, 0, 0, 0, 0, 0, 504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 35, 550 +src/client/util/DropConverter.ts, TypeScript, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 78 +src/client/util/History.ts, TypeScript, 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 27, 206 +src/client/util/Import & Export/DirectoryImportBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 6 +src/client/util/Import & Export/DirectoryImportBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 393, 0, 0, 0, 0, 0, 0, 0, 31, 424 +src/client/util/Import & Export/ImageUtils.ts, TypeScript, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 39 +src/client/util/Import & Export/ImportMetadataEntry.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, 17, 149 +src/client/util/InteractionUtils.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 112, 21, 255 +src/client/util/KeyCodes.ts, TypeScript, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 136 +src/client/util/LinkManager.ts, TypeScript, 0, 0, 0, 0, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 23, 214 +src/client/util/ProsemirrorCopy/prompt.js, JavaScript, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 22, 180 +src/client/util/Scripting.ts, TypeScript, 0, 0, 0, 0, 0, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 30, 292 +src/client/util/ScrollBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 2, 21 +src/client/util/SearchUtil.ts, TypeScript, 0, 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 18, 145 +src/client/util/SelectionManager.ts, TypeScript, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 15, 89 +src/client/util/SerializationHelper.ts, TypeScript, 0, 0, 0, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 143 +src/client/util/SettingsManager.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, 25, 136 +src/client/util/SettingsManager.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 17, 131 +src/client/util/SharingManager.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 18, 140 +src/client/util/SharingManager.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 25, 298 +src/client/util/Transform.ts, TypeScript, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 99 +src/client/util/TypedEvent.ts, TypeScript, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8, 40 +src/client/util/UndoManager.ts, TypeScript, 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 27, 195 +src/client/util/clamp.js, JavaScript, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 15 +src/client/util/convertToCSSPTValue.js, JavaScript, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 43 +src/client/util/jsx-decl.d.ts, TypeScript, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2 +src/client/util/request-image-size.js, JavaScript, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 14, 75 +src/client/util/toCSSLineSpacing.js, JavaScript, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 14, 64 +src/client/views/AntimodeMenu.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 1, 6, 42 +src/client/views/AntimodeMenu.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 14, 22, 157 +src/client/views/ContextMenu.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 0, 0, 0, 0, 0, 17, 14, 161 +src/client/views/ContextMenu.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 3, 33, 294 +src/client/views/ContextMenuItem.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, 10, 117 +src/client/views/DictationOverlay.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 7, 71 +src/client/views/DocComponent.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 20, 15, 122 +src/client/views/DocumentButtonBar.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 16, 105 +src/client/views/DocumentButtonBar.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 284, 0, 0, 0, 0, 0, 0, 4, 27, 315 +src/client/views/DocumentDecorations.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 0, 0, 0, 0, 0, 0, 46, 365 +src/client/views/DocumentDecorations.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 479, 0, 0, 0, 0, 0, 0, 2, 26, 507 +src/client/views/EditableView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 3, 25 +src/client/views/EditableView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 0, 0, 0, 0, 0, 0, 19, 16, 184 +src/client/views/GestureOverlay.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 8, 64 +src/client/views/GestureOverlay.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 711, 0, 0, 0, 0, 0, 0, 45, 67, 823 +src/client/views/GlobalKeyHandler.ts, TypeScript, 0, 0, 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 27, 269 +src/client/views/InkingControl.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 0, 0, 4, 0, 131 +src/client/views/InkingControl.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 3, 10, 91 +src/client/views/InkingStroke.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 7 +src/client/views/InkingStroke.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 5, 68 +src/client/views/KeyphraseQueryView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 1, 8 +src/client/views/KeyphraseQueryView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 2, 3, 35 +src/client/views/Main.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 8, 10, 69 +src/client/views/Main.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 1, 2, 25 +src/client/views/MainView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, 0, 0, 0, 1, 21, 160 +src/client/views/MainView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 0, 0, 13, 36, 602 +src/client/views/MainViewModal.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 1, 25 +src/client/views/MainViewModal.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 5, 44 +src/client/views/MainViewNotifs.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 18 +src/client/views/MainViewNotifs.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 4, 33 +src/client/views/MetadataEntryMenu.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 14, 93 +src/client/views/MetadataEntryMenu.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 207, 0, 0, 0, 0, 0, 0, 0, 16, 223 +src/client/views/OCRUtils.ts, TypeScript, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 8 +src/client/views/OverlayView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 6, 47 +src/client/views/OverlayView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, 0, 0, 0, 0, 0, 0, 4, 19, 217 +src/client/views/Palette.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 4, 30 +src/client/views/Palette.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 5, 70 +src/client/views/PreviewCursor.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 1, 10 +src/client/views/PreviewCursor.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, 8, 9, 132 +src/client/views/RecommendationsBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 10, 8, 70 +src/client/views/RecommendationsBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 67, 17, 200 +src/client/views/ScriptBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 2, 17 +src/client/views/ScriptBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 2, 12, 126 +src/client/views/ScriptingRepl.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 9, 51 +src/client/views/ScriptingRepl.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 1, 24, 245 +src/client/views/SearchDocBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 359, 0, 0, 0, 0, 0, 0, 17, 55, 431 +src/client/views/TemplateMenu.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 5, 51 +src/client/views/TemplateMenu.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, 0, 0, 1, 14, 182 +src/client/views/Templates.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 8, 42 +src/client/views/TouchScrollableMenu.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 7, 59 +src/client/views/Touchable.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 0, 0, 0, 0, 0, 0, 28, 39, 239 +src/client/views/_nodeModuleOverrides.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 9, 4, 22 +src/client/views/animationtimeline/Keyframe.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 5, 17, 105 +src/client/views/animationtimeline/Keyframe.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 468, 0, 0, 0, 0, 0, 0, 50, 42, 560 +src/client/views/animationtimeline/Timeline.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 14, 44, 322 +src/client/views/animationtimeline/Timeline.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 467, 0, 0, 0, 0, 0, 0, 97, 58, 622 +src/client/views/animationtimeline/TimelineMenu.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 2, 17, 94 +src/client/views/animationtimeline/TimelineMenu.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 10, 78 +src/client/views/animationtimeline/TimelineOverview.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 0, 0, 6, 12, 107 +src/client/views/animationtimeline/TimelineOverview.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, 27, 182 +src/client/views/animationtimeline/Track.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 2, 15 +src/client/views/animationtimeline/Track.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 284, 0, 0, 0, 0, 0, 0, 63, 33, 380 +src/client/views/collections/CollectionCarouselView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 1, 38 +src/client/views/collections/CollectionCarouselView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 1, 10, 121 +src/client/views/collections/CollectionDockingView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 0, 0, 0, 0, 0, 7, 60, 458 +src/client/views/collections/CollectionDockingView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 707, 0, 0, 0, 0, 0, 0, 61, 65, 833 +src/client/views/collections/CollectionLinearView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 10, 78 +src/client/views/collections/CollectionLinearView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 1, 9, 135 +src/client/views/collections/CollectionMapView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 3, 30 +src/client/views/collections/CollectionMapView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 10, 18, 263 +src/client/views/collections/CollectionMasonryViewFieldRow.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 308, 0, 0, 0, 0, 0, 0, 0, 24, 332 +src/client/views/collections/CollectionPileView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1, 9 +src/client/views/collections/CollectionPileView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 5, 11, 128 +src/client/views/collections/CollectionSchemaCells.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 17, 38, 329 +src/client/views/collections/CollectionSchemaHeaders.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, 5, 41, 364 +src/client/views/collections/CollectionSchemaMovableTableHOC.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 27, 243 +src/client/views/collections/CollectionSchemaView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 406, 0, 0, 0, 0, 0, 4, 88, 498 +src/client/views/collections/CollectionSchemaView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 651, 0, 0, 0, 0, 0, 0, 20, 82, 753 +src/client/views/collections/CollectionStackingView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 353, 0, 0, 0, 0, 0, 1, 50, 404 +src/client/views/collections/CollectionStackingView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 430, 0, 0, 0, 0, 0, 0, 5, 25, 460 +src/client/views/collections/CollectionStackingViewFieldColumn.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 367, 0, 0, 0, 0, 0, 0, 0, 27, 394 +src/client/views/collections/CollectionStaffView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 1, 13 +src/client/views/collections/CollectionStaffView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 7, 53 +src/client/views/collections/CollectionSubView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 390, 0, 0, 0, 0, 0, 0, 7, 25, 422 +src/client/views/collections/CollectionTimeView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 13, 93 +src/client/views/collections/CollectionTimeView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 15, 192 +src/client/views/collections/CollectionTreeView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 4, 23, 152 +src/client/views/collections/CollectionTreeView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 801, 0, 0, 0, 0, 0, 0, 19, 40, 860 +src/client/views/collections/CollectionView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 8, 78 +src/client/views/collections/CollectionView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 457, 0, 0, 0, 0, 0, 0, 13, 34, 504 +src/client/views/collections/CollectionViewChromes.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 308, 0, 0, 0, 0, 0, 4, 45, 357 +src/client/views/collections/CollectionViewChromes.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 393, 0, 0, 0, 0, 0, 0, 67, 47, 507 +src/client/views/collections/KeyRestrictionRow.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 2, 4, 55 +src/client/views/collections/ParentDocumentSelector.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 2, 56 +src/client/views/collections/ParentDocumentSelector.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, 0, 11, 131 +src/client/views/collections/collectionFreeForm/CollectionFreeFormLayoutEngines.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 422, 0, 0, 0, 0, 0, 0, 10, 27, 459 +src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 1, 20 +src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 5, 4, 119 +src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 11 +src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 2, 46 +src/client/views/collections/collectionFreeForm/CollectionFreeFormRemoteCursors.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 1, 3, 24 +src/client/views/collections/collectionFreeForm/CollectionFreeFormRemoteCursors.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 12, 79 +src/client/views/collections/collectionFreeForm/CollectionFreeFormView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, 0, 0, 9, 17, 121 +src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1186, 0, 0, 0, 0, 0, 0, 47, 97, 1330 +src/client/views/collections/collectionFreeForm/MarqueeOptionsMenu.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 5, 57 +src/client/views/collections/collectionFreeForm/MarqueeView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 2, 32 +src/client/views/collections/collectionFreeForm/MarqueeView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 484, 0, 0, 0, 0, 0, 0, 105, 33, 622 +src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 6, 34 +src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, 72, 23, 297 +src/client/views/collections/collectionMulticolumn/CollectionMultirowView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 6, 35 +src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, 0, 0, 0, 0, 0, 72, 22, 298 +src/client/views/collections/collectionMulticolumn/MulticolumnResizer.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 9, 103 +src/client/views/collections/collectionMulticolumn/MulticolumnWidthLabel.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 5, 56 +src/client/views/collections/collectionMulticolumn/MultirowHeightLabel.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 5, 56 +src/client/views/collections/collectionMulticolumn/MultirowResizer.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 9, 101 +src/client/views/globalCssVariables.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 10, 3, 43 +src/client/views/globalCssVariables.scss.d.ts, TypeScript, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 11 +src/client/views/linking/LinkEditor.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, 0, 0, 0, 1, 25, 150 +src/client/views/linking/LinkEditor.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 252, 0, 0, 0, 0, 0, 0, 7, 50, 309 +src/client/views/linking/LinkMenu.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 13, 53 +src/client/views/linking/LinkMenu.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 1, 10, 76 +src/client/views/linking/LinkMenuGroup.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 10, 94 +src/client/views/linking/LinkMenuItem.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 1, 11, 87 +src/client/views/linking/LinkMenuItem.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, 19, 126 +src/client/views/nodes/AudioBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, 146 +src/client/views/nodes/AudioBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, 0, 0, 0, 0, 0, 0, 2, 24, 287 +src/client/views/nodes/CollectionFreeFormDocumentView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 8 +src/client/views/nodes/CollectionFreeFormDocumentView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, 0, 0, 0, 0, 0, 7, 131 +src/client/views/nodes/ColorBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 1, 23 +src/client/views/nodes/ColorBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 4, 32 +src/client/views/nodes/ContentFittingDocumentView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 4, 24 +src/client/views/nodes/ContentFittingDocumentView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 7, 124 +src/client/views/nodes/DocumentBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 14 +src/client/views/nodes/DocumentBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 154, 0, 0, 0, 0, 0, 0, 0, 4, 158 +src/client/views/nodes/DocumentContentsView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 10, 17, 210 +src/client/views/nodes/DocumentIcon.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 5, 65 +src/client/views/nodes/DocumentView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 1, 15, 126 +src/client/views/nodes/DocumentView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1041, 0, 0, 0, 0, 0, 0, 54, 94, 1189 +src/client/views/nodes/FaceRectangle.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 4, 29 +src/client/views/nodes/FaceRectangles.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 5, 46 +src/client/views/nodes/FieldTextBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 3, 15 +src/client/views/nodes/FieldView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 43, 4, 136 +src/client/views/nodes/FontIconBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 2, 27 +src/client/views/nodes/FontIconBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 5, 63 +src/client/views/nodes/ImageBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, 0, 0, 17, 152 +src/client/views/nodes/ImageBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 430, 0, 0, 0, 0, 0, 0, 10, 35, 475 +src/client/views/nodes/KeyValueBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, 3, 123 +src/client/views/nodes/KeyValueBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 0, 0, 0, 0, 0, 0, 1, 26, 271 +src/client/views/nodes/KeyValuePair.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 1, 4, 60 +src/client/views/nodes/KeyValuePair.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 2, 8, 135 +src/client/views/nodes/LabelBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 4, 35 +src/client/views/nodes/LabelBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 1, 9, 96 +src/client/views/nodes/LinkAnchorBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 2, 29 +src/client/views/nodes/LinkAnchorBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 9, 150 +src/client/views/nodes/LinkBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3 +src/client/views/nodes/LinkBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 3, 36 +src/client/views/nodes/PDFBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 0, 0, 0, 0, 0, 0, 19, 219 +src/client/views/nodes/PDFBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 19, 265 +src/client/views/nodes/PresBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 1, 53 +src/client/views/nodes/PresBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 31, 32, 331 +src/client/views/nodes/QueryBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5 +src/client/views/nodes/QueryBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 4, 41 +src/client/views/nodes/RadialMenu.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 3, 7, 70 +src/client/views/nodes/RadialMenu.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, 26, 36, 236 +src/client/views/nodes/RadialMenuItem.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 16, 117 +src/client/views/nodes/ScreenshotBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 6, 5, 51 +src/client/views/nodes/ScreenshotBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, 2, 18, 194 +src/client/views/nodes/ScriptingBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 3, 36 +src/client/views/nodes/ScriptingBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 12, 99 +src/client/views/nodes/SliderBox-components.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 12, 25, 257 +src/client/views/nodes/SliderBox-tooltip.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 3, 33 +src/client/views/nodes/SliderBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 7 +src/client/views/nodes/SliderBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 8, 125 +src/client/views/nodes/VideoBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 3, 6, 74 +src/client/views/nodes/VideoBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 343, 0, 0, 0, 0, 0, 0, 2, 34, 379 +src/client/views/nodes/WebBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 18, 127 +src/client/views/nodes/WebBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 345, 0, 0, 0, 0, 0, 0, 15, 35, 395 +src/client/views/nodes/formattedText/DashDocCommentView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 13, 95 +src/client/views/nodes/formattedText/DashDocView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 0, 9, 37, 269 +src/client/views/nodes/formattedText/DashFieldView.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 2, 36 +src/client/views/nodes/formattedText/DashFieldView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 13, 20, 211 +src/client/views/nodes/formattedText/FootnoteView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, 13, 19, 163 +src/client/views/nodes/formattedText/FormattedTextBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 11, 34, 265 +src/client/views/nodes/formattedText/FormattedTextBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1169, 0, 0, 0, 0, 0, 0, 68, 93, 1330 +src/client/views/nodes/formattedText/FormattedTextBoxComment.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 33 +src/client/views/nodes/formattedText/FormattedTextBoxComment.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 0, 0, 0, 0, 0, 0, 11, 8, 237 +src/client/views/nodes/formattedText/ImageResizeView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 25, 138 +src/client/views/nodes/formattedText/ParagraphNodeSpec.ts, TypeScript, 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 26, 143 +src/client/views/nodes/formattedText/ProsemirrorExampleTransfer.ts, TypeScript, 0, 0, 0, 0, 0, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 242 +src/client/views/nodes/formattedText/RichTextMenu.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 2, 19, 121 +src/client/views/nodes/formattedText/RichTextMenu.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 754, 0, 0, 0, 0, 0, 0, 12, 109, 875 +src/client/views/nodes/formattedText/RichTextRules.ts, TypeScript, 0, 0, 0, 0, 0, 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 5, 320 +src/client/views/nodes/formattedText/RichTextSchema.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 465, 0, 0, 0, 0, 0, 0, 33, 39, 537 +src/client/views/nodes/formattedText/SummaryView.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 14, 81 +src/client/views/nodes/formattedText/TooltipTextMenu.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 306, 0, 0, 0, 0, 0, 6, 61, 373 +src/client/views/nodes/formattedText/marks_rts.ts, TypeScript, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 23, 297 +src/client/views/nodes/formattedText/nodes_rts.ts, TypeScript, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 19, 264 +src/client/views/nodes/formattedText/prosemirrorPatches.js, JavaScript, 0, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 139 +src/client/views/nodes/formattedText/schema_rts.ts, TypeScript, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 6, 26 +src/client/views/pdf/Annotation.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 6 +src/client/views/pdf/Annotation.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 16, 130 +src/client/views/pdf/PDFMenu.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 6 +src/client/views/pdf/PDFMenu.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 21, 123 +src/client/views/pdf/PDFViewer.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 4, 10, 88 +src/client/views/pdf/PDFViewer.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 662, 0, 0, 0, 0, 0, 0, 23, 46, 731 +src/client/views/presentationview/PresElementBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 10, 103 +src/client/views/presentationview/PresElementBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 31, 14, 224 +src/client/views/search/CheckBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 1, 8, 59 +src/client/views/search/CheckBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 74, 15, 131 +src/client/views/search/CollectionFilters.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 3, 20 +src/client/views/search/CollectionFilters.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 14, 83 +src/client/views/search/FieldFilters.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 1, 12 +src/client/views/search/FieldFilters.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 7, 41 +src/client/views/search/FilterBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, 0, 0, 0, 0, 0, 0, 25, 178 +src/client/views/search/FilterBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 354, 0, 0, 0, 0, 0, 0, 24, 54, 432 +src/client/views/search/IconBar.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 1, 10 +src/client/views/search/IconBar.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 1, 17, 87 +src/client/views/search/IconButton.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 1, 6, 53 +src/client/views/search/IconButton.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 0, 0, 0, 0, 0, 0, 2, 19, 191 +src/client/views/search/NaviconButton.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 11, 69 +src/client/views/search/NaviconButton.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 5, 37 +src/client/views/search/SearchBox.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, 0, 0, 82, 51, 336 +src/client/views/search/SearchBox.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 0, 47, 94, 671 +src/client/views/search/SearchItem.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, 25, 163 +src/client/views/search/SearchItem.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 2, 29, 303 +src/client/views/search/SelectorContextMenu.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 1, 3, 16 +src/client/views/search/ToggleBar.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 2, 4, 41 +src/client/views/search/ToggleBar.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 9, 86 +src/client/views/webcam/DashWebRTCVideo.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 4, 9, 83 +src/client/views/webcam/DashWebRTCVideo.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 6, 16, 89 +src/client/views/webcam/WebCamLogic.js, JavaScript, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 51, 292 +src/debug/Repl.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 7, 66 +src/debug/Test.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 2, 14 +src/debug/Viewer.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 19, 192 +src/extensions/ArrayExtensions.ts, TypeScript, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 6, 37 +src/extensions/General/Extensions.ts, TypeScript, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 9 +src/extensions/General/ExtensionsTypings.ts, TypeScript, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 8 +src/extensions/StringExtensions.ts, TypeScript, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 17 +src/mobile/ImageUpload.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 4, 34 +src/mobile/ImageUpload.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 41, 12, 131 +src/mobile/InkControls.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +src/mobile/MobileInkOverlay.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 1, 5, 39 +src/mobile/MobileInkOverlay.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, 0, 0, 0, 3, 26, 191 +src/mobile/MobileInterface.scss, SCSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 2, 19 +src/mobile/MobileInterface.tsx, TypeScript React, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, 0, 0, 0, 0, 0, 15, 32, 344 +src/new_fields/CursorField.ts, TypeScript, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 66 +src/new_fields/DateField.ts, TypeScript, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 37 +src/new_fields/Doc.ts, TypeScript, 0, 0, 0, 0, 0, 897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 76, 1058 +src/new_fields/FieldSymbols.ts, TypeScript, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 13 +src/new_fields/HtmlField.ts, TypeScript, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 27 +src/new_fields/IconField.ts, TypeScript, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 27 +src/new_fields/InkField.ts, TypeScript, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 51 +src/new_fields/List.ts, TypeScript, 0, 0, 0, 0, 0, 244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 20, 302 +src/new_fields/ListSpec.ts, TypeScript, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +src/new_fields/ObjectField.ts, TypeScript, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 20 +src/new_fields/PresField.ts, TypeScript, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 6 +src/new_fields/Proxy.ts, TypeScript, 0, 0, 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 14, 111 +src/new_fields/RefField.ts, TypeScript, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 22 +src/new_fields/RichTextField.ts, TypeScript, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 41 +src/new_fields/RichTextUtils.ts, TypeScript, 0, 0, 0, 0, 0, 455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 56, 519 +src/new_fields/Schema.ts, TypeScript, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 120 +src/new_fields/SchemaHeaderField.ts, TypeScript, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 14, 122 +src/new_fields/ScriptField.ts, TypeScript, 0, 0, 0, 0, 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 19, 177 +src/new_fields/Types.ts, TypeScript, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 17, 108 +src/new_fields/URLField.ts, TypeScript, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 54 +src/new_fields/documentSchemas.ts, TypeScript, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 93 +src/new_fields/util.ts, TypeScript, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 15, 194 +src/pen-gestures/GestureUtils.ts, TypeScript, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 46 +src/pen-gestures/ndollar.ts, TypeScript, 0, 0, 0, 0, 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 22, 550 +src/scraping/acm/.gitignore, Ignore, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2 +src/scraping/acm/debug.log, log, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 1, 39 +src/scraping/acm/index.js, JavaScript, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 13, 280 +src/scraping/acm/package.json, JSON, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 18 +src/scraping/buxton/.idea/buxton.iml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 8 +src/scraping/buxton/.idea/inspectionProfiles/profiles_settings.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 6 +src/scraping/buxton/.idea/misc.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 4 +src/scraping/buxton/.idea/modules.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 8 +src/scraping/buxton/.idea/vcs.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 6 +src/scraping/buxton/.idea/workspace.xml, XML, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, 173 +src/scraping/buxton/final/BuxtonImporter.ts, TypeScript, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 142, 26, 396 +src/scraping/buxton/jsonifier.py, Python, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 48, 232 +src/scraping/buxton/narratives.py, Python, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 9, 39 +src/scraping/buxton/narratives/chord_keyboards.json, JSON, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39 +src/scraping/buxton/scraper.py, Python, 0, 0, 0, 0, 350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 78, 433 +src/server/ActionUtilities.ts, TypeScript, 0, 0, 0, 0, 0, 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 23, 160 +src/server/ApiManagers/ApiManager.ts, TypeScript, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 11 +src/server/ApiManagers/DeleteManager.ts, TypeScript, 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 82 +src/server/ApiManagers/DownloadManager.ts, TypeScript, 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 16, 269 +src/server/ApiManagers/GeneralGoogleManager.ts, TypeScript, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 61 +src/server/ApiManagers/GooglePhotosManager.ts, TypeScript, 0, 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 22, 331 +src/server/ApiManagers/PDFManager.ts, TypeScript, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 115 +src/server/ApiManagers/SearchManager.ts, TypeScript, 0, 0, 0, 0, 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 215 +src/server/ApiManagers/SessionManager.ts, TypeScript, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 67 +src/server/ApiManagers/UploadManager.ts, TypeScript, 0, 0, 0, 0, 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20, 247 +src/server/ApiManagers/UserManager.ts, TypeScript, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 21, 126 +src/server/ApiManagers/UtilManager.ts, TypeScript, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 10, 74 +src/server/Client.ts, TypeScript, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 11 +src/server/DashSession/DashSessionAgent.ts, TypeScript, 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 23, 230 +src/server/DashSession/Session/agents/applied_session_agent.ts, TypeScript, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 9, 58 +src/server/DashSession/Session/agents/monitor.ts, TypeScript, 0, 0, 0, 0, 0, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 26, 298 +src/server/DashSession/Session/agents/process_message_router.ts, TypeScript, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 41 +src/server/DashSession/Session/agents/promisified_ipc_manager.ts, TypeScript, 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 15, 173 +src/server/DashSession/Session/agents/server_worker.ts, TypeScript, 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 15, 160 +src/server/DashSession/Session/utilities/repl.ts, TypeScript, 0, 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 128 +src/server/DashSession/Session/utilities/session_config.ts, TypeScript, 0, 0, 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 129 +src/server/DashSession/Session/utilities/utilities.ts, TypeScript, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 5, 37 +src/server/DashUploadUtils.ts, TypeScript, 0, 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 30, 367 +src/server/GarbageCollector.ts, TypeScript, 0, 0, 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 11, 151 +src/server/IDatabase.ts, TypeScript, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 25 +src/server/MemoryDatabase.ts, TypeScript, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 101 +src/server/Message.ts, TypeScript, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 104 +src/server/PdfTypes.ts, TypeScript, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 21 +src/server/ProcessFactory.ts, TypeScript, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 44 +src/server/Recommender.ts, TypeScript, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 18, 138 +src/server/RouteManager.ts, TypeScript, 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 19, 210 +src/server/RouteSubscriber.ts, TypeScript, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 26 +src/server/Search.ts, TypeScript, 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 8, 81 +src/server/SharedMediaTypes.ts, TypeScript, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 51 +src/server/Websocket/Websocket.ts, TypeScript, 0, 0, 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 46, 314 +src/server/apis/google/GoogleApiServerUtils.ts, TypeScript, 0, 0, 0, 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 25, 365 +src/server/apis/google/SharedTypes.ts, TypeScript, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 21 +src/server/apis/youtube/youtubeApiSample.d.ts, TypeScript, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 +src/server/apis/youtube/youtubeApiSample.js, JavaScript, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 14, 179 +src/server/authentication/config/passport.ts, TypeScript, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 29 +src/server/authentication/controllers/user_controller.ts, TypeScript, 0, 0, 0, 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 268 +src/server/authentication/models/current_user_utils.ts, TypeScript, 0, 0, 0, 0, 0, 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 57, 673 +src/server/authentication/models/user_model.ts, TypeScript, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 14, 86 +src/server/credentials/CredentialsLoader.ts, TypeScript, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 30 +src/server/credentials/google_project_credentials.json, JSON, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11 +src/server/database.ts, TypeScript, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 350 +src/server/downsize.ts, TypeScript, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 1, 40 +src/server/index.ts, TypeScript, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 16, 159 +src/server/remapUrl.ts, TypeScript, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 63 +src/server/server_Initialization.ts, TypeScript, 0, 0, 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 24, 168 +src/server/slides.json, JSON, 0, 0, 10820, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10820 +src/server/updateProtos.ts, TypeScript, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 14 +src/typings/index.d.ts, TypeScript, 0, 0, 0, 0, 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 38, 329 +test/test.ts, TypeScript, 0, 0, 0, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 161 +tsconfig.json, JSON, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 26 +tslint.json, JSON, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 1, 63 +views/forgot.pug, Pug, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 22 +views/layout.pug, Pug, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 14 +views/login.pug, Pug, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 26 +views/reset.pug, Pug, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 22 +views/signup.pug, Pug, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 27 +views/stylesheets/authentication.css, CSS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, 4, 34, 223 +views/user_activity.pug, Pug, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 19 +webpack.config.js, JavaScript, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 121 +Total, -, 6, 89717, 50401, 1893, 632, 15246, 2883, 119, 538, 5982, 30250, 7726, 17257, 161, 2, 38, 2060, 32987, 15880, 273778 \ No newline at end of file diff --git a/.VSCodeCounter/results.md b/.VSCodeCounter/results.md new file mode 100644 index 000000000..3265d800b --- /dev/null +++ b/.VSCodeCounter/results.md @@ -0,0 +1,164 @@ +# Summary + +Date : 2020-04-30 14:40:17 + +Directory /Users/bcz/Documents/GitHub/Dash-Web + +Total : 646 files, 224911 codes, 32987 comments, 15880 blanks, all 273778 lines + +[details](details.md) + +## Languages +| language | files | code | comment | blank | total | +| :--- | ---: | ---: | ---: | ---: | ---: | +| JavaScript | 69 | 89,717 | 18,520 | 5,866 | 114,103 | +| JSON | 20 | 50,401 | 37 | 14 | 50,452 | +| TypeScript React | 140 | 30,250 | 1,878 | 3,154 | 35,282 | +| XML | 73 | 17,257 | 8,281 | 992 | 26,530 | +| TypeScript | 115 | 15,246 | 2,095 | 1,958 | 19,299 | +| SCSS | 104 | 7,726 | 255 | 1,136 | 9,117 | +| CSS | 30 | 5,982 | 549 | 1,095 | 7,626 | +| HTML | 34 | 2,883 | 431 | 848 | 4,162 | +| XSL | 20 | 2,060 | 416 | 232 | 2,708 | +| Batch | 5 | 1,893 | 184 | 273 | 2,350 | +| Python | 5 | 632 | 49 | 148 | 829 | +| Shell Script | 6 | 538 | 248 | 120 | 906 | +| Properties | 16 | 161 | 43 | 30 | 234 | +| Pug | 6 | 119 | 1 | 10 | 130 | +| log | 1 | 38 | 0 | 1 | 39 | +| Markdown | 1 | 6 | 0 | 3 | 9 | +| Ignore | 1 | 2 | 0 | 0 | 2 | + +## Directories +| path | files | code | comment | blank | total | +| :--- | ---: | ---: | ---: | ---: | ---: | +| . | 646 | 224,911 | 32,987 | 15,880 | 273,778 | +| build | 1 | 9 | 0 | 3 | 12 | +| deploy | 8 | 55,744 | 174 | 704 | 56,622 | +| deploy/assets | 2 | 55,677 | 174 | 686 | 56,537 | +| deploy/debug | 3 | 32 | 0 | 9 | 41 | +| deploy/mobile | 2 | 22 | 0 | 6 | 28 | +| solr-8.3.1 | 236 | 80,866 | 26,654 | 7,861 | 115,381 | +| solr-8.3.1/bin | 5 | 2,118 | 392 | 311 | 2,821 | +| solr-8.3.1/contrib | 3 | 6,281 | 63 | 37 | 6,381 | +| solr-8.3.1/contrib/prometheus-exporter | 3 | 6,281 | 63 | 37 | 6,381 | +| solr-8.3.1/contrib/prometheus-exporter/bin | 1 | 82 | 0 | 26 | 108 | +| solr-8.3.1/contrib/prometheus-exporter/conf | 2 | 6,199 | 63 | 11 | 6,273 | +| solr-8.3.1/docs | 2 | 59 | 0 | 2 | 61 | +| solr-8.3.1/docs/images | 1 | 39 | 0 | 1 | 40 | +| solr-8.3.1/example | 82 | 32,009 | 5,063 | 942 | 38,014 | +| solr-8.3.1/example/example-DIH | 49 | 2,848 | 3,605 | 603 | 7,056 | +| solr-8.3.1/example/example-DIH/solr | 49 | 2,848 | 3,605 | 603 | 7,056 | +| solr-8.3.1/example/example-DIH/solr/atom | 3 | 41 | 43 | 19 | 103 | +| solr-8.3.1/example/example-DIH/solr/atom/conf | 2 | 41 | 43 | 17 | 101 | +| solr-8.3.1/example/example-DIH/solr/db | 14 | 935 | 1,167 | 191 | 2,293 | +| solr-8.3.1/example/example-DIH/solr/db/conf | 13 | 935 | 1,167 | 189 | 2,291 | +| solr-8.3.1/example/example-DIH/solr/db/conf/clustering | 3 | 39 | 23 | 3 | 65 | +| solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2 | 3 | 39 | 23 | 3 | 65 | +| solr-8.3.1/example/example-DIH/solr/db/conf/xslt | 5 | 515 | 104 | 58 | 677 | +| solr-8.3.1/example/example-DIH/solr/mail | 14 | 919 | 1,171 | 189 | 2,279 | +| solr-8.3.1/example/example-DIH/solr/mail/conf | 13 | 919 | 1,171 | 187 | 2,277 | +| solr-8.3.1/example/example-DIH/solr/mail/conf/clustering | 3 | 39 | 23 | 3 | 65 | +| solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2 | 3 | 39 | 23 | 3 | 65 | +| solr-8.3.1/example/example-DIH/solr/mail/conf/xslt | 5 | 515 | 104 | 58 | 677 | +| solr-8.3.1/example/example-DIH/solr/solr | 14 | 917 | 1,183 | 187 | 2,287 | +| solr-8.3.1/example/example-DIH/solr/solr/conf | 13 | 917 | 1,183 | 185 | 2,285 | +| solr-8.3.1/example/example-DIH/solr/solr/conf/clustering | 3 | 39 | 23 | 3 | 65 | +| solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2 | 3 | 39 | 23 | 3 | 65 | +| solr-8.3.1/example/example-DIH/solr/solr/conf/xslt | 5 | 515 | 104 | 58 | 677 | +| solr-8.3.1/example/example-DIH/solr/tika | 3 | 34 | 41 | 16 | 91 | +| solr-8.3.1/example/example-DIH/solr/tika/conf | 2 | 34 | 41 | 14 | 89 | +| solr-8.3.1/example/exampledocs | 17 | 513 | 281 | 75 | 869 | +| solr-8.3.1/example/files | 13 | 1,298 | 1,153 | 250 | 2,701 | +| solr-8.3.1/example/files/browse-resources | 3 | 108 | 6 | 9 | 123 | +| solr-8.3.1/example/files/browse-resources/velocity | 3 | 108 | 6 | 9 | 123 | +| solr-8.3.1/example/files/conf | 10 | 1,190 | 1,147 | 241 | 2,578 | +| solr-8.3.1/example/files/conf/velocity | 5 | 730 | 99 | 108 | 937 | +| solr-8.3.1/example/files/conf/velocity/js | 3 | 730 | 99 | 104 | 933 | +| solr-8.3.1/example/films | 3 | 27,350 | 24 | 14 | 27,388 | +| solr-8.3.1/server | 144 | 40,399 | 21,136 | 6,569 | 68,104 | +| solr-8.3.1/server/contexts | 1 | 8 | 0 | 1 | 9 | +| solr-8.3.1/server/etc | 6 | 528 | 400 | 59 | 987 | +| solr-8.3.1/server/resources | 3 | 74 | 123 | 16 | 213 | +| solr-8.3.1/server/scripts | 3 | 172 | 19 | 39 | 230 | +| solr-8.3.1/server/scripts/cloud-scripts | 3 | 172 | 19 | 39 | 230 | +| solr-8.3.1/server/solr | 27 | 2,612 | 3,377 | 557 | 6,546 | +| solr-8.3.1/server/solr-webapp | 99 | 36,960 | 17,207 | 5,892 | 60,059 | +| solr-8.3.1/server/solr-webapp/webapp | 99 | 36,960 | 17,207 | 5,892 | 60,059 | +| solr-8.3.1/server/solr-webapp/webapp/WEB-INF | 1 | 62 | 42 | 11 | 115 | +| solr-8.3.1/server/solr-webapp/webapp/css | 26 | 5,548 | 536 | 1,005 | 7,089 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular | 26 | 5,548 | 536 | 1,005 | 7,089 | +| solr-8.3.1/server/solr-webapp/webapp/img | 1 | 39 | 0 | 1 | 40 | +| solr-8.3.1/server/solr-webapp/webapp/js | 25 | 4,450 | 515 | 586 | 5,551 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular | 25 | 4,450 | 515 | 586 | 5,551 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers | 23 | 3,627 | 478 | 544 | 4,649 | +| solr-8.3.1/server/solr-webapp/webapp/libs | 21 | 24,087 | 15,683 | 3,464 | 43,234 | +| solr-8.3.1/server/solr-webapp/webapp/partials | 24 | 2,571 | 415 | 787 | 3,773 | +| solr-8.3.1/server/solr/configsets | 21 | 2,243 | 2,359 | 437 | 5,039 | +| solr-8.3.1/server/solr/configsets/_default | 2 | 316 | 976 | 99 | 1,391 | +| solr-8.3.1/server/solr/configsets/_default/conf | 2 | 316 | 976 | 99 | 1,391 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs | 19 | 1,927 | 1,383 | 338 | 3,648 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf | 19 | 1,927 | 1,383 | 338 | 3,648 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering | 3 | 39 | 23 | 3 | 65 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2 | 3 | 39 | 23 | 3 | 65 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity | 3 | 839 | 77 | 129 | 1,045 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt | 5 | 515 | 104 | 58 | 677 | +| solr-8.3.1/server/solr/dash | 4 | 345 | 968 | 105 | 1,418 | +| solr-8.3.1/server/solr/dash/conf | 3 | 341 | 966 | 104 | 1,411 | +| solr-8.3.1/server/tmp | 5 | 45 | 10 | 5 | 60 | +| src | 384 | 68,699 | 6,117 | 7,234 | 82,050 | +| src/client | 277 | 46,644 | 4,305 | 5,743 | 56,692 | +| src/client/apis | 7 | 1,053 | 97 | 150 | 1,300 | +| src/client/apis/google_docs | 2 | 543 | 9 | 73 | 625 | +| src/client/apis/youtube | 2 | 379 | 53 | 56 | 488 | +| src/client/cognitive_services | 1 | 342 | 10 | 57 | 409 | +| src/client/documents | 2 | 839 | 143 | 90 | 1,072 | +| src/client/util | 30 | 3,931 | 351 | 515 | 4,797 | +| src/client/util/Import & Export | 4 | 566 | 0 | 52 | 618 | +| src/client/util/ProsemirrorCopy | 1 | 128 | 30 | 22 | 180 | +| src/client/views | 231 | 36,751 | 1,935 | 4,094 | 42,780 | +| src/client/views/animationtimeline | 10 | 1,966 | 237 | 262 | 2,465 | +| src/client/views/collections | 53 | 11,516 | 574 | 1,153 | 13,243 | +| src/client/views/collections/collectionFreeForm | 12 | 2,540 | 177 | 203 | 2,920 | +| src/client/views/collections/collectionMulticolumn | 8 | 751 | 144 | 85 | 980 | +| src/client/views/linking | 7 | 747 | 10 | 138 | 895 | +| src/client/views/nodes | 75 | 12,034 | 475 | 1,218 | 13,727 | +| src/client/views/nodes/formattedText | 22 | 5,353 | 250 | 592 | 6,195 | +| src/client/views/pdf | 6 | 964 | 27 | 93 | 1,084 | +| src/client/views/presentationview | 2 | 272 | 31 | 24 | 327 | +| src/client/views/search | 21 | 2,380 | 238 | 401 | 3,019 | +| src/client/views/webcam | 3 | 371 | 17 | 76 | 464 | +| src/debug | 3 | 244 | 0 | 28 | 272 | +| src/extensions | 4 | 53 | 5 | 13 | 71 | +| src/extensions/General | 2 | 14 | 0 | 3 | 17 | +| src/mobile | 7 | 617 | 60 | 82 | 759 | +| src/new_fields | 22 | 2,682 | 172 | 315 | 3,169 | +| src/pen-gestures | 2 | 397 | 172 | 27 | 596 | +| src/scraping | 15 | 1,155 | 352 | 176 | 1,683 | +| src/scraping/acm | 4 | 139 | 185 | 15 | 339 | +| src/scraping/buxton | 11 | 1,016 | 167 | 161 | 1,344 | +| src/scraping/buxton/.idea | 6 | 205 | 0 | 0 | 205 | +| src/scraping/buxton/.idea/inspectionProfiles | 1 | 6 | 0 | 0 | 6 | +| src/scraping/buxton/final | 1 | 228 | 142 | 26 | 396 | +| src/scraping/buxton/narratives | 1 | 39 | 0 | 0 | 39 | +| src/server | 52 | 16,247 | 956 | 731 | 17,934 | +| src/server/ApiManagers | 11 | 1,223 | 226 | 149 | 1,598 | +| src/server/DashSession | 9 | 903 | 229 | 122 | 1,254 | +| src/server/DashSession/Session | 8 | 748 | 177 | 99 | 1,024 | +| src/server/DashSession/Session/agents | 5 | 489 | 169 | 72 | 730 | +| src/server/DashSession/Session/utilities | 3 | 259 | 8 | 27 | 294 | +| src/server/Websocket | 1 | 263 | 5 | 46 | 314 | +| src/server/apis | 4 | 328 | 198 | 41 | 567 | +| src/server/apis/google | 2 | 191 | 168 | 27 | 386 | +| src/server/apis/youtube | 2 | 137 | 30 | 14 | 181 | +| src/server/authentication | 4 | 890 | 66 | 100 | 1,056 | +| src/server/authentication/config | 1 | 23 | 2 | 4 | 29 | +| src/server/authentication/controllers | 1 | 218 | 25 | 25 | 268 | +| src/server/authentication/models | 2 | 649 | 39 | 71 | 759 | +| src/server/credentials | 2 | 35 | 0 | 6 | 41 | +| src/typings | 1 | 219 | 72 | 38 | 329 | +| test | 1 | 141 | 0 | 20 | 161 | +| views | 7 | 304 | 5 | 44 | 353 | +| views/stylesheets | 1 | 185 | 4 | 34 | 223 | + +[details](details.md) \ No newline at end of file diff --git a/.VSCodeCounter/results.txt b/.VSCodeCounter/results.txt new file mode 100644 index 000000000..aaf54b147 --- /dev/null +++ b/.VSCodeCounter/results.txt @@ -0,0 +1,813 @@ +Date : 2020-04-30 14:40:16 +Directory : /Users/bcz/Documents/GitHub/Dash-Web +Total : 646 files, 224911 codes, 32987 comments, 15880 blanks, all 273778 lines + +Languages ++------------------+------------+------------+------------+------------+------------+ +| language | files | code | comment | blank | total | ++------------------+------------+------------+------------+------------+------------+ +| JavaScript | 69 | 89,717 | 18,520 | 5,866 | 114,103 | +| JSON | 20 | 50,401 | 37 | 14 | 50,452 | +| TypeScript React | 140 | 30,250 | 1,878 | 3,154 | 35,282 | +| XML | 73 | 17,257 | 8,281 | 992 | 26,530 | +| TypeScript | 115 | 15,246 | 2,095 | 1,958 | 19,299 | +| SCSS | 104 | 7,726 | 255 | 1,136 | 9,117 | +| CSS | 30 | 5,982 | 549 | 1,095 | 7,626 | +| HTML | 34 | 2,883 | 431 | 848 | 4,162 | +| XSL | 20 | 2,060 | 416 | 232 | 2,708 | +| Batch | 5 | 1,893 | 184 | 273 | 2,350 | +| Python | 5 | 632 | 49 | 148 | 829 | +| Shell Script | 6 | 538 | 248 | 120 | 906 | +| Properties | 16 | 161 | 43 | 30 | 234 | +| Pug | 6 | 119 | 1 | 10 | 130 | +| log | 1 | 38 | 0 | 1 | 39 | +| Markdown | 1 | 6 | 0 | 3 | 9 | +| Ignore | 1 | 2 | 0 | 0 | 2 | ++------------------+------------+------------+------------+------------+------------+ + +Directories ++-------------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ +| path | files | code | comment | blank | total | ++-------------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ +| . | 646 | 224,911 | 32,987 | 15,880 | 273,778 | +| solr-8.3.1 | 236 | 80,866 | 26,654 | 7,861 | 115,381 | +| src | 384 | 68,699 | 6,117 | 7,234 | 82,050 | +| deploy | 8 | 55,744 | 174 | 704 | 56,622 | +| deploy/assets | 2 | 55,677 | 174 | 686 | 56,537 | +| src/client | 277 | 46,644 | 4,305 | 5,743 | 56,692 | +| solr-8.3.1/server | 144 | 40,399 | 21,136 | 6,569 | 68,104 | +| solr-8.3.1/server/solr-webapp/webapp | 99 | 36,960 | 17,207 | 5,892 | 60,059 | +| solr-8.3.1/server/solr-webapp | 99 | 36,960 | 17,207 | 5,892 | 60,059 | +| src/client/views | 231 | 36,751 | 1,935 | 4,094 | 42,780 | +| solr-8.3.1/example | 82 | 32,009 | 5,063 | 942 | 38,014 | +| solr-8.3.1/example/films | 3 | 27,350 | 24 | 14 | 27,388 | +| solr-8.3.1/server/solr-webapp/webapp/libs | 21 | 24,087 | 15,683 | 3,464 | 43,234 | +| src/server | 52 | 16,247 | 956 | 731 | 17,934 | +| src/client/views/nodes | 75 | 12,034 | 475 | 1,218 | 13,727 | +| src/client/views/collections | 53 | 11,516 | 574 | 1,153 | 13,243 | +| solr-8.3.1/contrib | 3 | 6,281 | 63 | 37 | 6,381 | +| solr-8.3.1/contrib/prometheus-exporter | 3 | 6,281 | 63 | 37 | 6,381 | +| solr-8.3.1/contrib/prometheus-exporter/conf | 2 | 6,199 | 63 | 11 | 6,273 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular | 26 | 5,548 | 536 | 1,005 | 7,089 | +| solr-8.3.1/server/solr-webapp/webapp/css | 26 | 5,548 | 536 | 1,005 | 7,089 | +| src/client/views/nodes/formattedText | 22 | 5,353 | 250 | 592 | 6,195 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular | 25 | 4,450 | 515 | 586 | 5,551 | +| solr-8.3.1/server/solr-webapp/webapp/js | 25 | 4,450 | 515 | 586 | 5,551 | +| src/client/util | 30 | 3,931 | 351 | 515 | 4,797 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers | 23 | 3,627 | 478 | 544 | 4,649 | +| solr-8.3.1/example/example-DIH/solr | 49 | 2,848 | 3,605 | 603 | 7,056 | +| solr-8.3.1/example/example-DIH | 49 | 2,848 | 3,605 | 603 | 7,056 | +| src/new_fields | 22 | 2,682 | 172 | 315 | 3,169 | +| solr-8.3.1/server/solr | 27 | 2,612 | 3,377 | 557 | 6,546 | +| solr-8.3.1/server/solr-webapp/webapp/partials | 24 | 2,571 | 415 | 787 | 3,773 | +| src/client/views/collections/collectionFreeForm | 12 | 2,540 | 177 | 203 | 2,920 | +| src/client/views/search | 21 | 2,380 | 238 | 401 | 3,019 | +| solr-8.3.1/server/solr/configsets | 21 | 2,243 | 2,359 | 437 | 5,039 | +| solr-8.3.1/bin | 5 | 2,118 | 392 | 311 | 2,821 | +| src/client/views/animationtimeline | 10 | 1,966 | 237 | 262 | 2,465 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf | 19 | 1,927 | 1,383 | 338 | 3,648 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs | 19 | 1,927 | 1,383 | 338 | 3,648 | +| solr-8.3.1/example/files | 13 | 1,298 | 1,153 | 250 | 2,701 | +| src/server/ApiManagers | 11 | 1,223 | 226 | 149 | 1,598 | +| solr-8.3.1/example/files/conf | 10 | 1,190 | 1,147 | 241 | 2,578 | +| src/scraping | 15 | 1,155 | 352 | 176 | 1,683 | +| src/client/apis | 7 | 1,053 | 97 | 150 | 1,300 | +| src/scraping/buxton | 11 | 1,016 | 167 | 161 | 1,344 | +| src/client/views/pdf | 6 | 964 | 27 | 93 | 1,084 | +| solr-8.3.1/example/example-DIH/solr/db | 14 | 935 | 1,167 | 191 | 2,293 | +| solr-8.3.1/example/example-DIH/solr/db/conf | 13 | 935 | 1,167 | 189 | 2,291 | +| solr-8.3.1/example/example-DIH/solr/mail | 14 | 919 | 1,171 | 189 | 2,279 | +| solr-8.3.1/example/example-DIH/solr/mail/conf | 13 | 919 | 1,171 | 187 | 2,277 | +| solr-8.3.1/example/example-DIH/solr/solr/conf | 13 | 917 | 1,183 | 185 | 2,285 | +| solr-8.3.1/example/example-DIH/solr/solr | 14 | 917 | 1,183 | 187 | 2,287 | +| src/server/DashSession | 9 | 903 | 229 | 122 | 1,254 | +| src/server/authentication | 4 | 890 | 66 | 100 | 1,056 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity | 3 | 839 | 77 | 129 | 1,045 | +| src/client/documents | 2 | 839 | 143 | 90 | 1,072 | +| src/client/views/collections/collectionMulticolumn | 8 | 751 | 144 | 85 | 980 | +| src/server/DashSession/Session | 8 | 748 | 177 | 99 | 1,024 | +| src/client/views/linking | 7 | 747 | 10 | 138 | 895 | +| solr-8.3.1/example/files/conf/velocity | 5 | 730 | 99 | 108 | 937 | +| solr-8.3.1/example/files/conf/velocity/js | 3 | 730 | 99 | 104 | 933 | +| src/server/authentication/models | 2 | 649 | 39 | 71 | 759 | +| src/mobile | 7 | 617 | 60 | 82 | 759 | +| src/client/util/Import & Export | 4 | 566 | 0 | 52 | 618 | +| src/client/apis/google_docs | 2 | 543 | 9 | 73 | 625 | +| solr-8.3.1/server/etc | 6 | 528 | 400 | 59 | 987 | +| solr-8.3.1/example/example-DIH/solr/mail/conf/xslt | 5 | 515 | 104 | 58 | 677 | +| solr-8.3.1/example/example-DIH/solr/db/conf/xslt | 5 | 515 | 104 | 58 | 677 | +| solr-8.3.1/example/example-DIH/solr/solr/conf/xslt | 5 | 515 | 104 | 58 | 677 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt | 5 | 515 | 104 | 58 | 677 | +| solr-8.3.1/example/exampledocs | 17 | 513 | 281 | 75 | 869 | +| src/server/DashSession/Session/agents | 5 | 489 | 169 | 72 | 730 | +| src/pen-gestures | 2 | 397 | 172 | 27 | 596 | +| src/client/apis/youtube | 2 | 379 | 53 | 56 | 488 | +| src/client/views/webcam | 3 | 371 | 17 | 76 | 464 | +| solr-8.3.1/server/solr/dash | 4 | 345 | 968 | 105 | 1,418 | +| src/client/cognitive_services | 1 | 342 | 10 | 57 | 409 | +| solr-8.3.1/server/solr/dash/conf | 3 | 341 | 966 | 104 | 1,411 | +| src/server/apis | 4 | 328 | 198 | 41 | 567 | +| solr-8.3.1/server/solr/configsets/_default/conf | 2 | 316 | 976 | 99 | 1,391 | +| solr-8.3.1/server/solr/configsets/_default | 2 | 316 | 976 | 99 | 1,391 | +| views | 7 | 304 | 5 | 44 | 353 | +| src/client/views/presentationview | 2 | 272 | 31 | 24 | 327 | +| src/server/Websocket | 1 | 263 | 5 | 46 | 314 | +| src/server/DashSession/Session/utilities | 3 | 259 | 8 | 27 | 294 | +| src/debug | 3 | 244 | 0 | 28 | 272 | +| src/scraping/buxton/final | 1 | 228 | 142 | 26 | 396 | +| src/typings | 1 | 219 | 72 | 38 | 329 | +| src/server/authentication/controllers | 1 | 218 | 25 | 25 | 268 | +| src/scraping/buxton/.idea | 6 | 205 | 0 | 0 | 205 | +| src/server/apis/google | 2 | 191 | 168 | 27 | 386 | +| views/stylesheets | 1 | 185 | 4 | 34 | 223 | +| solr-8.3.1/server/scripts/cloud-scripts | 3 | 172 | 19 | 39 | 230 | +| solr-8.3.1/server/scripts | 3 | 172 | 19 | 39 | 230 | +| test | 1 | 141 | 0 | 20 | 161 | +| src/scraping/acm | 4 | 139 | 185 | 15 | 339 | +| src/server/apis/youtube | 2 | 137 | 30 | 14 | 181 | +| src/client/util/ProsemirrorCopy | 1 | 128 | 30 | 22 | 180 | +| solr-8.3.1/example/files/browse-resources/velocity | 3 | 108 | 6 | 9 | 123 | +| solr-8.3.1/example/files/browse-resources | 3 | 108 | 6 | 9 | 123 | +| solr-8.3.1/contrib/prometheus-exporter/bin | 1 | 82 | 0 | 26 | 108 | +| solr-8.3.1/server/resources | 3 | 74 | 123 | 16 | 213 | +| solr-8.3.1/server/solr-webapp/webapp/WEB-INF | 1 | 62 | 42 | 11 | 115 | +| solr-8.3.1/docs | 2 | 59 | 0 | 2 | 61 | +| src/extensions | 4 | 53 | 5 | 13 | 71 | +| solr-8.3.1/server/tmp | 5 | 45 | 10 | 5 | 60 | +| solr-8.3.1/example/example-DIH/solr/atom/conf | 2 | 41 | 43 | 17 | 101 | +| solr-8.3.1/example/example-DIH/solr/atom | 3 | 41 | 43 | 19 | 103 | +| solr-8.3.1/server/solr-webapp/webapp/img | 1 | 39 | 0 | 1 | 40 | +| solr-8.3.1/docs/images | 1 | 39 | 0 | 1 | 40 | +| src/scraping/buxton/narratives | 1 | 39 | 0 | 0 | 39 | +| solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2 | 3 | 39 | 23 | 3 | 65 | +| solr-8.3.1/example/example-DIH/solr/mail/conf/clustering | 3 | 39 | 23 | 3 | 65 | +| solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2 | 3 | 39 | 23 | 3 | 65 | +| solr-8.3.1/example/example-DIH/solr/solr/conf/clustering | 3 | 39 | 23 | 3 | 65 | +| solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2 | 3 | 39 | 23 | 3 | 65 | +| solr-8.3.1/example/example-DIH/solr/db/conf/clustering | 3 | 39 | 23 | 3 | 65 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2 | 3 | 39 | 23 | 3 | 65 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering | 3 | 39 | 23 | 3 | 65 | +| src/server/credentials | 2 | 35 | 0 | 6 | 41 | +| solr-8.3.1/example/example-DIH/solr/tika | 3 | 34 | 41 | 16 | 91 | +| solr-8.3.1/example/example-DIH/solr/tika/conf | 2 | 34 | 41 | 14 | 89 | +| deploy/debug | 3 | 32 | 0 | 9 | 41 | +| src/server/authentication/config | 1 | 23 | 2 | 4 | 29 | +| deploy/mobile | 2 | 22 | 0 | 6 | 28 | +| src/extensions/General | 2 | 14 | 0 | 3 | 17 | +| build | 1 | 9 | 0 | 3 | 12 | +| solr-8.3.1/server/contexts | 1 | 8 | 0 | 1 | 9 | +| src/scraping/buxton/.idea/inspectionProfiles | 1 | 6 | 0 | 0 | 6 | ++-------------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ + +Files ++-------------------------------------------------------------------------------------------------------------+------------------+------------+------------+------------+------------+ +| filename | language | code | comment | blank | total | ++-------------------------------------------------------------------------------------------------------------+------------------+------------+------------+------------+------------+ +| README.md | Markdown | 6 | 0 | 3 | 9 | +| build/index.html | HTML | 9 | 0 | 3 | 12 | +| dash.bat | Batch | 2 | 0 | 1 | 3 | +| deploy/assets/env.json | JSON | 15 | 0 | 0 | 15 | +| deploy/assets/pdf.worker.js | JavaScript | 55,662 | 174 | 686 | 56,522 | +| deploy/debug/repl.html | HTML | 11 | 0 | 3 | 14 | +| deploy/debug/test.html | HTML | 10 | 0 | 3 | 13 | +| deploy/debug/viewer.html | HTML | 11 | 0 | 3 | 14 | +| deploy/index.html | HTML | 13 | 0 | 3 | 16 | +| deploy/mobile/image.html | HTML | 12 | 0 | 3 | 15 | +| deploy/mobile/ink.html | HTML | 10 | 0 | 3 | 13 | +| package-lock.json | JSON | 18,689 | 0 | 1 | 18,690 | +| package.json | JSON | 266 | 0 | 1 | 267 | +| sentence_parser.py | Python | 6 | 0 | 1 | 7 | +| session.config.json | JSON | 12 | 0 | 1 | 13 | +| solr-8.3.1/bin/install_solr_service.sh | Shell Script | 307 | 29 | 35 | 371 | +| solr-8.3.1/bin/oom_solr.sh | Shell Script | 13 | 15 | 3 | 31 | +| solr-8.3.1/bin/solr.cmd | Batch | 1,782 | 43 | 210 | 2,035 | +| solr-8.3.1/bin/solr.in.cmd | Batch | 16 | 133 | 29 | 178 | +| solr-8.3.1/bin/solr.in.sh | Shell Script | 0 | 172 | 34 | 206 | +| solr-8.3.1/contrib/prometheus-exporter/bin/solr-exporter.cmd | Batch | 82 | 0 | 26 | 108 | +| solr-8.3.1/contrib/prometheus-exporter/conf/grafana-solr-dashboard.json | JSON | 4,465 | 0 | 1 | 4,466 | +| solr-8.3.1/contrib/prometheus-exporter/conf/solr-exporter-config.xml | XML | 1,734 | 63 | 10 | 1,807 | +| solr-8.3.1/docs/images/solr.svg | XML | 39 | 0 | 1 | 40 | +| solr-8.3.1/docs/index.html | HTML | 20 | 0 | 1 | 21 | +| solr-8.3.1/example/example-DIH/solr/atom/conf/atom-data-config.xml | XML | 21 | 6 | 9 | 36 | +| solr-8.3.1/example/example-DIH/solr/atom/conf/solrconfig.xml | XML | 20 | 37 | 8 | 65 | +| solr-8.3.1/example/example-DIH/solr/atom/core.properties | Properties | 0 | 0 | 2 | 2 | +| solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/kmeans-attributes.xml | XML | 13 | 6 | 1 | 20 | +| solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/lingo-attributes.xml | XML | 13 | 11 | 1 | 25 | +| solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/stc-attributes.xml | XML | 13 | 6 | 1 | 20 | +| solr-8.3.1/example/example-DIH/solr/db/conf/currency.xml | XML | 45 | 19 | 4 | 68 | +| solr-8.3.1/example/example-DIH/solr/db/conf/db-data-config.xml | XML | 26 | 0 | 4 | 30 | +| solr-8.3.1/example/example-DIH/solr/db/conf/elevate.xml | XML | 3 | 37 | 3 | 43 | +| solr-8.3.1/example/example-DIH/solr/db/conf/solrconfig.xml | XML | 292 | 958 | 104 | 1,354 | +| solr-8.3.1/example/example-DIH/solr/db/conf/update-script.js | JavaScript | 15 | 26 | 13 | 54 | +| solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example.xsl | XSL | 98 | 20 | 15 | 133 | +| solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example_atom.xsl | XSL | 40 | 20 | 8 | 68 | +| solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example_rss.xsl | XSL | 41 | 20 | 6 | 67 | +| solr-8.3.1/example/example-DIH/solr/db/conf/xslt/luke.xsl | XSL | 301 | 19 | 18 | 338 | +| solr-8.3.1/example/example-DIH/solr/db/conf/xslt/updateXml.xsl | XSL | 35 | 25 | 11 | 71 | +| solr-8.3.1/example/example-DIH/solr/db/core.properties | Properties | 0 | 0 | 2 | 2 | +| solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/kmeans-attributes.xml | XML | 13 | 6 | 1 | 20 | +| solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/lingo-attributes.xml | XML | 13 | 11 | 1 | 25 | +| solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/stc-attributes.xml | XML | 13 | 6 | 1 | 20 | +| solr-8.3.1/example/example-DIH/solr/mail/conf/currency.xml | XML | 45 | 19 | 4 | 68 | +| solr-8.3.1/example/example-DIH/solr/mail/conf/elevate.xml | XML | 3 | 37 | 3 | 43 | +| solr-8.3.1/example/example-DIH/solr/mail/conf/mail-data-config.xml | XML | 8 | 4 | 1 | 13 | +| solr-8.3.1/example/example-DIH/solr/mail/conf/solrconfig.xml | XML | 294 | 958 | 105 | 1,357 | +| solr-8.3.1/example/example-DIH/solr/mail/conf/update-script.js | JavaScript | 15 | 26 | 13 | 54 | +| solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example.xsl | XSL | 98 | 20 | 15 | 133 | +| solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example_atom.xsl | XSL | 40 | 20 | 8 | 68 | +| solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example_rss.xsl | XSL | 41 | 20 | 6 | 67 | +| solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/luke.xsl | XSL | 301 | 19 | 18 | 338 | +| solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/updateXml.xsl | XSL | 35 | 25 | 11 | 71 | +| solr-8.3.1/example/example-DIH/solr/mail/core.properties | Properties | 0 | 0 | 2 | 2 | +| solr-8.3.1/example/example-DIH/solr/solr.xml | XML | 2 | 0 | 1 | 3 | +| solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/kmeans-attributes.xml | XML | 13 | 6 | 1 | 20 | +| solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/lingo-attributes.xml | XML | 13 | 11 | 1 | 25 | +| solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/stc-attributes.xml | XML | 13 | 6 | 1 | 20 | +| solr-8.3.1/example/example-DIH/solr/solr/conf/currency.xml | XML | 45 | 19 | 4 | 68 | +| solr-8.3.1/example/example-DIH/solr/solr/conf/elevate.xml | XML | 3 | 37 | 3 | 43 | +| solr-8.3.1/example/example-DIH/solr/solr/conf/solr-data-config.xml | XML | 8 | 16 | 2 | 26 | +| solr-8.3.1/example/example-DIH/solr/solr/conf/solrconfig.xml | XML | 292 | 958 | 102 | 1,352 | +| solr-8.3.1/example/example-DIH/solr/solr/conf/update-script.js | JavaScript | 15 | 26 | 13 | 54 | +| solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example.xsl | XSL | 98 | 20 | 15 | 133 | +| solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example_atom.xsl | XSL | 40 | 20 | 8 | 68 | +| solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example_rss.xsl | XSL | 41 | 20 | 6 | 67 | +| solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/luke.xsl | XSL | 301 | 19 | 18 | 338 | +| solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/updateXml.xsl | XSL | 35 | 25 | 11 | 71 | +| solr-8.3.1/example/example-DIH/solr/solr/core.properties | Properties | 0 | 0 | 2 | 2 | +| solr-8.3.1/example/example-DIH/solr/tika/conf/solrconfig.xml | XML | 17 | 38 | 7 | 62 | +| solr-8.3.1/example/example-DIH/solr/tika/conf/tika-data-config.xml | XML | 17 | 3 | 7 | 27 | +| solr-8.3.1/example/example-DIH/solr/tika/core.properties | Properties | 0 | 0 | 2 | 2 | +| solr-8.3.1/example/exampledocs/books.json | JSON | 51 | 0 | 1 | 52 | +| solr-8.3.1/example/exampledocs/gb18030-example.xml | XML | 14 | 16 | 3 | 33 | +| solr-8.3.1/example/exampledocs/hd.xml | XML | 33 | 20 | 4 | 57 | +| solr-8.3.1/example/exampledocs/ipod_other.xml | XML | 32 | 20 | 9 | 61 | +| solr-8.3.1/example/exampledocs/ipod_video.xml | XML | 21 | 18 | 2 | 41 | +| solr-8.3.1/example/exampledocs/manufacturers.xml | XML | 57 | 16 | 3 | 76 | +| solr-8.3.1/example/exampledocs/mem.xml | XML | 45 | 24 | 9 | 78 | +| solr-8.3.1/example/exampledocs/money.xml | XML | 42 | 17 | 7 | 66 | +| solr-8.3.1/example/exampledocs/monitor.xml | XML | 14 | 18 | 3 | 35 | +| solr-8.3.1/example/exampledocs/monitor2.xml | XML | 13 | 18 | 3 | 34 | +| solr-8.3.1/example/exampledocs/mp500.xml | XML | 23 | 18 | 3 | 44 | +| solr-8.3.1/example/exampledocs/sample.html | HTML | 13 | 0 | 1 | 14 | +| solr-8.3.1/example/exampledocs/sd500.xml | XML | 19 | 18 | 2 | 39 | +| solr-8.3.1/example/exampledocs/solr.xml | XML | 20 | 16 | 3 | 39 | +| solr-8.3.1/example/exampledocs/test_utf8.sh | Shell Script | 57 | 21 | 16 | 94 | +| solr-8.3.1/example/exampledocs/utf8-example.xml | XML | 19 | 20 | 4 | 43 | +| solr-8.3.1/example/exampledocs/vidcard.xml | XML | 40 | 21 | 2 | 63 | +| solr-8.3.1/example/files/browse-resources/velocity/resources.properties | Properties | 72 | 6 | 5 | 83 | +| solr-8.3.1/example/files/browse-resources/velocity/resources_de_DE.properties | Properties | 18 | 0 | 1 | 19 | +| solr-8.3.1/example/files/browse-resources/velocity/resources_fr_FR.properties | Properties | 18 | 0 | 3 | 21 | +| solr-8.3.1/example/files/conf/currency.xml | XML | 45 | 19 | 4 | 68 | +| solr-8.3.1/example/files/conf/elevate.xml | XML | 3 | 37 | 3 | 43 | +| solr-8.3.1/example/files/conf/params.json | JSON | 34 | 0 | 1 | 35 | +| solr-8.3.1/example/files/conf/solrconfig.xml | XML | 298 | 979 | 102 | 1,379 | +| solr-8.3.1/example/files/conf/update-script.js | JavaScript | 80 | 13 | 23 | 116 | +| solr-8.3.1/example/files/conf/velocity/dropit.js | JavaScript | 0 | 0 | 2 | 2 | +| solr-8.3.1/example/files/conf/velocity/jquery.tx3-tag-cloud.js | JavaScript | 0 | 0 | 2 | 2 | +| solr-8.3.1/example/files/conf/velocity/js/dropit.js | JavaScript | 64 | 15 | 19 | 98 | +| solr-8.3.1/example/files/conf/velocity/js/jquery.autocomplete.js | JavaScript | 620 | 68 | 76 | 764 | +| solr-8.3.1/example/files/conf/velocity/js/jquery.tx3-tag-cloud.js | JavaScript | 46 | 16 | 9 | 71 | +| solr-8.3.1/example/films/film_data_generator.py | Python | 82 | 24 | 12 | 118 | +| solr-8.3.1/example/films/films.json | JSON | 15,830 | 0 | 1 | 15,831 | +| solr-8.3.1/example/films/films.xml | XML | 11,438 | 0 | 1 | 11,439 | +| solr-8.3.1/server/contexts/solr-jetty-context.xml | XML | 8 | 0 | 1 | 9 | +| solr-8.3.1/server/etc/jetty-http.xml | XML | 33 | 15 | 4 | 52 | +| solr-8.3.1/server/etc/jetty-https.xml | XML | 56 | 16 | 5 | 77 | +| solr-8.3.1/server/etc/jetty-https8.xml | XML | 34 | 32 | 4 | 70 | +| solr-8.3.1/server/etc/jetty-ssl.xml | XML | 23 | 11 | 4 | 38 | +| solr-8.3.1/server/etc/jetty.xml | XML | 110 | 94 | 18 | 222 | +| solr-8.3.1/server/etc/webdefault.xml | XML | 272 | 232 | 24 | 528 | +| solr-8.3.1/server/resources/jetty-logging.properties | Properties | 1 | 0 | 1 | 2 | +| solr-8.3.1/server/resources/log4j2-console.xml | XML | 19 | 43 | 6 | 68 | +| solr-8.3.1/server/resources/log4j2.xml | XML | 54 | 80 | 9 | 143 | +| solr-8.3.1/server/scripts/cloud-scripts/snapshotscli.sh | Shell Script | 152 | 2 | 23 | 177 | +| solr-8.3.1/server/scripts/cloud-scripts/zkcli.bat | Batch | 11 | 8 | 7 | 26 | +| solr-8.3.1/server/scripts/cloud-scripts/zkcli.sh | Shell Script | 9 | 9 | 9 | 27 | +| solr-8.3.1/server/solr-webapp/webapp/WEB-INF/web.xml | XML | 62 | 42 | 11 | 115 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/analysis.css | CSS | 237 | 19 | 48 | 304 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/chosen.css | CSS | 402 | 55 | 9 | 466 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/cloud.css | CSS | 594 | 23 | 106 | 723 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/collections.css | CSS | 296 | 18 | 65 | 379 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/common.css | CSS | 647 | 19 | 106 | 772 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/cores.css | CSS | 171 | 18 | 37 | 226 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/dashboard.css | CSS | 134 | 18 | 28 | 180 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/dataimport.css | CSS | 292 | 18 | 61 | 371 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/documents.css | CSS | 131 | 23 | 26 | 180 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/files.css | CSS | 29 | 18 | 7 | 54 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/index.css | CSS | 164 | 18 | 35 | 217 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/java-properties.css | CSS | 24 | 18 | 6 | 48 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/jquery-ui.min.css | CSS | 1 | 26 | 2 | 29 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/jquery-ui.structure.min.css | CSS | 1 | 22 | 2 | 25 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/logging.css | CSS | 303 | 19 | 63 | 385 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/login.css | CSS | 80 | 18 | 12 | 110 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/menu.css | CSS | 257 | 18 | 56 | 331 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/overview.css | CSS | 20 | 18 | 5 | 43 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/plugins.css | CSS | 172 | 18 | 31 | 221 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/query.css | CSS | 120 | 18 | 25 | 163 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/replication.css | CSS | 404 | 18 | 79 | 501 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/schema.css | CSS | 596 | 20 | 112 | 728 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/segments.css | CSS | 133 | 18 | 22 | 173 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/stream.css | CSS | 178 | 22 | 34 | 234 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/suggestions.css | CSS | 43 | 18 | 4 | 65 | +| solr-8.3.1/server/solr-webapp/webapp/css/angular/threads.css | CSS | 119 | 18 | 24 | 161 | +| solr-8.3.1/server/solr-webapp/webapp/img/solr.svg | XML | 39 | 0 | 1 | 40 | +| solr-8.3.1/server/solr-webapp/webapp/index.html | HTML | 203 | 16 | 38 | 257 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/app.js | JavaScript | 512 | 19 | 31 | 562 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/alias-overview.js | JavaScript | 8 | 16 | 4 | 28 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/analysis.js | JavaScript | 161 | 18 | 23 | 202 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cloud.js | JavaScript | 847 | 51 | 124 | 1,022 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cluster-suggestions.js | JavaScript | 43 | 18 | 2 | 63 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/collection-overview.js | JavaScript | 18 | 16 | 6 | 40 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/collections.js | JavaScript | 244 | 19 | 27 | 290 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/core-overview.js | JavaScript | 69 | 16 | 9 | 94 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cores.js | JavaScript | 151 | 16 | 14 | 181 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/dataimport.js | JavaScript | 234 | 25 | 44 | 303 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/documents.js | JavaScript | 107 | 18 | 13 | 138 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/files.js | JavaScript | 72 | 16 | 13 | 101 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/index.js | JavaScript | 61 | 23 | 14 | 98 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/java-properties.js | JavaScript | 27 | 16 | 3 | 46 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/logging.js | JavaScript | 112 | 35 | 12 | 159 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/login.js | JavaScript | 269 | 30 | 19 | 318 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/plugins.js | JavaScript | 130 | 19 | 19 | 168 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/query.js | JavaScript | 88 | 19 | 14 | 121 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/replication.js | JavaScript | 178 | 18 | 40 | 236 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/schema.js | JavaScript | 524 | 19 | 69 | 612 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/segments.js | JavaScript | 64 | 16 | 20 | 100 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/stream.js | JavaScript | 173 | 16 | 51 | 240 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/threads.js | JavaScript | 33 | 16 | 2 | 51 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/unknown.js | JavaScript | 14 | 22 | 2 | 38 | +| solr-8.3.1/server/solr-webapp/webapp/js/angular/services.js | JavaScript | 311 | 18 | 11 | 340 | +| solr-8.3.1/server/solr-webapp/webapp/libs/angular-chosen.js | JavaScript | 112 | 24 | 4 | 140 | +| solr-8.3.1/server/solr-webapp/webapp/libs/angular-cookies.js | JavaScript | 73 | 135 | 22 | 230 | +| solr-8.3.1/server/solr-webapp/webapp/libs/angular-cookies.min.js | JavaScript | 2 | 29 | 1 | 32 | +| solr-8.3.1/server/solr-webapp/webapp/libs/angular-resource.min.js | JavaScript | 7 | 29 | 1 | 37 | +| solr-8.3.1/server/solr-webapp/webapp/libs/angular-route.js | JavaScript | 316 | 636 | 67 | 1,019 | +| solr-8.3.1/server/solr-webapp/webapp/libs/angular-route.min.js | JavaScript | 9 | 29 | 1 | 39 | +| solr-8.3.1/server/solr-webapp/webapp/libs/angular-sanitize.js | JavaScript | 311 | 328 | 65 | 704 | +| solr-8.3.1/server/solr-webapp/webapp/libs/angular-sanitize.min.js | JavaScript | 10 | 29 | 1 | 40 | +| solr-8.3.1/server/solr-webapp/webapp/libs/angular-utf8-base64.js | JavaScript | 157 | 48 | 13 | 218 | +| solr-8.3.1/server/solr-webapp/webapp/libs/angular-utf8-base64.min.js | JavaScript | 1 | 42 | 3 | 46 | +| solr-8.3.1/server/solr-webapp/webapp/libs/angular.js | JavaScript | 10,845 | 13,211 | 2,038 | 26,094 | +| solr-8.3.1/server/solr-webapp/webapp/libs/angular.min.js | JavaScript | 73 | 201 | 0 | 274 | +| solr-8.3.1/server/solr-webapp/webapp/libs/chosen.jquery.js | JavaScript | 1,151 | 36 | 8 | 1,195 | +| solr-8.3.1/server/solr-webapp/webapp/libs/chosen.jquery.min.js | JavaScript | 2 | 29 | 0 | 31 | +| solr-8.3.1/server/solr-webapp/webapp/libs/d3.js | JavaScript | 7,720 | 519 | 1,135 | 9,374 | +| solr-8.3.1/server/solr-webapp/webapp/libs/highlight.js | JavaScript | 2 | 29 | 1 | 32 | +| solr-8.3.1/server/solr-webapp/webapp/libs/jquery-1.7.2.min.js | JavaScript | 3 | 26 | 2 | 31 | +| solr-8.3.1/server/solr-webapp/webapp/libs/jquery-2.1.3.min.js | JavaScript | 3 | 26 | 1 | 30 | +| solr-8.3.1/server/solr-webapp/webapp/libs/jquery-ui.min.js | JavaScript | 2 | 26 | 3 | 31 | +| solr-8.3.1/server/solr-webapp/webapp/libs/jquery.jstree.js | JavaScript | 3,222 | 228 | 85 | 3,535 | +| solr-8.3.1/server/solr-webapp/webapp/libs/ngtimeago.js | JavaScript | 66 | 23 | 13 | 102 | +| solr-8.3.1/server/solr-webapp/webapp/partials/alias_overview.html | HTML | 21 | 16 | 10 | 47 | +| solr-8.3.1/server/solr-webapp/webapp/partials/analysis.html | HTML | 87 | 16 | 26 | 129 | +| solr-8.3.1/server/solr-webapp/webapp/partials/cloud.html | HTML | 263 | 16 | 24 | 303 | +| solr-8.3.1/server/solr-webapp/webapp/partials/cluster_suggestions.html | HTML | 30 | 16 | 4 | 50 | +| solr-8.3.1/server/solr-webapp/webapp/partials/collection_overview.html | HTML | 48 | 16 | 22 | 86 | +| solr-8.3.1/server/solr-webapp/webapp/partials/collections.html | HTML | 301 | 16 | 79 | 396 | +| solr-8.3.1/server/solr-webapp/webapp/partials/core_overview.html | HTML | 125 | 16 | 66 | 207 | +| solr-8.3.1/server/solr-webapp/webapp/partials/cores.html | HTML | 142 | 16 | 67 | 225 | +| solr-8.3.1/server/solr-webapp/webapp/partials/dataimport.html | HTML | 142 | 16 | 52 | 210 | +| solr-8.3.1/server/solr-webapp/webapp/partials/documents.html | HTML | 83 | 20 | 9 | 112 | +| solr-8.3.1/server/solr-webapp/webapp/partials/files.html | HTML | 17 | 16 | 15 | 48 | +| solr-8.3.1/server/solr-webapp/webapp/partials/index.html | HTML | 135 | 42 | 85 | 262 | +| solr-8.3.1/server/solr-webapp/webapp/partials/java-properties.html | HTML | 10 | 16 | 2 | 28 | +| solr-8.3.1/server/solr-webapp/webapp/partials/logging-levels.html | HTML | 35 | 16 | 6 | 57 | +| solr-8.3.1/server/solr-webapp/webapp/partials/logging.html | HTML | 40 | 16 | 2 | 58 | +| solr-8.3.1/server/solr-webapp/webapp/partials/login.html | HTML | 134 | 16 | 11 | 161 | +| solr-8.3.1/server/solr-webapp/webapp/partials/plugins.html | HTML | 48 | 17 | 8 | 73 | +| solr-8.3.1/server/solr-webapp/webapp/partials/query.html | HTML | 270 | 16 | 84 | 370 | +| solr-8.3.1/server/solr-webapp/webapp/partials/replication.html | HTML | 153 | 16 | 71 | 240 | +| solr-8.3.1/server/solr-webapp/webapp/partials/schema.html | HTML | 336 | 16 | 104 | 456 | +| solr-8.3.1/server/solr-webapp/webapp/partials/segments.html | HTML | 70 | 16 | 14 | 100 | +| solr-8.3.1/server/solr-webapp/webapp/partials/stream.html | HTML | 40 | 16 | 9 | 65 | +| solr-8.3.1/server/solr-webapp/webapp/partials/threads.html | HTML | 36 | 16 | 14 | 66 | +| solr-8.3.1/server/solr-webapp/webapp/partials/unknown.html | HTML | 5 | 16 | 3 | 24 | +| solr-8.3.1/server/solr/configsets/_default/conf/params.json | JSON | 20 | 0 | 1 | 21 | +| solr-8.3.1/server/solr/configsets/_default/conf/solrconfig.xml | XML | 296 | 976 | 98 | 1,370 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_rest_managed.json | JSON | 1 | 0 | 1 | 2 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_schema_analysis_stopwords_english.json | JSON | 38 | 0 | 1 | 39 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_schema_analysis_synonyms_english.json | JSON | 11 | 0 | 1 | 12 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/kmeans-attributes.xml | XML | 13 | 6 | 1 | 20 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/lingo-attributes.xml | XML | 13 | 11 | 1 | 25 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/stc-attributes.xml | XML | 13 | 6 | 1 | 20 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/currency.xml | XML | 45 | 19 | 4 | 68 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/elevate.xml | XML | 3 | 37 | 3 | 43 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/params.json | JSON | 11 | 0 | 1 | 12 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml | XML | 410 | 1,097 | 124 | 1,631 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/update-script.js | JavaScript | 15 | 26 | 13 | 54 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.css | CSS | 34 | 9 | 6 | 49 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.js | JavaScript | 620 | 68 | 76 | 764 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/main.css | CSS | 185 | 0 | 47 | 232 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example.xsl | XSL | 98 | 20 | 15 | 133 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example_atom.xsl | XSL | 40 | 20 | 8 | 68 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example_rss.xsl | XSL | 41 | 20 | 6 | 67 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/luke.xsl | XSL | 301 | 19 | 18 | 338 | +| solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/updateXml.xsl | XSL | 35 | 25 | 11 | 71 | +| solr-8.3.1/server/solr/dash/conf/params.json | JSON | 20 | 0 | 0 | 20 | +| solr-8.3.1/server/solr/dash/conf/schema.xml | XML | 51 | 4 | 7 | 62 | +| solr-8.3.1/server/solr/dash/conf/solrconfig.xml | XML | 270 | 962 | 97 | 1,329 | +| solr-8.3.1/server/solr/dash/core.properties | Properties | 4 | 2 | 1 | 7 | +| solr-8.3.1/server/solr/solr.xml | XML | 21 | 25 | 11 | 57 | +| solr-8.3.1/server/solr/zoo.cfg | Properties | 3 | 25 | 4 | 32 | +| solr-8.3.1/server/tmp/start_3204295554151338130.properties | Properties | 9 | 2 | 1 | 12 | +| solr-8.3.1/server/tmp/start_5812170489311981381.properties | Properties | 9 | 2 | 1 | 12 | +| solr-8.3.1/server/tmp/start_6476327636763392575.properties | Properties | 9 | 2 | 1 | 12 | +| solr-8.3.1/server/tmp/start_7329004517204835686.properties | Properties | 9 | 2 | 1 | 12 | +| solr-8.3.1/server/tmp/start_9067375725008958788.properties | Properties | 9 | 2 | 1 | 12 | +| src/Utils.ts | TypeScript | 441 | 23 | 81 | 545 | +| src/client/ClientRecommender.scss | SCSS | 9 | 1 | 2 | 12 | +| src/client/ClientRecommender.tsx | TypeScript React | 320 | 61 | 44 | 425 | +| src/client/DocServer.ts | TypeScript | 279 | 136 | 65 | 480 | +| src/client/Network.ts | TypeScript | 34 | 0 | 5 | 39 | +| src/client/apis/GoogleAuthenticationManager.scss | SCSS | 16 | 0 | 3 | 19 | +| src/client/apis/GoogleAuthenticationManager.tsx | TypeScript React | 115 | 2 | 11 | 128 | +| src/client/apis/IBM_Recommender.ts | TypeScript | 0 | 33 | 7 | 40 | +| src/client/apis/google_docs/GoogleApiClientUtils.ts | TypeScript | 225 | 9 | 27 | 261 | +| src/client/apis/google_docs/GooglePhotosClientUtils.ts | TypeScript | 318 | 0 | 46 | 364 | +| src/client/apis/youtube/YoutubeBox.scss | SCSS | 105 | 5 | 16 | 126 | +| src/client/apis/youtube/YoutubeBox.tsx | TypeScript React | 274 | 48 | 40 | 362 | +| src/client/cognitive_services/CognitiveServices.ts | TypeScript | 342 | 10 | 57 | 409 | +| src/client/documents/DocumentTypes.ts | TypeScript | 32 | 2 | 3 | 37 | +| src/client/documents/Documents.ts | TypeScript | 807 | 141 | 87 | 1,035 | +| src/client/goldenLayout.d.ts | TypeScript | 2 | 0 | 1 | 3 | +| src/client/goldenLayout.js | JavaScript | 3,084 | 1,571 | 720 | 5,375 | +| src/client/util/DictationManager.ts | TypeScript | 312 | 25 | 51 | 388 | +| src/client/util/DocumentManager.ts | TypeScript | 207 | 16 | 21 | 244 | +| src/client/util/DragManager.ts | TypeScript | 504 | 11 | 35 | 550 | +| src/client/util/DropConverter.ts | TypeScript | 70 | 6 | 2 | 78 | +| src/client/util/History.ts | TypeScript | 166 | 13 | 27 | 206 | +| src/client/util/Import & Export/DirectoryImportBox.scss | SCSS | 6 | 0 | 0 | 6 | +| src/client/util/Import & Export/DirectoryImportBox.tsx | TypeScript React | 393 | 0 | 31 | 424 | +| src/client/util/Import & Export/ImageUtils.ts | TypeScript | 35 | 0 | 4 | 39 | +| src/client/util/Import & Export/ImportMetadataEntry.tsx | TypeScript React | 132 | 0 | 17 | 149 | +| src/client/util/InteractionUtils.tsx | TypeScript React | 122 | 112 | 21 | 255 | +| src/client/util/KeyCodes.ts | TypeScript | 100 | 36 | 0 | 136 | +| src/client/util/LinkManager.ts | TypeScript | 161 | 30 | 23 | 214 | +| src/client/util/ProsemirrorCopy/prompt.js | JavaScript | 128 | 30 | 22 | 180 | +| src/client/util/Scripting.ts | TypeScript | 247 | 15 | 30 | 292 | +| src/client/util/ScrollBox.tsx | TypeScript React | 19 | 0 | 2 | 21 | +| src/client/util/SearchUtil.ts | TypeScript | 123 | 4 | 18 | 145 | +| src/client/util/SelectionManager.ts | TypeScript | 69 | 5 | 15 | 89 | +| src/client/util/SerializationHelper.ts | TypeScript | 113 | 15 | 15 | 143 | +| src/client/util/SettingsManager.scss | SCSS | 111 | 0 | 25 | 136 | +| src/client/util/SettingsManager.tsx | TypeScript React | 114 | 0 | 17 | 131 | +| src/client/util/SharingManager.scss | SCSS | 122 | 0 | 18 | 140 | +| src/client/util/SharingManager.tsx | TypeScript React | 273 | 0 | 25 | 298 | +| src/client/util/Transform.ts | TypeScript | 76 | 0 | 23 | 99 | +| src/client/util/TypedEvent.ts | TypeScript | 29 | 3 | 8 | 40 | +| src/client/util/UndoManager.ts | TypeScript | 167 | 1 | 27 | 195 | +| src/client/util/clamp.js | JavaScript | 14 | 0 | 1 | 15 | +| src/client/util/convertToCSSPTValue.js | JavaScript | 31 | 4 | 8 | 43 | +| src/client/util/jsx-decl.d.ts | TypeScript | 1 | 0 | 1 | 2 | +| src/client/util/request-image-size.js | JavaScript | 51 | 10 | 14 | 75 | +| src/client/util/toCSSLineSpacing.js | JavaScript | 35 | 15 | 14 | 64 | +| src/client/views/AntimodeMenu.scss | SCSS | 35 | 1 | 6 | 42 | +| src/client/views/AntimodeMenu.tsx | TypeScript React | 121 | 14 | 22 | 157 | +| src/client/views/ContextMenu.scss | SCSS | 130 | 17 | 14 | 161 | +| src/client/views/ContextMenu.tsx | TypeScript React | 258 | 3 | 33 | 294 | +| src/client/views/ContextMenuItem.tsx | TypeScript React | 107 | 0 | 10 | 117 | +| src/client/views/DictationOverlay.tsx | TypeScript React | 64 | 0 | 7 | 71 | +| src/client/views/DocComponent.tsx | TypeScript React | 87 | 20 | 15 | 122 | +| src/client/views/DocumentButtonBar.scss | SCSS | 89 | 0 | 16 | 105 | +| src/client/views/DocumentButtonBar.tsx | TypeScript React | 284 | 4 | 27 | 315 | +| src/client/views/DocumentDecorations.scss | SCSS | 319 | 0 | 46 | 365 | +| src/client/views/DocumentDecorations.tsx | TypeScript React | 479 | 2 | 26 | 507 | +| src/client/views/EditableView.scss | SCSS | 22 | 0 | 3 | 25 | +| src/client/views/EditableView.tsx | TypeScript React | 149 | 19 | 16 | 184 | +| src/client/views/GestureOverlay.scss | SCSS | 56 | 0 | 8 | 64 | +| src/client/views/GestureOverlay.tsx | TypeScript React | 711 | 45 | 67 | 823 | +| src/client/views/GlobalKeyHandler.ts | TypeScript | 232 | 10 | 27 | 269 | +| src/client/views/InkingControl.scss | SCSS | 127 | 4 | 0 | 131 | +| src/client/views/InkingControl.tsx | TypeScript React | 78 | 3 | 10 | 91 | +| src/client/views/InkingStroke.scss | SCSS | 7 | 0 | 0 | 7 | +| src/client/views/InkingStroke.tsx | TypeScript React | 63 | 0 | 5 | 68 | +| src/client/views/KeyphraseQueryView.scss | SCSS | 7 | 0 | 1 | 8 | +| src/client/views/KeyphraseQueryView.tsx | TypeScript React | 30 | 2 | 3 | 35 | +| src/client/views/Main.scss | SCSS | 51 | 8 | 10 | 69 | +| src/client/views/Main.tsx | TypeScript React | 22 | 1 | 2 | 25 | +| src/client/views/MainView.scss | SCSS | 138 | 1 | 21 | 160 | +| src/client/views/MainView.tsx | TypeScript React | 553 | 13 | 36 | 602 | +| src/client/views/MainViewModal.scss | SCSS | 24 | 0 | 1 | 25 | +| src/client/views/MainViewModal.tsx | TypeScript React | 39 | 0 | 5 | 44 | +| src/client/views/MainViewNotifs.scss | SCSS | 17 | 0 | 1 | 18 | +| src/client/views/MainViewNotifs.tsx | TypeScript React | 29 | 0 | 4 | 33 | +| src/client/views/MetadataEntryMenu.scss | SCSS | 79 | 0 | 14 | 93 | +| src/client/views/MetadataEntryMenu.tsx | TypeScript React | 207 | 0 | 16 | 223 | +| src/client/views/OCRUtils.ts | TypeScript | 2 | 2 | 4 | 8 | +| src/client/views/OverlayView.scss | SCSS | 41 | 0 | 6 | 47 | +| src/client/views/OverlayView.tsx | TypeScript React | 194 | 4 | 19 | 217 | +| src/client/views/Palette.scss | SCSS | 26 | 0 | 4 | 30 | +| src/client/views/Palette.tsx | TypeScript React | 65 | 0 | 5 | 70 | +| src/client/views/PreviewCursor.scss | SCSS | 9 | 0 | 1 | 10 | +| src/client/views/PreviewCursor.tsx | TypeScript React | 115 | 8 | 9 | 132 | +| src/client/views/RecommendationsBox.scss | SCSS | 52 | 10 | 8 | 70 | +| src/client/views/RecommendationsBox.tsx | TypeScript React | 116 | 67 | 17 | 200 | +| src/client/views/ScriptBox.scss | SCSS | 15 | 0 | 2 | 17 | +| src/client/views/ScriptBox.tsx | TypeScript React | 112 | 2 | 12 | 126 | +| src/client/views/ScriptingRepl.scss | SCSS | 42 | 0 | 9 | 51 | +| src/client/views/ScriptingRepl.tsx | TypeScript React | 220 | 1 | 24 | 245 | +| src/client/views/SearchDocBox.tsx | TypeScript React | 359 | 17 | 55 | 431 | +| src/client/views/TemplateMenu.scss | SCSS | 46 | 0 | 5 | 51 | +| src/client/views/TemplateMenu.tsx | TypeScript React | 167 | 1 | 14 | 182 | +| src/client/views/Templates.tsx | TypeScript React | 34 | 0 | 8 | 42 | +| src/client/views/TouchScrollableMenu.tsx | TypeScript React | 52 | 0 | 7 | 59 | +| src/client/views/Touchable.tsx | TypeScript React | 172 | 28 | 39 | 239 | +| src/client/views/_nodeModuleOverrides.scss | SCSS | 9 | 9 | 4 | 22 | +| src/client/views/animationtimeline/Keyframe.scss | SCSS | 83 | 5 | 17 | 105 | +| src/client/views/animationtimeline/Keyframe.tsx | TypeScript React | 468 | 50 | 42 | 560 | +| src/client/views/animationtimeline/Timeline.scss | SCSS | 264 | 14 | 44 | 322 | +| src/client/views/animationtimeline/Timeline.tsx | TypeScript React | 467 | 97 | 58 | 622 | +| src/client/views/animationtimeline/TimelineMenu.scss | SCSS | 75 | 2 | 17 | 94 | +| src/client/views/animationtimeline/TimelineMenu.tsx | TypeScript React | 68 | 0 | 10 | 78 | +| src/client/views/animationtimeline/TimelineOverview.scss | SCSS | 89 | 6 | 12 | 107 | +| src/client/views/animationtimeline/TimelineOverview.tsx | TypeScript React | 155 | 0 | 27 | 182 | +| src/client/views/animationtimeline/Track.scss | SCSS | 13 | 0 | 2 | 15 | +| src/client/views/animationtimeline/Track.tsx | TypeScript React | 284 | 63 | 33 | 380 | +| src/client/views/collections/CollectionCarouselView.scss | SCSS | 37 | 0 | 1 | 38 | +| src/client/views/collections/CollectionCarouselView.tsx | TypeScript React | 110 | 1 | 10 | 121 | +| src/client/views/collections/CollectionDockingView.scss | SCSS | 391 | 7 | 60 | 458 | +| src/client/views/collections/CollectionDockingView.tsx | TypeScript React | 707 | 61 | 65 | 833 | +| src/client/views/collections/CollectionLinearView.scss | SCSS | 68 | 0 | 10 | 78 | +| src/client/views/collections/CollectionLinearView.tsx | TypeScript React | 125 | 1 | 9 | 135 | +| src/client/views/collections/CollectionMapView.scss | SCSS | 27 | 0 | 3 | 30 | +| src/client/views/collections/CollectionMapView.tsx | TypeScript React | 235 | 10 | 18 | 263 | +| src/client/views/collections/CollectionMasonryViewFieldRow.tsx | TypeScript React | 308 | 0 | 24 | 332 | +| src/client/views/collections/CollectionPileView.scss | SCSS | 8 | 0 | 1 | 9 | +| src/client/views/collections/CollectionPileView.tsx | TypeScript React | 112 | 5 | 11 | 128 | +| src/client/views/collections/CollectionSchemaCells.tsx | TypeScript React | 274 | 17 | 38 | 329 | +| src/client/views/collections/CollectionSchemaHeaders.tsx | TypeScript React | 318 | 5 | 41 | 364 | +| src/client/views/collections/CollectionSchemaMovableTableHOC.tsx | TypeScript React | 216 | 0 | 27 | 243 | +| src/client/views/collections/CollectionSchemaView.scss | SCSS | 406 | 4 | 88 | 498 | +| src/client/views/collections/CollectionSchemaView.tsx | TypeScript React | 651 | 20 | 82 | 753 | +| src/client/views/collections/CollectionStackingView.scss | SCSS | 353 | 1 | 50 | 404 | +| src/client/views/collections/CollectionStackingView.tsx | TypeScript React | 430 | 5 | 25 | 460 | +| src/client/views/collections/CollectionStackingViewFieldColumn.tsx | TypeScript React | 367 | 0 | 27 | 394 | +| src/client/views/collections/CollectionStaffView.scss | SCSS | 12 | 0 | 1 | 13 | +| src/client/views/collections/CollectionStaffView.tsx | TypeScript React | 46 | 0 | 7 | 53 | +| src/client/views/collections/CollectionSubView.tsx | TypeScript React | 390 | 7 | 25 | 422 | +| src/client/views/collections/CollectionTimeView.scss | SCSS | 80 | 0 | 13 | 93 | +| src/client/views/collections/CollectionTimeView.tsx | TypeScript React | 177 | 0 | 15 | 192 | +| src/client/views/collections/CollectionTreeView.scss | SCSS | 125 | 4 | 23 | 152 | +| src/client/views/collections/CollectionTreeView.tsx | TypeScript React | 801 | 19 | 40 | 860 | +| src/client/views/collections/CollectionView.scss | SCSS | 70 | 0 | 8 | 78 | +| src/client/views/collections/CollectionView.tsx | TypeScript React | 457 | 13 | 34 | 504 | +| src/client/views/collections/CollectionViewChromes.scss | SCSS | 308 | 4 | 45 | 357 | +| src/client/views/collections/CollectionViewChromes.tsx | TypeScript React | 393 | 67 | 47 | 507 | +| src/client/views/collections/KeyRestrictionRow.tsx | TypeScript React | 49 | 2 | 4 | 55 | +| src/client/views/collections/ParentDocumentSelector.scss | SCSS | 54 | 0 | 2 | 56 | +| src/client/views/collections/ParentDocumentSelector.tsx | TypeScript React | 120 | 0 | 11 | 131 | +| src/client/views/collections/collectionFreeForm/CollectionFreeFormLayoutEngines.tsx | TypeScript React | 422 | 10 | 27 | 459 | +| src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.scss | SCSS | 19 | 0 | 1 | 20 | +| src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.tsx | TypeScript React | 110 | 5 | 4 | 119 | +| src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.scss | SCSS | 11 | 0 | 0 | 11 | +| src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx | TypeScript React | 44 | 0 | 2 | 46 | +| src/client/views/collections/collectionFreeForm/CollectionFreeFormRemoteCursors.scss | SCSS | 20 | 1 | 3 | 24 | +| src/client/views/collections/collectionFreeForm/CollectionFreeFormRemoteCursors.tsx | TypeScript React | 67 | 0 | 12 | 79 | +| src/client/views/collections/collectionFreeForm/CollectionFreeFormView.scss | SCSS | 95 | 9 | 17 | 121 | +| src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx | TypeScript React | 1,186 | 47 | 97 | 1,330 | +| src/client/views/collections/collectionFreeForm/MarqueeOptionsMenu.tsx | TypeScript React | 52 | 0 | 5 | 57 | +| src/client/views/collections/collectionFreeForm/MarqueeView.scss | SCSS | 30 | 0 | 2 | 32 | +| src/client/views/collections/collectionFreeForm/MarqueeView.tsx | TypeScript React | 484 | 105 | 33 | 622 | +| src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.scss | SCSS | 28 | 0 | 6 | 34 | +| src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx | TypeScript React | 202 | 72 | 23 | 297 | +| src/client/views/collections/collectionMulticolumn/CollectionMultirowView.scss | SCSS | 29 | 0 | 6 | 35 | +| src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx | TypeScript React | 204 | 72 | 22 | 298 | +| src/client/views/collections/collectionMulticolumn/MulticolumnResizer.tsx | TypeScript React | 94 | 0 | 9 | 103 | +| src/client/views/collections/collectionMulticolumn/MulticolumnWidthLabel.tsx | TypeScript React | 51 | 0 | 5 | 56 | +| src/client/views/collections/collectionMulticolumn/MultirowHeightLabel.tsx | TypeScript React | 51 | 0 | 5 | 56 | +| src/client/views/collections/collectionMulticolumn/MultirowResizer.tsx | TypeScript React | 92 | 0 | 9 | 101 | +| src/client/views/globalCssVariables.scss | SCSS | 30 | 10 | 3 | 43 | +| src/client/views/globalCssVariables.scss.d.ts | TypeScript | 9 | 0 | 2 | 11 | +| src/client/views/linking/LinkEditor.scss | SCSS | 124 | 1 | 25 | 150 | +| src/client/views/linking/LinkEditor.tsx | TypeScript React | 252 | 7 | 50 | 309 | +| src/client/views/linking/LinkMenu.scss | SCSS | 40 | 0 | 13 | 53 | +| src/client/views/linking/LinkMenu.tsx | TypeScript React | 65 | 1 | 10 | 76 | +| src/client/views/linking/LinkMenuGroup.tsx | TypeScript React | 84 | 0 | 10 | 94 | +| src/client/views/linking/LinkMenuItem.scss | SCSS | 75 | 1 | 11 | 87 | +| src/client/views/linking/LinkMenuItem.tsx | TypeScript React | 107 | 0 | 19 | 126 | +| src/client/views/nodes/AudioBox.scss | SCSS | 146 | 0 | 0 | 146 | +| src/client/views/nodes/AudioBox.tsx | TypeScript React | 261 | 2 | 24 | 287 | +| src/client/views/nodes/CollectionFreeFormDocumentView.scss | SCSS | 8 | 0 | 0 | 8 | +| src/client/views/nodes/CollectionFreeFormDocumentView.tsx | TypeScript React | 124 | 0 | 7 | 131 | +| src/client/views/nodes/ColorBox.scss | SCSS | 22 | 0 | 1 | 23 | +| src/client/views/nodes/ColorBox.tsx | TypeScript React | 28 | 0 | 4 | 32 | +| src/client/views/nodes/ContentFittingDocumentView.scss | SCSS | 20 | 0 | 4 | 24 | +| src/client/views/nodes/ContentFittingDocumentView.tsx | TypeScript React | 117 | 0 | 7 | 124 | +| src/client/views/nodes/DocumentBox.scss | SCSS | 14 | 0 | 0 | 14 | +| src/client/views/nodes/DocumentBox.tsx | TypeScript React | 154 | 0 | 4 | 158 | +| src/client/views/nodes/DocumentContentsView.tsx | TypeScript React | 183 | 10 | 17 | 210 | +| src/client/views/nodes/DocumentIcon.tsx | TypeScript React | 60 | 0 | 5 | 65 | +| src/client/views/nodes/DocumentView.scss | SCSS | 110 | 1 | 15 | 126 | +| src/client/views/nodes/DocumentView.tsx | TypeScript React | 1,041 | 54 | 94 | 1,189 | +| src/client/views/nodes/FaceRectangle.tsx | TypeScript React | 25 | 0 | 4 | 29 | +| src/client/views/nodes/FaceRectangles.tsx | TypeScript React | 41 | 0 | 5 | 46 | +| src/client/views/nodes/FieldTextBox.scss | SCSS | 12 | 0 | 3 | 15 | +| src/client/views/nodes/FieldView.tsx | TypeScript React | 89 | 43 | 4 | 136 | +| src/client/views/nodes/FontIconBox.scss | SCSS | 25 | 0 | 2 | 27 | +| src/client/views/nodes/FontIconBox.tsx | TypeScript React | 58 | 0 | 5 | 63 | +| src/client/views/nodes/ImageBox.scss | SCSS | 135 | 0 | 17 | 152 | +| src/client/views/nodes/ImageBox.tsx | TypeScript React | 430 | 10 | 35 | 475 | +| src/client/views/nodes/KeyValueBox.scss | SCSS | 120 | 0 | 3 | 123 | +| src/client/views/nodes/KeyValueBox.tsx | TypeScript React | 244 | 1 | 26 | 271 | +| src/client/views/nodes/KeyValuePair.scss | SCSS | 55 | 1 | 4 | 60 | +| src/client/views/nodes/KeyValuePair.tsx | TypeScript React | 125 | 2 | 8 | 135 | +| src/client/views/nodes/LabelBox.scss | SCSS | 31 | 0 | 4 | 35 | +| src/client/views/nodes/LabelBox.tsx | TypeScript React | 86 | 1 | 9 | 96 | +| src/client/views/nodes/LinkAnchorBox.scss | SCSS | 27 | 0 | 2 | 29 | +| src/client/views/nodes/LinkAnchorBox.tsx | TypeScript React | 141 | 0 | 9 | 150 | +| src/client/views/nodes/LinkBox.scss | SCSS | 3 | 0 | 0 | 3 | +| src/client/views/nodes/LinkBox.tsx | TypeScript React | 33 | 0 | 3 | 36 | +| src/client/views/nodes/PDFBox.scss | SCSS | 200 | 0 | 19 | 219 | +| src/client/views/nodes/PDFBox.tsx | TypeScript React | 246 | 0 | 19 | 265 | +| src/client/views/nodes/PresBox.scss | SCSS | 52 | 0 | 1 | 53 | +| src/client/views/nodes/PresBox.tsx | TypeScript React | 268 | 31 | 32 | 331 | +| src/client/views/nodes/QueryBox.scss | SCSS | 5 | 0 | 0 | 5 | +| src/client/views/nodes/QueryBox.tsx | TypeScript React | 37 | 0 | 4 | 41 | +| src/client/views/nodes/RadialMenu.scss | SCSS | 60 | 3 | 7 | 70 | +| src/client/views/nodes/RadialMenu.tsx | TypeScript React | 174 | 26 | 36 | 236 | +| src/client/views/nodes/RadialMenuItem.tsx | TypeScript React | 101 | 0 | 16 | 117 | +| src/client/views/nodes/ScreenshotBox.scss | SCSS | 40 | 6 | 5 | 51 | +| src/client/views/nodes/ScreenshotBox.tsx | TypeScript React | 174 | 2 | 18 | 194 | +| src/client/views/nodes/ScriptingBox.scss | SCSS | 33 | 0 | 3 | 36 | +| src/client/views/nodes/ScriptingBox.tsx | TypeScript React | 87 | 0 | 12 | 99 | +| src/client/views/nodes/SliderBox-components.tsx | TypeScript React | 220 | 12 | 25 | 257 | +| src/client/views/nodes/SliderBox-tooltip.css | CSS | 30 | 0 | 3 | 33 | +| src/client/views/nodes/SliderBox.scss | SCSS | 7 | 0 | 0 | 7 | +| src/client/views/nodes/SliderBox.tsx | TypeScript React | 117 | 0 | 8 | 125 | +| src/client/views/nodes/VideoBox.scss | SCSS | 65 | 3 | 6 | 74 | +| src/client/views/nodes/VideoBox.tsx | TypeScript React | 343 | 2 | 34 | 379 | +| src/client/views/nodes/WebBox.scss | SCSS | 109 | 0 | 18 | 127 | +| src/client/views/nodes/WebBox.tsx | TypeScript React | 345 | 15 | 35 | 395 | +| src/client/views/nodes/formattedText/DashDocCommentView.tsx | TypeScript React | 82 | 0 | 13 | 95 | +| src/client/views/nodes/formattedText/DashDocView.tsx | TypeScript React | 223 | 9 | 37 | 269 | +| src/client/views/nodes/formattedText/DashFieldView.scss | SCSS | 34 | 0 | 2 | 36 | +| src/client/views/nodes/formattedText/DashFieldView.tsx | TypeScript React | 178 | 13 | 20 | 211 | +| src/client/views/nodes/formattedText/FootnoteView.tsx | TypeScript React | 131 | 13 | 19 | 163 | +| src/client/views/nodes/formattedText/FormattedTextBox.scss | SCSS | 220 | 11 | 34 | 265 | +| src/client/views/nodes/formattedText/FormattedTextBox.tsx | TypeScript React | 1,169 | 68 | 93 | 1,330 | +| src/client/views/nodes/formattedText/FormattedTextBoxComment.scss | SCSS | 33 | 0 | 0 | 33 | +| src/client/views/nodes/formattedText/FormattedTextBoxComment.tsx | TypeScript React | 218 | 11 | 8 | 237 | +| src/client/views/nodes/formattedText/ImageResizeView.tsx | TypeScript React | 113 | 0 | 25 | 138 | +| src/client/views/nodes/formattedText/ParagraphNodeSpec.ts | TypeScript | 108 | 9 | 26 | 143 | +| src/client/views/nodes/formattedText/ProsemirrorExampleTransfer.ts | TypeScript | 231 | 0 | 11 | 242 | +| src/client/views/nodes/formattedText/RichTextMenu.scss | SCSS | 100 | 2 | 19 | 121 | +| src/client/views/nodes/formattedText/RichTextMenu.tsx | TypeScript React | 754 | 12 | 109 | 875 | +| src/client/views/nodes/formattedText/RichTextRules.ts | TypeScript | 308 | 7 | 5 | 320 | +| src/client/views/nodes/formattedText/RichTextSchema.tsx | TypeScript React | 465 | 33 | 39 | 537 | +| src/client/views/nodes/formattedText/SummaryView.tsx | TypeScript React | 67 | 0 | 14 | 81 | +| src/client/views/nodes/formattedText/TooltipTextMenu.scss | SCSS | 306 | 6 | 61 | 373 | +| src/client/views/nodes/formattedText/marks_rts.ts | TypeScript | 259 | 15 | 23 | 297 | +| src/client/views/nodes/formattedText/nodes_rts.ts | TypeScript | 224 | 21 | 19 | 264 | +| src/client/views/nodes/formattedText/prosemirrorPatches.js | JavaScript | 118 | 12 | 9 | 139 | +| src/client/views/nodes/formattedText/schema_rts.ts | TypeScript | 12 | 8 | 6 | 26 | +| src/client/views/pdf/Annotation.scss | SCSS | 6 | 0 | 0 | 6 | +| src/client/views/pdf/Annotation.tsx | TypeScript React | 114 | 0 | 16 | 130 | +| src/client/views/pdf/PDFMenu.scss | SCSS | 6 | 0 | 0 | 6 | +| src/client/views/pdf/PDFMenu.tsx | TypeScript React | 102 | 0 | 21 | 123 | +| src/client/views/pdf/PDFViewer.scss | SCSS | 74 | 4 | 10 | 88 | +| src/client/views/pdf/PDFViewer.tsx | TypeScript React | 662 | 23 | 46 | 731 | +| src/client/views/presentationview/PresElementBox.scss | SCSS | 93 | 0 | 10 | 103 | +| src/client/views/presentationview/PresElementBox.tsx | TypeScript React | 179 | 31 | 14 | 224 | +| src/client/views/search/CheckBox.scss | SCSS | 50 | 1 | 8 | 59 | +| src/client/views/search/CheckBox.tsx | TypeScript React | 42 | 74 | 15 | 131 | +| src/client/views/search/CollectionFilters.scss | SCSS | 17 | 0 | 3 | 20 | +| src/client/views/search/CollectionFilters.tsx | TypeScript React | 69 | 0 | 14 | 83 | +| src/client/views/search/FieldFilters.scss | SCSS | 10 | 1 | 1 | 12 | +| src/client/views/search/FieldFilters.tsx | TypeScript React | 34 | 0 | 7 | 41 | +| src/client/views/search/FilterBox.scss | SCSS | 153 | 0 | 25 | 178 | +| src/client/views/search/FilterBox.tsx | TypeScript React | 354 | 24 | 54 | 432 | +| src/client/views/search/IconBar.scss | SCSS | 9 | 0 | 1 | 10 | +| src/client/views/search/IconBar.tsx | TypeScript React | 69 | 1 | 17 | 87 | +| src/client/views/search/IconButton.scss | SCSS | 46 | 1 | 6 | 53 | +| src/client/views/search/IconButton.tsx | TypeScript React | 170 | 2 | 19 | 191 | +| src/client/views/search/NaviconButton.scss | SCSS | 58 | 0 | 11 | 69 | +| src/client/views/search/NaviconButton.tsx | TypeScript React | 32 | 0 | 5 | 37 | +| src/client/views/search/SearchBox.scss | SCSS | 203 | 82 | 51 | 336 | +| src/client/views/search/SearchBox.tsx | TypeScript React | 530 | 47 | 94 | 671 | +| src/client/views/search/SearchItem.scss | SCSS | 138 | 0 | 25 | 163 | +| src/client/views/search/SearchItem.tsx | TypeScript React | 272 | 2 | 29 | 303 | +| src/client/views/search/SelectorContextMenu.scss | SCSS | 12 | 1 | 3 | 16 | +| src/client/views/search/ToggleBar.scss | SCSS | 35 | 2 | 4 | 41 | +| src/client/views/search/ToggleBar.tsx | TypeScript React | 77 | 0 | 9 | 86 | +| src/client/views/webcam/DashWebRTCVideo.scss | SCSS | 70 | 4 | 9 | 83 | +| src/client/views/webcam/DashWebRTCVideo.tsx | TypeScript React | 67 | 6 | 16 | 89 | +| src/client/views/webcam/WebCamLogic.js | JavaScript | 234 | 7 | 51 | 292 | +| src/debug/Repl.tsx | TypeScript React | 59 | 0 | 7 | 66 | +| src/debug/Test.tsx | TypeScript React | 12 | 0 | 2 | 14 | +| src/debug/Viewer.tsx | TypeScript React | 173 | 0 | 19 | 192 | +| src/extensions/ArrayExtensions.ts | TypeScript | 26 | 5 | 6 | 37 | +| src/extensions/General/Extensions.ts | TypeScript | 7 | 0 | 2 | 9 | +| src/extensions/General/ExtensionsTypings.ts | TypeScript | 7 | 0 | 1 | 8 | +| src/extensions/StringExtensions.ts | TypeScript | 13 | 0 | 4 | 17 | +| src/mobile/ImageUpload.scss | SCSS | 30 | 0 | 4 | 34 | +| src/mobile/ImageUpload.tsx | TypeScript React | 78 | 41 | 12 | 131 | +| src/mobile/InkControls.tsx | TypeScript React | 0 | 0 | 1 | 1 | +| src/mobile/MobileInkOverlay.scss | SCSS | 33 | 1 | 5 | 39 | +| src/mobile/MobileInkOverlay.tsx | TypeScript React | 162 | 3 | 26 | 191 | +| src/mobile/MobileInterface.scss | SCSS | 17 | 0 | 2 | 19 | +| src/mobile/MobileInterface.tsx | TypeScript React | 297 | 15 | 32 | 344 | +| src/new_fields/CursorField.ts | TypeScript | 54 | 0 | 12 | 66 | +| src/new_fields/DateField.ts | TypeScript | 30 | 0 | 7 | 37 | +| src/new_fields/Doc.ts | TypeScript | 897 | 85 | 76 | 1,058 | +| src/new_fields/FieldSymbols.ts | TypeScript | 11 | 0 | 2 | 13 | +| src/new_fields/HtmlField.ts | TypeScript | 22 | 0 | 5 | 27 | +| src/new_fields/IconField.ts | TypeScript | 22 | 0 | 5 | 27 | +| src/new_fields/InkField.ts | TypeScript | 41 | 0 | 10 | 51 | +| src/new_fields/List.ts | TypeScript | 244 | 38 | 20 | 302 | +| src/new_fields/ListSpec.ts | TypeScript | 0 | 0 | 1 | 1 | +| src/new_fields/ObjectField.ts | TypeScript | 16 | 0 | 4 | 20 | +| src/new_fields/PresField.ts | TypeScript | 3 | 1 | 2 | 6 | +| src/new_fields/Proxy.ts | TypeScript | 95 | 2 | 14 | 111 | +| src/new_fields/RefField.ts | TypeScript | 17 | 0 | 5 | 22 | +| src/new_fields/RichTextField.ts | TypeScript | 33 | 0 | 8 | 41 | +| src/new_fields/RichTextUtils.ts | TypeScript | 455 | 8 | 56 | 519 | +| src/new_fields/Schema.ts | TypeScript | 107 | 5 | 8 | 120 | +| src/new_fields/SchemaHeaderField.ts | TypeScript | 104 | 4 | 14 | 122 | +| src/new_fields/ScriptField.ts | TypeScript | 137 | 21 | 19 | 177 | +| src/new_fields/Types.ts | TypeScript | 86 | 5 | 17 | 108 | +| src/new_fields/URLField.ts | TypeScript | 45 | 0 | 9 | 54 | +| src/new_fields/documentSchemas.ts | TypeScript | 87 | 0 | 6 | 93 | +| src/new_fields/util.ts | TypeScript | 176 | 3 | 15 | 194 | +| src/pen-gestures/GestureUtils.ts | TypeScript | 41 | 0 | 5 | 46 | +| src/pen-gestures/ndollar.ts | TypeScript | 356 | 172 | 22 | 550 | +| src/scraping/acm/.gitignore | Ignore | 2 | 0 | 0 | 2 | +| src/scraping/acm/debug.log | log | 38 | 0 | 1 | 39 | +| src/scraping/acm/index.js | JavaScript | 82 | 185 | 13 | 280 | +| src/scraping/acm/package.json | JSON | 17 | 0 | 1 | 18 | +| src/scraping/buxton/.idea/buxton.iml | XML | 8 | 0 | 0 | 8 | +| src/scraping/buxton/.idea/inspectionProfiles/profiles_settings.xml | XML | 6 | 0 | 0 | 6 | +| src/scraping/buxton/.idea/misc.xml | XML | 4 | 0 | 0 | 4 | +| src/scraping/buxton/.idea/modules.xml | XML | 8 | 0 | 0 | 8 | +| src/scraping/buxton/.idea/vcs.xml | XML | 6 | 0 | 0 | 6 | +| src/scraping/buxton/.idea/workspace.xml | XML | 173 | 0 | 0 | 173 | +| src/scraping/buxton/final/BuxtonImporter.ts | TypeScript | 228 | 142 | 26 | 396 | +| src/scraping/buxton/jsonifier.py | Python | 183 | 1 | 48 | 232 | +| src/scraping/buxton/narratives.py | Python | 11 | 19 | 9 | 39 | +| src/scraping/buxton/narratives/chord_keyboards.json | JSON | 39 | 0 | 0 | 39 | +| src/scraping/buxton/scraper.py | Python | 350 | 5 | 78 | 433 | +| src/server/ActionUtilities.ts | TypeScript | 136 | 1 | 23 | 160 | +| src/server/ApiManagers/ApiManager.ts | TypeScript | 8 | 0 | 3 | 11 | +| src/server/ApiManagers/DeleteManager.ts | TypeScript | 71 | 0 | 11 | 82 | +| src/server/ApiManagers/DownloadManager.ts | TypeScript | 173 | 80 | 16 | 269 | +| src/server/ApiManagers/GeneralGoogleManager.ts | TypeScript | 53 | 0 | 8 | 61 | +| src/server/ApiManagers/GooglePhotosManager.ts | TypeScript | 190 | 119 | 22 | 331 | +| src/server/ApiManagers/PDFManager.ts | TypeScript | 103 | 0 | 12 | 115 | +| src/server/ApiManagers/SearchManager.ts | TypeScript | 200 | 0 | 15 | 215 | +| src/server/ApiManagers/SessionManager.ts | TypeScript | 56 | 0 | 11 | 67 | +| src/server/ApiManagers/UploadManager.ts | TypeScript | 226 | 1 | 20 | 247 | +| src/server/ApiManagers/UserManager.ts | TypeScript | 101 | 4 | 21 | 126 | +| src/server/ApiManagers/UtilManager.ts | TypeScript | 42 | 22 | 10 | 74 | +| src/server/Client.ts | TypeScript | 8 | 0 | 3 | 11 | +| src/server/DashSession/DashSessionAgent.ts | TypeScript | 155 | 52 | 23 | 230 | +| src/server/DashSession/Session/agents/applied_session_agent.ts | TypeScript | 47 | 2 | 9 | 58 | +| src/server/DashSession/Session/agents/monitor.ts | TypeScript | 213 | 59 | 26 | 298 | +| src/server/DashSession/Session/agents/process_message_router.ts | TypeScript | 24 | 10 | 7 | 41 | +| src/server/DashSession/Session/agents/promisified_ipc_manager.ts | TypeScript | 106 | 52 | 15 | 173 | +| src/server/DashSession/Session/agents/server_worker.ts | TypeScript | 99 | 46 | 15 | 160 | +| src/server/DashSession/Session/utilities/repl.ts | TypeScript | 116 | 0 | 12 | 128 | +| src/server/DashSession/Session/utilities/session_config.ts | TypeScript | 119 | 0 | 10 | 129 | +| src/server/DashSession/Session/utilities/utilities.ts | TypeScript | 24 | 8 | 5 | 37 | +| src/server/DashUploadUtils.ts | TypeScript | 285 | 52 | 30 | 367 | +| src/server/GarbageCollector.ts | TypeScript | 138 | 2 | 11 | 151 | +| src/server/IDatabase.ts | TypeScript | 17 | 0 | 8 | 25 | +| src/server/MemoryDatabase.ts | TypeScript | 87 | 0 | 14 | 101 | +| src/server/Message.ts | TypeScript | 86 | 0 | 18 | 104 | +| src/server/PdfTypes.ts | TypeScript | 19 | 0 | 2 | 21 | +| src/server/ProcessFactory.ts | TypeScript | 34 | 0 | 10 | 44 | +| src/server/Recommender.ts | TypeScript | 0 | 120 | 18 | 138 | +| src/server/RouteManager.ts | TypeScript | 187 | 4 | 19 | 210 | +| src/server/RouteSubscriber.ts | TypeScript | 21 | 0 | 5 | 26 | +| src/server/Search.ts | TypeScript | 71 | 2 | 8 | 81 | +| src/server/SharedMediaTypes.ts | TypeScript | 41 | 0 | 10 | 51 | +| src/server/Websocket/Websocket.ts | TypeScript | 263 | 5 | 46 | 314 | +| src/server/apis/google/GoogleApiServerUtils.ts | TypeScript | 172 | 168 | 25 | 365 | +| src/server/apis/google/SharedTypes.ts | TypeScript | 19 | 0 | 2 | 21 | +| src/server/apis/youtube/youtubeApiSample.d.ts | TypeScript | 2 | 0 | 0 | 2 | +| src/server/apis/youtube/youtubeApiSample.js | JavaScript | 135 | 30 | 14 | 179 | +| src/server/authentication/config/passport.ts | TypeScript | 23 | 2 | 4 | 29 | +| src/server/authentication/controllers/user_controller.ts | TypeScript | 218 | 25 | 25 | 268 | +| src/server/authentication/models/current_user_utils.ts | TypeScript | 586 | 30 | 57 | 673 | +| src/server/authentication/models/user_model.ts | TypeScript | 63 | 9 | 14 | 86 | +| src/server/credentials/CredentialsLoader.ts | TypeScript | 24 | 0 | 6 | 30 | +| src/server/credentials/google_project_credentials.json | JSON | 11 | 0 | 0 | 11 | +| src/server/database.ts | TypeScript | 312 | 0 | 38 | 350 | +| src/server/downsize.ts | TypeScript | 34 | 5 | 1 | 40 | +| src/server/index.ts | TypeScript | 107 | 36 | 16 | 159 | +| src/server/remapUrl.ts | TypeScript | 53 | 4 | 6 | 63 | +| src/server/server_Initialization.ts | TypeScript | 138 | 6 | 24 | 168 | +| src/server/slides.json | JSON | 10,820 | 0 | 0 | 10,820 | +| src/server/updateProtos.ts | TypeScript | 11 | 0 | 3 | 14 | +| src/typings/index.d.ts | TypeScript | 219 | 72 | 38 | 329 | +| test/test.ts | TypeScript | 141 | 0 | 20 | 161 | +| tsconfig.json | JSON | 21 | 5 | 0 | 26 | +| tslint.json | JSON | 30 | 32 | 1 | 63 | +| views/forgot.pug | Pug | 19 | 1 | 2 | 22 | +| views/layout.pug | Pug | 13 | 0 | 1 | 14 | +| views/login.pug | Pug | 24 | 0 | 2 | 26 | +| views/reset.pug | Pug | 20 | 0 | 2 | 22 | +| views/signup.pug | Pug | 25 | 0 | 2 | 27 | +| views/stylesheets/authentication.css | CSS | 185 | 4 | 34 | 223 | +| views/user_activity.pug | Pug | 18 | 0 | 1 | 19 | +| webpack.config.js | JavaScript | 116 | 0 | 5 | 121 | +| Total | | 224,911 | 32,987 | 15,880 | 273,778 | ++-------------------------------------------------------------------------------------------------------------+------------------+------------+------------+------------+------------+ \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index bc8ca01f5..959fc41ef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2723,6 +2723,43 @@ } } }, + "canvas": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.6.1.tgz", + "integrity": "sha512-S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA==", + "requires": { + "nan": "^2.14.0", + "node-pre-gyp": "^0.11.0", + "simple-get": "^3.0.3" + }, + "dependencies": { + "node-pre-gyp": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", + "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, "capture-stack-trace": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", @@ -2848,8 +2885,7 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true, - "optional": true + "bundled": true }, "aproba": { "version": "1.2.0", @@ -2867,13 +2903,11 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true, - "optional": true + "bundled": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2886,18 +2920,15 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true, - "optional": true + "bundled": true }, "concat-map": { "version": "0.0.1", - "bundled": true, - "optional": true + "bundled": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, - "optional": true + "bundled": true }, "core-util-is": { "version": "1.0.2", @@ -3000,8 +3031,7 @@ }, "inherits": { "version": "2.0.4", - "bundled": true, - "optional": true + "bundled": true }, "ini": { "version": "1.3.5", @@ -3011,7 +3041,6 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -3024,20 +3053,17 @@ "minimatch": { "version": "3.0.4", "bundled": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "1.2.5", - "bundled": true, - "optional": true + "bundled": true }, "minipass": { "version": "2.9.0", "bundled": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -3054,7 +3080,6 @@ "mkdirp": { "version": "0.5.3", "bundled": true, - "optional": true, "requires": { "minimist": "^1.2.5" } @@ -3110,8 +3135,7 @@ }, "npm-normalize-package-bin": { "version": "1.0.1", - "bundled": true, - "optional": true + "bundled": true }, "npm-packlist": { "version": "1.4.8", @@ -3136,8 +3160,7 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, - "optional": true + "bundled": true }, "object-assign": { "version": "4.1.1", @@ -3147,7 +3170,6 @@ "once": { "version": "1.4.0", "bundled": true, - "optional": true, "requires": { "wrappy": "1" } @@ -3216,8 +3238,7 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true, - "optional": true + "bundled": true }, "safer-buffer": { "version": "2.1.2", @@ -3247,7 +3268,6 @@ "string-width": { "version": "1.0.2", "bundled": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -3265,7 +3285,6 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -3304,13 +3323,11 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, - "optional": true + "bundled": true }, "yallist": { "version": "3.1.1", - "bundled": true, - "optional": true + "bundled": true } } } diff --git a/src/Utils.ts b/src/Utils.ts index ad12c68a1..23b59ac9d 100644 --- a/src/Utils.ts +++ b/src/Utils.ts @@ -4,7 +4,7 @@ import { Socket, Room } from 'socket.io'; import { Message } from './server/Message'; export namespace Utils { - export const DRAG_THRESHOLD = 4; + export let DRAG_THRESHOLD = 4; export function GenerateGuid(): string { return v4(); @@ -512,7 +512,7 @@ export function setupMoveUpEvents( (target as any)._downY = (target as any)._lastY = e.clientY; const _moveEvent = (e: PointerEvent): void => { - if (Math.abs(e.clientX - (target as any)._downX) > 4 || Math.abs(e.clientY - (target as any)._downY) > 4) { + if (Math.abs(e.clientX - (target as any)._downX) > Utils.DRAG_THRESHOLD || Math.abs(e.clientY - (target as any)._downY) > Utils.DRAG_THRESHOLD) { if (moveEvent(e, [(target as any)._downX, (target as any)._downY], [e.clientX - (target as any)._lastX, e.clientY - (target as any)._lastY])) { document.removeEventListener("pointermove", _moveEvent); diff --git a/src/client/util/DragManager.ts b/src/client/util/DragManager.ts index c03d9ea1b..c48611eff 100644 --- a/src/client/util/DragManager.ts +++ b/src/client/util/DragManager.ts @@ -1,5 +1,5 @@ import { Doc, Field, DocListCast } from "../../new_fields/Doc"; -import { Cast, ScriptCast, StrCast } from "../../new_fields/Types"; +import { Cast, ScriptCast, StrCast, NumCast } from "../../new_fields/Types"; import { emptyFunction } from "../../Utils"; import { CollectionDockingView } from "../views/collections/CollectionDockingView"; import * as globalCssVariables from "../views/globalCssVariables.scss"; @@ -305,33 +305,20 @@ export namespace DragManager { } export function snapDrag(e: PointerEvent, xFromLeft: number, yFromTop: number, xFromRight: number, yFromBottom: number) { - let thisX = e.pageX; - let thisY = e.pageY; - const currLeft = e.pageX - xFromLeft; - const currTop = e.pageY - yFromTop; - const currRight = e.pageX + xFromRight; - const currBottom = e.pageY + yFromBottom; - const closestLeft = vertSnapLines.length ? vertSnapLines.reduce((prev, curr) => Math.abs(prev - currLeft) > Math.abs(curr - currLeft) ? curr : prev) : currLeft; - const closestTop = horizSnapLines.length ? horizSnapLines.reduce((prev, curr) => Math.abs(prev - currTop) > Math.abs(curr - currTop) ? curr : prev) : currTop; - const closestRight = vertSnapLines.length ? vertSnapLines.reduce((prev, curr) => Math.abs(prev - currRight) > Math.abs(curr - currRight) ? curr : prev) : currRight; - const closestBottom = horizSnapLines.length ? horizSnapLines.reduce((prev, curr) => Math.abs(prev - currBottom) > Math.abs(curr - currBottom) ? curr : prev) : currBottom; - const distFromClosestLeft = Math.abs(e.pageX - xFromLeft - closestLeft); - const distFromClosestTop = Math.abs(e.pageY - yFromTop - closestTop); - const distFromClosestRight = Math.abs(e.pageX + xFromRight - closestRight); - const distFromClosestBottom = Math.abs(e.pageY + yFromBottom - closestBottom); - if (distFromClosestLeft < 10 && distFromClosestLeft < distFromClosestRight) { - thisX = closestLeft + xFromLeft; - } - else if (distFromClosestRight < 10) { - thisX = closestRight - xFromRight; - } - if (distFromClosestTop < 10 && distFromClosestTop < distFromClosestBottom) { - thisY = closestTop + yFromTop; - } - else if (distFromClosestBottom < 10) { - thisY = closestBottom - yFromBottom; + const snapThreshold = NumCast(Doc.UserDoc()["constants-snapThreshold"], 10); + const snapVal = (pts: number[], drag: number, snapLines: number[]) => { + if (snapLines.length) { + const offs = [pts[0], (pts[0] - pts[1]) / 2, -pts[1]]; // offsets from drag pt + const rangePts = [drag - offs[0], drag - offs[1], drag - offs[2]]; // left, mid, right or top, mid, bottom pts to try to snap to snaplines + const closestPts = rangePts.map(pt => snapLines.reduce((nearest, curr) => Math.abs(nearest - pt) > Math.abs(curr - pt) ? curr : nearest)); + const closestDists = rangePts.map((pt, i) => Math.abs(pt - closestPts[i])); + const minIndex = closestDists[0] < closestDists[1] && closestDists[0] < closestDists[2] ? 0 : closestDists[1] < closestDists[2] ? 1 : 2; + return closestDists[minIndex] < snapThreshold ? closestPts[minIndex] + offs[minIndex] : drag; + } + return drag; } - return { thisX, thisY }; + + return { thisX: snapVal([xFromLeft, xFromRight], e.pageX, vertSnapLines), thisY: snapVal([yFromTop, yFromBottom], e.pageY, horizSnapLines) }; } export let docsBeingDragged: Doc[] = []; function StartDrag(eles: HTMLElement[], dragData: { [id: string]: any }, downX: number, downY: number, options?: DragOptions, finishDrag?: (dropData: DragCompleteEvent) => void) { diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx index e5a8ebcb5..72dfdf75c 100644 --- a/src/client/views/MainView.tsx +++ b/src/client/views/MainView.tsx @@ -588,12 +588,12 @@ export class MainView extends React.Component { {// TO VIEW SNAP LINES - /*
+
- {this._hLines?.map(l => )} - {this._vLines?.map(l => )} + {this._hLines?.map(l => )} + {this._vLines?.map(l => )} -
*/} +
}
); } diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index 11d0f298d..763a6c605 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -869,6 +869,7 @@ export class CollectionFreeFormView extends CollectionSubView { + const size = this.props.ScreenToLocalTransform().transformDirection(this.props.PanelWidth(), this.props.PanelHeight()); + const selRect = { left: this.panX() - size[0] / 2, top: this.panY() - size[1] / 2, width: size[0], height: size[1] }; + const docDims = (doc: Doc) => ({ left: NumCast(doc.x), top: NumCast(doc.y), width: NumCast(doc._width), height: NumCast(doc._height) }); + const isDocInView = (doc: Doc, rect: { left: number, top: number, width: number, height: number }) => { + if (this.intersectRect(docDims(doc), rect)) { + snappableDocs.push(doc); + } + } + const snappableDocs: Doc[] = []; // the set of documents in the visible viewport that we will try to snap to; + const otherBounds = { left: this.panX(), top: this.panY(), width: Math.abs(size[0]), height: Math.abs(size[1]) }; + this.getActiveDocuments().filter(doc => !doc.isBackground && doc.z === undefined).map(doc => isDocInView(doc, selRect)); // first see if there are any foreground docs to snap to + !snappableDocs.length && this.getActiveDocuments().filter(doc => doc.z === undefined).map(doc => isDocInView(doc, selRect)); // if not, see if there are background docs to snap to + !snappableDocs.length && this.getActiveDocuments().filter(doc => doc.z !== undefined).map(doc => isDocInView(doc, otherBounds)); // if not, then why not snap to floating docs + + const horizLines: number[] = []; + const vertLines: number[] = []; + snappableDocs.filter(doc => !DragManager.docsBeingDragged.includes(Cast(doc.rootDocument, Doc, null) || doc)).forEach(doc => { + const { left, top, width, height } = docDims(doc); + const topLeftInScreen = this.getTransform().inverse().transformPoint(left, top); + const docSize = this.getTransform().inverse().transformDirection(width, height); + + horizLines.push(topLeftInScreen[1], topLeftInScreen[1] + docSize[1] / 2, topLeftInScreen[1] + docSize[1]); // horiz center line + vertLines.push(topLeftInScreen[0], topLeftInScreen[0] + docSize[0] / 2, topLeftInScreen[0] + docSize[0]);// right line + }); + DragManager.SetSnapLines(horizLines, vertLines); + } onPointerOver = (e: React.PointerEvent) => { if (SelectionManager.GetIsDragging()) { - const size = this.props.ScreenToLocalTransform().transformDirection(this.props.PanelWidth(), this.props.PanelHeight()); - const selRect = { left: this.panX() - size[0] / 2, top: this.panY() - size[1] / 2, width: size[0], height: size[1] }; - const selection: Doc[] = []; - const docDims = (doc: Doc, layoutDoc: Doc) => ({ left: NumCast(doc.x), top: NumCast(doc.y), width: NumCast(layoutDoc._width), height: NumCast(layoutDoc._height) }); - const compareDoc = (doc: Doc, rect: { left: number, top: number, width: number, height: number }) => { - if (this.intersectRect(docDims(doc, Doc.Layout(doc)), rect)) { - selection.push(doc); - } - } - const otherBounds = { left: this.panX(), top: this.panY(), width: Math.abs(size[0]), height: Math.abs(size[1]) }; - this.getActiveDocuments().filter(doc => !doc.isBackground && doc.z === undefined).map(doc => compareDoc(doc, selRect)); // first try foreground docs - !selection.length && this.getActiveDocuments().filter(doc => doc.z === undefined).map(doc => compareDoc(doc, selRect)); // then background docs - !selection.length && this.getActiveDocuments().filter(doc => doc.z !== undefined).map(doc => compareDoc(doc, otherBounds)); // then floating docs - - const horizLines: number[] = []; - const vertLines: number[] = []; - selection.filter(doc => !DragManager.docsBeingDragged.includes(doc)).forEach(doc => { - const { left, top, width, height } = docDims(doc, Doc.Layout(doc)); - const topLeftInScreen = this.getTransform().inverse().transformPoint(left, top); - const docSize = this.getTransform().inverse().transformDirection(width, height); - - horizLines.push(topLeftInScreen[1]); // top line - horizLines.push(topLeftInScreen[1] + docSize[1]); // bottom line - horizLines.push(topLeftInScreen[1] + docSize[1] / 2); // horiz center line - vertLines.push(topLeftInScreen[0]);//left line - vertLines.push(topLeftInScreen[0] + docSize[0]);// right line - vertLines.push(topLeftInScreen[0] + docSize[0] / 2);// vert center line - }); - DragManager.SetSnapLines(horizLines, vertLines); + this.setupDragLines(e); } e.stopPropagation(); } @@ -1273,12 +1273,12 @@ export class CollectionFreeFormView extends CollectionSubView
{// uncomment to show snap lines - /*
- - {this._hLines?.map(l => )} - {this._vLines?.map(l => )} - -
*/} +
+ + {this._hLines?.map(l => )} + {this._vLines?.map(l => )} + +
}
; } } diff --git a/src/client/views/nodes/formattedText/DashFieldView.tsx b/src/client/views/nodes/formattedText/DashFieldView.tsx index 422710c3e..1b22ed4cd 100644 --- a/src/client/views/nodes/formattedText/DashFieldView.tsx +++ b/src/client/views/nodes/formattedText/DashFieldView.tsx @@ -34,8 +34,6 @@ export class DashFieldView { docid={node.attrs.docid} width={node.attrs.width} height={node.attrs.height} - view={view} - getPos={getPos} tbox={tbox} />, this._fieldWrapper); (this as any).dom = this._fieldWrapper; @@ -49,8 +47,6 @@ export class DashFieldView { interface IDashFieldViewInternal { fieldKey: string; docid: string; - view: any; - getPos: any; tbox: FormattedTextBox; width: number; height: number; diff --git a/src/server/authentication/models/current_user_utils.ts b/src/server/authentication/models/current_user_utils.ts index e49cc4804..663343f47 100644 --- a/src/server/authentication/models/current_user_utils.ts +++ b/src/server/authentication/models/current_user_utils.ts @@ -1,5 +1,6 @@ import { action, computed, observable, reaction } from "mobx"; import * as rp from 'request-promise'; +import { Utils } from "../../../Utils"; import { DocServer } from "../../../client/DocServer"; import { Docs, DocumentOptions } from "../../../client/documents/Documents"; import { UndoManager } from "../../../client/util/UndoManager"; @@ -7,7 +8,7 @@ import { Doc, DocListCast, DocListCastAsync } from "../../../new_fields/Doc"; import { List } from "../../../new_fields/List"; import { listSpec } from "../../../new_fields/Schema"; import { ScriptField, ComputedField } from "../../../new_fields/ScriptField"; -import { Cast, PromiseValue, StrCast } from "../../../new_fields/Types"; +import { Cast, PromiseValue, StrCast, NumCast } from "../../../new_fields/Types"; import { Utils } from "../../../Utils"; import { nullAudio, ImageField } from "../../../new_fields/URLField"; import { DragManager } from "../../../client/util/DragManager"; @@ -628,6 +629,9 @@ export class CurrentUserUtils { new InkingControl(); doc.title = Doc.CurrentUserEmail; doc.activePen = doc; + doc["constants-snapThreshold"] = NumCast(doc["constants-snapThreshold"], 10); // + doc["constants-dragThreshold"] = NumCast(doc["constants-dragThreshold"], 4); // + Utils.DRAG_THRESHOLD = NumCast(doc["constants-dragThreshold"]); this.setupDefaultIconTemplates(doc); // creates a set of icon templates triggered by the document deoration icon this.setupDocTemplates(doc); // sets up the template menu of templates this.setupRightSidebar(doc); // sets up the right sidebar collection for mobile upload documents and sharing -- cgit v1.2.3-70-g09d2 From ff7c7d40b1fcdf74b539c7d97f36707ff1521d2e Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Fri, 1 May 2020 01:46:07 -0400 Subject: fixed presentations to allow drag and drop. fixed pres box to use RenderData instead of modifying presentation elements with unnecessary info like their containing PresBox and their presentation index position. COnverted COntentFIttingDocumentView to use DocumentView's props --- src/client/documents/Documents.ts | 1 + src/client/views/MainView.tsx | 4 +- src/client/views/SearchDocBox.tsx | 10 ++++- .../views/collections/CollectionCarouselView.tsx | 8 +++- .../views/collections/CollectionSchemaView.tsx | 14 ++++--- .../views/collections/CollectionStackingView.tsx | 15 ++++--- .../views/collections/CollectionTreeView.tsx | 20 +++++---- src/client/views/collections/CollectionView.tsx | 14 ++++--- .../collectionFreeForm/CollectionFreeFormView.tsx | 3 +- .../CollectionMulticolumnView.tsx | 14 ++++--- .../CollectionMultirowView.tsx | 14 ++++--- .../views/nodes/CollectionFreeFormDocumentView.tsx | 8 ++-- .../views/nodes/ContentFittingDocumentView.tsx | 49 ++++------------------ src/client/views/nodes/DocumentBox.tsx | 15 ++++--- src/client/views/nodes/DocumentView.tsx | 20 ++++----- src/client/views/nodes/FieldView.tsx | 1 + src/client/views/nodes/PresBox.tsx | 21 ++++------ .../formattedText/FormattedTextBoxComment.tsx | 12 ++++-- .../views/nodes/formattedText/RichTextMenu.scss | 3 ++ .../views/presentationview/PresElementBox.tsx | 25 +++++++---- src/client/views/search/SearchItem.tsx | 12 ++++-- src/new_fields/documentSchemas.ts | 2 +- .../authentication/models/current_user_utils.ts | 2 +- 23 files changed, 150 insertions(+), 137 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index 2e81d5fa6..228a6af97 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -81,6 +81,7 @@ export interface DocumentOptions { author?: string; dropAction?: dropActionType; childDropAction?: dropActionType; + targetDropAction?: dropActionType; layoutKey?: string; type?: string; title?: string; diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx index 65e4eb036..a29a6baac 100644 --- a/src/client/views/MainView.tsx +++ b/src/client/views/MainView.tsx @@ -597,8 +597,8 @@ export class MainView extends React.Component { {// TO VIEW SNAP LINES
- {this._hLines?.map(l => )} - {this._vLines?.map(l => )} + {this._hLines?.map((l: any) => )} + {this._vLines?.map((l: any) => )}
} diff --git a/src/client/views/SearchDocBox.tsx b/src/client/views/SearchDocBox.tsx index 799fa9d85..7bd689b19 100644 --- a/src/client/views/SearchDocBox.tsx +++ b/src/client/views/SearchDocBox.tsx @@ -6,7 +6,7 @@ import { observer } from "mobx-react"; import { Doc, DocListCast } from "../../new_fields/Doc"; import { Id } from "../../new_fields/FieldSymbols"; import { BoolCast, Cast, NumCast, StrCast } from "../../new_fields/Types"; -import { returnFalse } from "../../Utils"; +import { returnFalse, returnZero } from "../../Utils"; import { Docs } from "../documents/Documents"; import { SearchUtil } from "../util/SearchUtil"; import { EditableView } from "./EditableView"; @@ -399,7 +399,13 @@ export class SearchDocBox extends React.Component { + bringToFront={returnFalse} + ContainingCollectionDoc={undefined} + ContainingCollectionView={undefined} + NativeWidth={returnZero} + NativeHeight={returnZero} + parentActive={this.props.active} + ScreenToLocalTransform={this.props.ScreenToLocalTransform}>
; const CarouselDocument = makeInterface(documentSchema); @@ -49,9 +50,12 @@ export class CollectionCarouselView extends CollectionSubView(CarouselDocument) + ScreenToLocalTransform={this.props.ScreenToLocalTransform} + bringToFront={returnFalse} + parentActive={this.props.active} + />
doc) { {!this.previewDocument ? (null) : doc) { rootSelected={this.rootSelected} PanelWidth={this.previewWidth} PanelHeight={this.previewHeight} - getTransform={this.getPreviewTransform} - CollectionDoc={this.props.CollectionView?.props.Document} - CollectionView={this.props.CollectionView} + ScreenToLocalTransform={this.getPreviewTransform} + ContainingCollectionDoc={this.props.CollectionView?.props.Document} + ContainingCollectionView={this.props.CollectionView} moveDocument={this.props.moveDocument} addDocument={this.props.addDocument} removeDocument={this.props.removeDocument} - active={this.props.active} + parentActive={this.props.active} whenActiveChanged={this.props.whenActiveChanged} addDocTab={this.props.addDocTab} pinToPres={this.props.pinToPres} + bringToFront={returnFalse} + ContentScaling={returnOne} />}
; } diff --git a/src/client/views/collections/CollectionStackingView.tsx b/src/client/views/collections/CollectionStackingView.tsx index 556d7df5c..6c230d5b1 100644 --- a/src/client/views/collections/CollectionStackingView.tsx +++ b/src/client/views/collections/CollectionStackingView.tsx @@ -11,7 +11,7 @@ import { listSpec } from "../../../new_fields/Schema"; import { SchemaHeaderField } from "../../../new_fields/SchemaHeaderField"; import { BoolCast, Cast, NumCast, ScriptCast, StrCast } from "../../../new_fields/Types"; import { TraceMobx } from "../../../new_fields/util"; -import { Utils, setupMoveUpEvents, emptyFunction, returnZero, returnOne } from "../../../Utils"; +import { Utils, setupMoveUpEvents, emptyFunction, returnZero, returnOne, returnFalse } from "../../../Utils"; import { DragManager, dropActionType } from "../../util/DragManager"; import { Transform } from "../../util/Transform"; import { undoBatch } from "../../util/UndoManager"; @@ -165,12 +165,13 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) { const height = () => this.getDocHeight(doc); return doc) { dropAction={StrCast(this.props.Document.childDropAction) as dropActionType} onClick={this.onChildClickHandler} onDoubleClick={this.onChildDoubleClickHandler} - getTransform={dxf} + ScreenToLocalTransform={dxf} focus={this.props.focus} - CollectionDoc={this.props.CollectionView?.props.Document} - CollectionView={this.props.CollectionView} + ContainingCollectionDoc={this.props.CollectionView?.props.Document} + ContainingCollectionView={this.props.CollectionView} addDocument={this.props.addDocument} moveDocument={this.props.moveDocument} removeDocument={this.props.removeDocument} - active={this.props.active} + parentActive={this.props.active} whenActiveChanged={this.props.whenActiveChanged} addDocTab={this.addDocTab} + bringToFront={returnFalse} + ContentScaling={returnOne} pinToPres={this.props.pinToPres} />; } diff --git a/src/client/views/collections/CollectionTreeView.tsx b/src/client/views/collections/CollectionTreeView.tsx index d938bd7ad..71358a8ec 100644 --- a/src/client/views/collections/CollectionTreeView.tsx +++ b/src/client/views/collections/CollectionTreeView.tsx @@ -353,27 +353,31 @@ class TreeView extends React.Component { return
+ pinToPres={this.props.pinToPres} + bringToFront={returnFalse} + ContentScaling={returnOne} + />
; } } diff --git a/src/client/views/collections/CollectionView.tsx b/src/client/views/collections/CollectionView.tsx index 8d8c321e8..561226de5 100644 --- a/src/client/views/collections/CollectionView.tsx +++ b/src/client/views/collections/CollectionView.tsx @@ -113,12 +113,16 @@ export class CollectionView extends Touchable { @action.bound addDocument(doc: Doc): boolean { - const targetDataDoc = this.props.Document[DataSym]; - const docList = DocListCast(targetDataDoc[this.props.fieldKey]); - !docList.includes(doc) && (targetDataDoc[this.props.fieldKey] = new List([...docList, doc])); // DocAddToList may write to targetdataDoc's parent ... we don't want this. should really change GetProto to GetDataDoc and test for resolvedDataDoc there - // Doc.AddDocToList(targetDataDoc, this.props.fieldKey, doc); + if (this.props.addDocument) { + this.props.addDocument(doc); + } else { + const targetDataDoc = this.props.Document[DataSym]; + const docList = DocListCast(targetDataDoc[this.props.fieldKey]); + !docList.includes(doc) && (targetDataDoc[this.props.fieldKey] = new List([...docList, doc])); // DocAddToList may write to targetdataDoc's parent ... we don't want this. should really change GetProto to GetDataDoc and test for resolvedDataDoc there + // Doc.AddDocToList(targetDataDoc, this.props.fieldKey, doc); + targetDataDoc[this.props.fieldKey + "-lastModified"] = new DateField(new Date(Date.now())); + } doc.context = this.props.Document; - targetDataDoc[this.props.fieldKey + "-lastModified"] = new DateField(new Date(Date.now())); Doc.GetProto(doc).lastOpened = new DateField; return true; } diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index 763a6c605..b4eb22444 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -877,6 +877,7 @@ export class CollectionFreeFormView extends CollectionSubView { if (SelectionManager.GetIsDragging()) { - this.setupDragLines(e); + this.setupDragLines(); } e.stopPropagation(); } diff --git a/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx b/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx index 66d441115..b3a6a9deb 100644 --- a/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx +++ b/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx @@ -14,7 +14,7 @@ import "./collectionMulticolumnView.scss"; import ResizeBar from './MulticolumnResizer'; import WidthLabel from './MulticolumnWidthLabel'; import { List } from '../../../../new_fields/List'; -import { returnZero } from '../../../../Utils'; +import { returnZero, returnFalse, returnOne } from '../../../../Utils'; type MulticolumnDocument = makeInterface<[typeof documentSchema]>; const MulticolumnDocument = makeInterface(documentSchema); @@ -216,7 +216,7 @@ export class CollectionMulticolumnView extends CollectionSubView(MulticolumnDocu getDisplayDoc(layout: Doc, dxf: () => Transform, width: () => number, height: () => number) { return ; } /** diff --git a/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx b/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx index 615efdb39..0fb29ca61 100644 --- a/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx +++ b/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx @@ -6,7 +6,7 @@ import * as React from "react"; import { Doc } from '../../../../new_fields/Doc'; import { NumCast, StrCast, BoolCast, ScriptCast } from '../../../../new_fields/Types'; import { ContentFittingDocumentView } from '../../nodes/ContentFittingDocumentView'; -import { Utils, returnZero } from '../../../../Utils'; +import { Utils, returnZero, returnFalse, returnOne } from '../../../../Utils'; import "./collectionMultirowView.scss"; import { computed, trace, observable, action } from 'mobx'; import { Transform } from '../../../util/Transform'; @@ -215,7 +215,7 @@ export class CollectionMultirowView extends CollectionSubView(MultirowDocument) getDisplayDoc(layout: Doc, dxf: () => Transform, width: () => number, height: () => number) { return ; } /** diff --git a/src/client/views/nodes/CollectionFreeFormDocumentView.tsx b/src/client/views/nodes/CollectionFreeFormDocumentView.tsx index 1c7d116c5..24468dcc1 100644 --- a/src/client/views/nodes/CollectionFreeFormDocumentView.tsx +++ b/src/client/views/nodes/CollectionFreeFormDocumentView.tsx @@ -115,13 +115,11 @@ export class CollectionFreeFormDocumentView extends DocComponent : } diff --git a/src/client/views/nodes/ContentFittingDocumentView.tsx b/src/client/views/nodes/ContentFittingDocumentView.tsx index d0b0c8ee6..637fd5acc 100644 --- a/src/client/views/nodes/ContentFittingDocumentView.tsx +++ b/src/client/views/nodes/ContentFittingDocumentView.tsx @@ -3,51 +3,16 @@ import { computed } from "mobx"; import { observer } from "mobx-react"; import "react-table/react-table.css"; import { Doc, Opt, WidthSym, HeightSym } from "../../../new_fields/Doc"; -import { ScriptField } from "../../../new_fields/ScriptField"; import { NumCast, StrCast } from "../../../new_fields/Types"; import { TraceMobx } from "../../../new_fields/util"; import { emptyFunction, returnOne } from "../../../Utils"; -import { Transform } from "../../util/Transform"; -import { CollectionView } from "../collections/CollectionView"; import '../DocumentDecorations.scss'; -import { DocumentView } from "../nodes/DocumentView"; +import { DocumentView, DocumentViewProps } from "../nodes/DocumentView"; import "./ContentFittingDocumentView.scss"; -import { dropActionType } from "../../util/DragManager"; -interface ContentFittingDocumentViewProps { - Document: Doc; - DataDocument?: Doc; - LayoutDoc?: () => Opt; - NativeWidth?: () => number; - NativeHeight?: () => number; - FreezeDimensions?: boolean; - LibraryPath: Doc[]; - renderDepth: number; - fitToBox?: boolean; - layoutKey?: string; - dropAction?: dropActionType; - PanelWidth: () => number; - PanelHeight: () => number; - focus?: (doc: Doc) => void; - CollectionView?: CollectionView; - CollectionDoc?: Doc; - onClick?: ScriptField; - onDoubleClick?: ScriptField; - backgroundColor?: (doc: Doc) => string | undefined; - getTransform: () => Transform; - addDocument?: (document: Doc) => boolean; - moveDocument?: (document: Doc, target: Doc | undefined, addDoc: ((doc: Doc) => boolean)) => boolean; - removeDocument?: (document: Doc) => boolean; - active: (outsideReaction: boolean) => boolean; - whenActiveChanged: (isActive: boolean) => void; - addDocTab: (document: Doc, where: string) => boolean; - pinToPres: (document: Doc) => void; - dontRegisterView?: boolean; - rootSelected: (outsideReaction?: boolean) => boolean; -} @observer -export class ContentFittingDocumentView extends React.Component{ +export class ContentFittingDocumentView extends React.Component{ public get displayName() { return "DocumentView(" + this.props.Document?.title + ")"; } // this makes mobx trace() statements more descriptive private get layoutDoc() { return this.props.LayoutDoc?.() || Doc.Layout(this.props.Document); } @computed get freezeDimensions() { return this.props.FreezeDimensions; } @@ -68,7 +33,7 @@ export class ContentFittingDocumentView extends React.Component this.props.getTransform().translate(-this.centeringOffset, -this.centeringYOffset).scale(1 / this.contentScaling()); + private getTransform = () => this.props.ScreenToLocalTransform().translate(-this.centeringOffset, -this.centeringYOffset).scale(1 / this.contentScaling()); private get centeringOffset() { return this.nativeWidth() && !this.props.Document._fitWidth ? (this.props.PanelWidth() - this.nativeWidth() * this.contentScaling()) / 2 : 0; } private get centeringYOffset() { return Math.abs(this.centeringOffset) < 0.001 ? (this.props.PanelHeight() - this.nativeHeight() * this.contentScaling()) / 2 : 0; } @@ -90,7 +55,7 @@ export class ContentFittingDocumentView extends React.Component ; return contents; } diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx index 085637440..f555d6eef 100644 --- a/src/client/views/nodes/DocumentView.tsx +++ b/src/client/views/nodes/DocumentView.tsx @@ -77,6 +77,7 @@ export interface DocumentViewProps { setupDragLines?: () => void; renderDepth: number; ContentScaling: () => number; + RenderData?: () => Doc; PanelWidth: () => number; PanelHeight: () => number; pointerEvents?: boolean; @@ -992,6 +993,7 @@ export class DocumentView extends DocComponent(Docu LayoutDoc={this.props.LayoutDoc} makeLink={this.makeLink} rootSelected={this.rootSelected} + RenderData={this.props.RenderData} dontRegisterView={this.props.dontRegisterView} fitToBox={this.props.fitToBox} LibraryPath={this.props.LibraryPath} @@ -1112,17 +1114,13 @@ export class DocumentView extends DocComponent(Docu Doc.makeCustomViewClicked(this.props.Document, Docs.Create.StackingDocument, layout, undefined); } } - @observable _animate = 0; + @observable _animateScalingTo = 0; switchViews = action((custom: boolean, view: string) => { - SelectionManager.SetIsDragging(true); - this._animate = 0.1; + this._animateScalingTo = 0.1; // shrink doc setTimeout(action(() => { this.setCustomView(custom, view); - this._animate = 1; - setTimeout(action(() => { - this._animate = 0; - SelectionManager.SetIsDragging(false); - }), 400); + this._animateScalingTo = 1; // expand it + setTimeout(action(() => this._animateScalingTo = 0), 400); }), 400); }); @@ -1156,9 +1154,9 @@ export class DocumentView extends DocComponent(Docu !entered && Doc.UnBrushDoc(this.props.Document); })} style={{ - transformOrigin: this._animate ? "center center" : undefined, - transform: this._animate ? `scale(${this._animate})` : undefined, - transition: !this._animate ? StrCast(this.Document.transition) : this._animate < 1 ? "transform 0.5s ease-in" : "transform 0.5s ease-out", + transformOrigin: this._animateScalingTo ? "center center" : undefined, + transform: this._animateScalingTo ? `scale(${this._animateScalingTo})` : undefined, + transition: !this._animateScalingTo ? StrCast(this.Document.transition) : this._animateScalingTo < 1 ? "transform 0.5s ease-in" : "transform 0.5s ease-out", pointerEvents: this.ignorePointerEvents ? "none" : undefined, color: StrCast(this.layoutDoc.color, "inherit"), outline: highlighting && !borderRounding ? `${highlightColors[fullDegree]} ${highlightStyles[fullDegree]} ${localScale}px` : "solid 0px", diff --git a/src/client/views/nodes/FieldView.tsx b/src/client/views/nodes/FieldView.tsx index 0b9edbcd3..1efee4f5a 100644 --- a/src/client/views/nodes/FieldView.tsx +++ b/src/client/views/nodes/FieldView.tsx @@ -56,6 +56,7 @@ export interface FieldViewProps { width?: number; background?: string; color?: string; + RenderData?: () => Doc; } @observer diff --git a/src/client/views/nodes/PresBox.tsx b/src/client/views/nodes/PresBox.tsx index f91a809bb..3fcc97473 100644 --- a/src/client/views/nodes/PresBox.tsx +++ b/src/client/views/nodes/PresBox.tsx @@ -16,6 +16,7 @@ import { FieldView, FieldViewProps } from './FieldView'; import "./PresBox.scss"; import { ViewBoxBaseComponent } from "../DocComponent"; import { makeInterface } from "../../../new_fields/Schema"; +import { List } from "../../../new_fields/List"; type PresBoxSchema = makeInterface<[typeof documentSchema]>; const PresBoxDocument = makeInterface(documentSchema); @@ -23,20 +24,15 @@ const PresBoxDocument = makeInterface(documentSchema); @observer export class PresBox extends ViewBoxBaseComponent(PresBoxDocument) { public static LayoutString(fieldKey: string) { return FieldView.LayoutString(PresBox, fieldKey); } - private _childReaction: IReactionDisposer | undefined; @observable _isChildActive = false; @computed get childDocs() { return DocListCast(this.dataDoc[this.fieldKey]); } @computed get currentIndex() { return NumCast(this.rootDoc._itemIndex); } componentDidMount() { + this.rootDoc.presBox = this.rootDoc; this.rootDoc._forceRenderEngine = "timeline"; this.rootDoc._replacedChrome = "replaced"; - this._childReaction = reaction(() => this.childDocs.slice(), (children) => children.forEach((child, i) => child.presentationIndex = i), { fireImmediately: true }); } - componentWillUnmount() { - this._childReaction?.(); - } - updateCurrentPresentation = () => Doc.UserDoc().activePresentation = this.rootDoc; @undoBatch @@ -247,16 +243,12 @@ export class PresBox extends ViewBoxBaseComponent initializeViewAliases = (docList: Doc[], viewtype: CollectionViewType) => { const hgt = (viewtype === CollectionViewType.Tree) ? 50 : 46; - docList.forEach(doc => { - doc.presBox = this.rootDoc; // give contained documents a reference to the presentation - doc.presCollapsedHeight = hgt; // set the collpased height for documents based on the type of view (Tree or Stack) they will be displaye din - }); + this.rootDoc.presCollapsedHeight = hgt; } addDocument = (doc: Doc) => { - const newPinDoc = Doc.MakeAlias(doc); - newPinDoc.presentationTargetDoc = doc; - return Doc.AddDocToList(this.dataDoc, this.fieldKey, newPinDoc); + doc.presentationTargetDoc = doc.aliasOf; + return Doc.AddDocToList(this.dataDoc, this.fieldKey, doc); } removeDocument = (doc: Doc) => Doc.RemoveDocFromList(this.dataDoc, this.fieldKey, doc); @@ -280,8 +272,10 @@ export class PresBox extends ViewBoxBaseComponent this.updateMinimize(e, this.rootDoc._viewType = viewType); }); + returnSelf = () => this.rootDoc; childLayoutTemplate = () => this.rootDoc._viewType === CollectionViewType.Stacking ? Cast(Doc.UserDoc()["template-presentation"], Doc, null) : undefined; render() { + this.rootDoc.presOrderedDocs = new List(this.childDocs.map((child, i) => child)); const mode = StrCast(this.rootDoc._viewType) as CollectionViewType; this.initializeViewAliases(this.childDocs, mode); return
@@ -314,6 +308,7 @@ export class PresBox extends ViewBoxBaseComponent childLayoutTemplate={this.childLayoutTemplate} addDocument={this.addDocument} removeDocument={returnFalse} + RenderData={this.returnSelf} focus={this.selectElement} ScreenToLocalTransform={this.getTransform} /> : (null) diff --git a/src/client/views/nodes/formattedText/FormattedTextBoxComment.tsx b/src/client/views/nodes/formattedText/FormattedTextBoxComment.tsx index f9e4c5210..9ad5aafb8 100644 --- a/src/client/views/nodes/formattedText/FormattedTextBoxComment.tsx +++ b/src/client/views/nodes/formattedText/FormattedTextBoxComment.tsx @@ -4,7 +4,7 @@ import { EditorView } from "prosemirror-view"; import * as ReactDOM from 'react-dom'; import { Doc, DocCastAsync } from "../../../../new_fields/Doc"; import { Cast, FieldValue, NumCast } from "../../../../new_fields/Types"; -import { emptyFunction, returnEmptyString, returnFalse, Utils, emptyPath } from "../../../../Utils"; +import { emptyFunction, returnEmptyString, returnFalse, Utils, emptyPath, returnZero, returnOne } from "../../../../Utils"; import { DocServer } from "../../../DocServer"; import { DocumentManager } from "../../../util/DocumentManager"; import { schema } from "./schema_rts"; @@ -192,18 +192,24 @@ export class FormattedTextBoxComment { fitToBox={true} moveDocument={returnFalse} rootSelected={returnFalse} - getTransform={Transform.Identity} - active={returnFalse} + ScreenToLocalTransform={Transform.Identity} + parentActive={returnFalse} addDocument={returnFalse} removeDocument={returnFalse} addDocTab={returnFalse} pinToPres={returnFalse} dontRegisterView={true} + ContainingCollectionDoc={undefined} + ContainingCollectionView={undefined} renderDepth={1} PanelWidth={() => Math.min(350, NumCast(target._width, 350))} PanelHeight={() => Math.min(250, NumCast(target._height, 250))} focus={emptyFunction} whenActiveChanged={returnFalse} + bringToFront={returnFalse} + ContentScaling={returnOne} + NativeWidth={returnZero} + NativeHeight={returnZero} />, FormattedTextBoxComment.tooltipText); FormattedTextBoxComment.tooltip.style.width = NumCast(target.width) ? `${NumCast(target.width)}` : "100%"; FormattedTextBoxComment.tooltip.style.height = NumCast(target.height) ? `${NumCast(target.height)}` : "100%"; diff --git a/src/client/views/nodes/formattedText/RichTextMenu.scss b/src/client/views/nodes/formattedText/RichTextMenu.scss index 3a16171de..7a0718c16 100644 --- a/src/client/views/nodes/formattedText/RichTextMenu.scss +++ b/src/client/views/nodes/formattedText/RichTextMenu.scss @@ -55,6 +55,9 @@ color: black; } +} + +.richTextMenu { select { background-color: #323232; color: white; diff --git a/src/client/views/presentationview/PresElementBox.tsx b/src/client/views/presentationview/PresElementBox.tsx index 66f251b93..1887c8d45 100644 --- a/src/client/views/presentationview/PresElementBox.tsx +++ b/src/client/views/presentationview/PresElementBox.tsx @@ -1,12 +1,12 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { action, computed, IReactionDisposer, reaction } from "mobx"; import { observer } from "mobx-react"; -import { Doc, DataSym } from "../../../new_fields/Doc"; +import { Doc, DataSym, DocListCast } from "../../../new_fields/Doc"; import { documentSchema } from '../../../new_fields/documentSchemas'; import { Id } from "../../../new_fields/FieldSymbols"; import { createSchema, makeInterface } from '../../../new_fields/Schema'; import { Cast, NumCast } from "../../../new_fields/Types"; -import { emptyFunction, emptyPath, returnFalse, returnTrue } from "../../../Utils"; +import { emptyFunction, emptyPath, returnFalse, returnTrue, returnOne, returnZero } from "../../../Utils"; import { Transform } from "../../util/Transform"; import { CollectionViewType } from '../collections/CollectionView'; import { ViewBoxBaseComponent } from '../DocComponent'; @@ -38,13 +38,14 @@ export class PresElementBox extends ViewBoxBaseComponent d === this.rootDoc); } + @computed get presBoxDoc() { return Cast(this.props.RenderData?.().presBox, Doc) as Doc; } @computed get targetDoc() { return this.rootDoc.presentationTargetDoc as Doc; } @computed get currentIndex() { return NumCast(this.presBoxDoc?._itemIndex); } + @computed get collapsedHeight() { return NumCast(this.presBoxDoc?.presCollapsedHeight); } componentDidMount() { - this._heightDisposer = reaction(() => [this.rootDoc.presExpandInlineButton, this.rootDoc.presCollapsedHeight], + this._heightDisposer = reaction(() => [this.rootDoc.presExpandInlineButton, this.collapsedHeight], params => this.layoutDoc._height = NumCast(params[1]) + (Number(params[0]) ? 100 : 0), { fireImmediately: true }); } componentWillUnmount() { @@ -147,7 +148,7 @@ export class PresElementBox extends ViewBoxBaseComponent [xCord, yCord]; - embedHeight = () => Math.min(this.props.PanelWidth() - 20, this.props.PanelHeight() - NumCast(this.rootDoc.presCollapsedHeight)); + embedHeight = () => Math.min(this.props.PanelWidth() - 20, this.props.PanelHeight() - this.collapsedHeight); embedWidth = () => this.props.PanelWidth() - 20; /** * The function that is responsible for rendering the a preview or not for this @@ -158,7 +159,7 @@ export class PresElementBox extends ViewBoxBaseComponent
; diff --git a/src/client/views/search/SearchItem.tsx b/src/client/views/search/SearchItem.tsx index fe2000700..96f43e931 100644 --- a/src/client/views/search/SearchItem.tsx +++ b/src/client/views/search/SearchItem.tsx @@ -7,7 +7,7 @@ import { observer } from "mobx-react"; import { Doc } from "../../../new_fields/Doc"; import { Id } from "../../../new_fields/FieldSymbols"; import { Cast, NumCast, StrCast } from "../../../new_fields/Types"; -import { emptyFunction, emptyPath, returnFalse, Utils, returnTrue } from "../../../Utils"; +import { emptyFunction, emptyPath, returnFalse, Utils, returnTrue, returnOne, returnZero } from "../../../Utils"; import { DocumentType } from "../../documents/DocumentTypes"; import { DocumentManager } from "../../util/DocumentManager"; import { DragManager, SetupDrag } from "../../util/DragManager"; @@ -164,14 +164,20 @@ export class SearchItem extends React.Component { removeDocument={returnFalse} addDocTab={returnFalse} pinToPres={returnFalse} - getTransform={Transform.Identity} + ContainingCollectionDoc={undefined} + ContainingCollectionView={undefined} + ScreenToLocalTransform={Transform.Identity} renderDepth={1} PanelWidth={returnXDimension} PanelHeight={returnYDimension} + NativeWidth={returnZero} + NativeHeight={returnZero} focus={emptyFunction} moveDocument={returnFalse} - active={returnFalse} + parentActive={returnFalse} whenActiveChanged={returnFalse} + bringToFront={returnFalse} + ContentScaling={returnOne} />
; return docview; diff --git a/src/new_fields/documentSchemas.ts b/src/new_fields/documentSchemas.ts index 5ca0d681e..cd4b9d591 100644 --- a/src/new_fields/documentSchemas.ts +++ b/src/new_fields/documentSchemas.ts @@ -9,7 +9,7 @@ export const documentSchema = createSchema({ layoutKey: "string", // holds the field key for the field that actually holds the current lyoat title: "string", // document title (can be on either data document or layout) dropAction: "string", // override specifying what should happen when this document is dropped (can be "alias", "copy", "move") - targetDropAction: "string", // allows the target of a drop event to specify the dropAction ("alias", "copy", "move") + targetDropAction: "string", // allows the target of a drop event to specify the dropAction ("alias", "copy", "move") childDropAction: "string", // specify the override for what should happen when the child of a collection is dragged from it and dropped (can be "alias" or "copy") _autoHeight: "boolean", // whether the height of the document should be computed automatically based on its contents _nativeWidth: "number", // native width of document which determines how much document contents are scaled when the document's width is set diff --git a/src/server/authentication/models/current_user_utils.ts b/src/server/authentication/models/current_user_utils.ts index d7cc1e6bf..f37538252 100644 --- a/src/server/authentication/models/current_user_utils.ts +++ b/src/server/authentication/models/current_user_utils.ts @@ -578,7 +578,7 @@ export class CurrentUserUtils { } if (doc.activePresentation === undefined) { doc.activePresentation = Docs.Create.PresDocument(new List(), { - title: "Presentation", _viewType: CollectionViewType.Stacking, + title: "Presentation", _viewType: CollectionViewType.Stacking, targetDropAction: "alias", _LODdisable: true, _chromeStatus: "replaced", _showTitle: "title", boxShadow: "0 0" }); } -- cgit v1.2.3-70-g09d2 From 37324d134c8d788a73b8b1d35afa7ea6b0e88d37 Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Fri, 1 May 2020 12:47:51 -0400 Subject: cleaned up buxton template. fixed adding docs to collections. --- src/client/documents/Documents.ts | 7 +++---- src/client/views/collections/CollectionPileView.tsx | 4 ++-- .../views/collections/CollectionStackingView.scss | 7 +++++-- .../CollectionStackingViewFieldColumn.tsx | 6 +----- src/client/views/collections/CollectionView.tsx | 21 ++++++++++++--------- .../collections/collectionFreeForm/MarqueeView.tsx | 2 +- src/client/views/nodes/DocumentView.tsx | 2 +- src/client/views/nodes/PresBox.tsx | 6 +++--- src/new_fields/Doc.ts | 2 +- src/new_fields/documentSchemas.ts | 4 ++-- .../authentication/models/current_user_utils.ts | 7 ++++--- 11 files changed, 35 insertions(+), 33 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index 228a6af97..3d790a485 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -98,6 +98,7 @@ export interface DocumentOptions { isTemplateDoc?: boolean; targetScriptKey?: string; // where to write a template script (used by collections with click templates which need to target onClick, onDoubleClick, etc) templates?: List; + hero?: ImageField; // primary image that best represents a compound document (e.g., for a buxton device document that has multiple images) backgroundColor?: string | ScriptField; // background color for data doc _backgroundColor?: string | ScriptField; // background color for each template layout doc ( overrides backgroundColor ) color?: string; // foreground color data doc @@ -423,11 +424,9 @@ export namespace Docs { _nativeHeight: nativeHeight })); // the main document we create - const doc = StackingDocument(deviceImages, { title: device.title, _LODdisable: true }); - const deviceProto = Doc.GetProto(doc); - deviceProto.hero = new ImageField(constructed[0].url); + const doc = StackingDocument(deviceImages, { title: device.title, _LODdisable: true, hero: new ImageField(constructed[0].url) }); // add the parsed attributes to this main document - Docs.Get.FromJson({ data: device, appendToExisting: { targetDoc: deviceProto } }); + Docs.Get.FromJson({ data: device, appendToExisting: { targetDoc: Doc.GetProto(doc) } }); Doc.AddDocToList(parentProto, "data", doc); } else if (errors) { console.log(errors); diff --git a/src/client/views/collections/CollectionPileView.tsx b/src/client/views/collections/CollectionPileView.tsx index 3bbfcc4d7..8b8cbc6e8 100644 --- a/src/client/views/collections/CollectionPileView.tsx +++ b/src/client/views/collections/CollectionPileView.tsx @@ -53,7 +53,7 @@ export class CollectionPileView extends CollectionSubView(doc => doc) { toggleStarburst = action(() => { if (this._layoutEngine === 'starburst') { const defaultSize = 110; - this.layoutDoc.overflow = undefined; + this.layoutDoc._overflow = undefined; this.rootDoc.x = NumCast(this.rootDoc.x) + this.layoutDoc[WidthSym]() / 2 - NumCast(this.layoutDoc._starburstPileWidth, defaultSize) / 2; this.rootDoc.y = NumCast(this.rootDoc.y) + this.layoutDoc[HeightSym]() / 2 - NumCast(this.layoutDoc._starburstPileHeight, defaultSize) / 2; this.layoutDoc._width = NumCast(this.layoutDoc._starburstPileWidth, defaultSize); @@ -61,7 +61,7 @@ export class CollectionPileView extends CollectionSubView(doc => doc) { this._layoutEngine = 'pass'; } else { const defaultSize = 25; - this.layoutDoc.overflow = 'visible'; + this.layoutDoc._overflow = 'visible'; !this.layoutDoc._starburstRadius && (this.layoutDoc._starburstRadius = 500); !this.layoutDoc._starburstDocScale && (this.layoutDoc._starburstDocScale = 2.5); if (this._layoutEngine === 'pass') { diff --git a/src/client/views/collections/CollectionStackingView.scss b/src/client/views/collections/CollectionStackingView.scss index 47faa9239..5eaf29316 100644 --- a/src/client/views/collections/CollectionStackingView.scss +++ b/src/client/views/collections/CollectionStackingView.scss @@ -180,13 +180,16 @@ .collectionStackingView-sectionHeader-subCont { outline: none; border: 0px; - color: $light-color; width: 100%; - color: grey; letter-spacing: 2px; font-size: 75%; transition: transform 0.2s; position: relative; + height: 30px; + display: flex; + align-items: center; + justify-content: center; + color: lightGray; .editableView-container-editing-oneLine, .editableView-container-editing { diff --git a/src/client/views/collections/CollectionStackingViewFieldColumn.tsx b/src/client/views/collections/CollectionStackingViewFieldColumn.tsx index 323d7be25..8a9539eb0 100644 --- a/src/client/views/collections/CollectionStackingViewFieldColumn.tsx +++ b/src/client/views/collections/CollectionStackingViewFieldColumn.tsx @@ -322,11 +322,7 @@ export class CollectionStackingViewFieldColumn extends React.Component + style={{ background: evContents !== `NO ${key.toUpperCase()} VALUE` ? this._color : "inherit" }}> {evContents === `NO ${key.toUpperCase()} VALUE` ? (null) :
diff --git a/src/client/views/collections/CollectionView.tsx b/src/client/views/collections/CollectionView.tsx index 561226de5..91018980c 100644 --- a/src/client/views/collections/CollectionView.tsx +++ b/src/client/views/collections/CollectionView.tsx @@ -71,6 +71,9 @@ export enum CollectionViewType { Map = "map", Pile = "pileup" } +export interface CollectionViewCustomProps { + filterAddDocument: (doc: Doc) => boolean; +} export interface CollectionRenderProps { addDocument: (document: Doc) => boolean; @@ -82,7 +85,7 @@ export interface CollectionRenderProps { } @observer -export class CollectionView extends Touchable { +export class CollectionView extends Touchable { public static LayoutString(fieldStr: string) { return FieldView.LayoutString(CollectionView, fieldStr); } private _isChildActive = false; //TODO should this be observable? @@ -113,15 +116,15 @@ export class CollectionView extends Touchable { @action.bound addDocument(doc: Doc): boolean { - if (this.props.addDocument) { - this.props.addDocument(doc); - } else { - const targetDataDoc = this.props.Document[DataSym]; - const docList = DocListCast(targetDataDoc[this.props.fieldKey]); - !docList.includes(doc) && (targetDataDoc[this.props.fieldKey] = new List([...docList, doc])); // DocAddToList may write to targetdataDoc's parent ... we don't want this. should really change GetProto to GetDataDoc and test for resolvedDataDoc there - // Doc.AddDocToList(targetDataDoc, this.props.fieldKey, doc); - targetDataDoc[this.props.fieldKey + "-lastModified"] = new DateField(new Date(Date.now())); + if (this.props.filterAddDocument?.(doc) === false) { + return false; } + + const targetDataDoc = this.props.Document[DataSym]; + const docList = DocListCast(targetDataDoc[this.props.fieldKey]); + !docList.includes(doc) && (targetDataDoc[this.props.fieldKey] = new List([...docList, doc])); // DocAddToList may write to targetdataDoc's parent ... we don't want this. should really change GetProto to GetDataDoc and test for resolvedDataDoc there + // Doc.AddDocToList(targetDataDoc, this.props.fieldKey, doc); + targetDataDoc[this.props.fieldKey + "-lastModified"] = new DateField(new Date(Date.now())); doc.context = this.props.Document; Doc.GetProto(doc).lastOpened = new DateField; return true; diff --git a/src/client/views/collections/collectionFreeForm/MarqueeView.tsx b/src/client/views/collections/collectionFreeForm/MarqueeView.tsx index c70301b2f..5bac075b4 100644 --- a/src/client/views/collections/collectionFreeForm/MarqueeView.tsx +++ b/src/client/views/collections/collectionFreeForm/MarqueeView.tsx @@ -613,7 +613,7 @@ export class MarqueeView extends React.Component e.currentTarget.scrollTop = e.currentTarget.scrollLeft = 0} onClick={this.onClick} onPointerDown={this.onPointerDown}> {this._visible ? this.marqueeDiv : null} {this.props.children} diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx index f555d6eef..f1efa48f4 100644 --- a/src/client/views/nodes/DocumentView.tsx +++ b/src/client/views/nodes/DocumentView.tsx @@ -666,7 +666,7 @@ export class DocumentView extends DocComponent(Docu @undoBatch @action toggleBackground = (temporary: boolean): void => { - this.Document.overflow = temporary ? "visible" : "hidden"; + this.Document._overflow = temporary ? "visible" : "hidden"; this.Document.isBackground = !temporary ? !this.Document.isBackground : (this.Document.isBackground ? undefined : true); this.Document.isBackground && this.props.bringToFront(this.Document, true); } diff --git a/src/client/views/nodes/PresBox.tsx b/src/client/views/nodes/PresBox.tsx index 3fcc97473..72bbc9e4b 100644 --- a/src/client/views/nodes/PresBox.tsx +++ b/src/client/views/nodes/PresBox.tsx @@ -246,9 +246,9 @@ export class PresBox extends ViewBoxBaseComponent this.rootDoc.presCollapsedHeight = hgt; } - addDocument = (doc: Doc) => { + addDocumentFilter = (doc: Doc) => { doc.presentationTargetDoc = doc.aliasOf; - return Doc.AddDocToList(this.dataDoc, this.fieldKey, doc); + return true; } removeDocument = (doc: Doc) => Doc.RemoveDocFromList(this.dataDoc, this.fieldKey, doc); @@ -306,7 +306,7 @@ export class PresBox extends ViewBoxBaseComponent PanelHeight={this.panelHeight} moveDocument={returnFalse} childLayoutTemplate={this.childLayoutTemplate} - addDocument={this.addDocument} + filterAddDocument={this.addDocumentFilter} removeDocument={returnFalse} RenderData={this.returnSelf} focus={this.selectElement} diff --git a/src/new_fields/Doc.ts b/src/new_fields/Doc.ts index 77eee03ce..71325d94f 100644 --- a/src/new_fields/Doc.ts +++ b/src/new_fields/Doc.ts @@ -997,7 +997,7 @@ export namespace Doc { //newCollection.borderRounding = "40px"; newCollection._jitterRotation = 10; newCollection._backgroundColor = "gray"; - newCollection.overflow = "visible"; + newCollection._overflow = "visible"; return newCollection; } diff --git a/src/new_fields/documentSchemas.ts b/src/new_fields/documentSchemas.ts index cd4b9d591..7bf1c03c8 100644 --- a/src/new_fields/documentSchemas.ts +++ b/src/new_fields/documentSchemas.ts @@ -20,6 +20,7 @@ export const documentSchema = createSchema({ _yPadding: "number", // pixels of padding on top/bottom of collectionfreeformview contents when fitToBox is set _xMargin: "number", // margin added on left/right of most documents to add separation from their container _yMargin: "number", // margin added on top/bottom of most documents to add separation from their container + _overflow: "string", // sets overflow behvavior for CollectionFreeForm views _showCaption: "string", // whether editable caption text is overlayed at the bottom of the document _showTitle: "string", // the fieldkey whose contents should be displayed at the top of the document _showTitleHover: "string", // the showTitle should be shown only on hover @@ -36,7 +37,6 @@ export const documentSchema = createSchema({ color: "string", // foreground color of document backgroundColor: "string", // background color of document opacity: "number", // opacity of document - overflow: "string", // sets overflow behvavior for CollectionFreeForm views creationDate: DateField, // when the document was created links: listSpec(Doc), // computed (readonly) list of links associated with this document onClick: ScriptField, // script to run when document is clicked (can be overriden by an onClick prop) @@ -46,7 +46,7 @@ export const documentSchema = createSchema({ dragFactory: Doc, // the document that serves as the "template" for the onDragStart script. ie, to drag out copies of the dragFactory document. removeDropProperties: listSpec("string"), // properties that should be removed from the alias/copy/etc of this document when it is dropped isTemplateForField: "string",// when specifies a field key, then the containing document is a template that renders the specified field - isBackground: "boolean", // whether document is a background element and ignores input events (can only selet with marquee) + isBackground: "boolean", // whether document is a background element and ignores input events (can only select with marquee) treeViewOpen: "boolean", // flag denoting whether the documents sub-tree (contents) is visible or hidden treeViewExpandedView: "string", // name of field whose contents are being displayed as the document's subtree treeViewPreventOpen: "boolean", // ignores the treeViewOpen flag (for allowing a view to not be slaved to other views of the document) diff --git a/src/server/authentication/models/current_user_utils.ts b/src/server/authentication/models/current_user_utils.ts index f37538252..fbb27f9b7 100644 --- a/src/server/authentication/models/current_user_utils.ts +++ b/src/server/authentication/models/current_user_utils.ts @@ -89,7 +89,7 @@ export class CurrentUserUtils { const carousel = CarouselDocument([], { title: "data", _height: 350, _itemIndex: 0, backgroundColor: "#9b9b9b3F" }); const details = TextDocument("", { title: "details", _height: 350, _autoHeight: true }); - const short = TextDocument("", { title: "shortDescription", treeViewOpen: true, treeViewExpandedView: "layout", _height: 50, _autoHeight: true }); + const short = TextDocument("", { title: "shortDescription", treeViewOpen: true, treeViewExpandedView: "layout", _height: 100, _autoHeight: true }); const long = TextDocument("", { title: "longDescription", treeViewOpen: false, treeViewExpandedView: "layout", _height: 350, _autoHeight: true }); const buxtonFieldKeys = ["year", "originalPrice", "degreesOfFreedom", "company", "attribute", "primaryKey", "secondaryKey", "dimensions"]; @@ -111,8 +111,9 @@ export class CurrentUserUtils { const descriptionWrapper = MasonryDocument([details, short, long], { ...shared, ...descriptionWrapperOpts }); descriptionWrapper.sectionHeaders = new List([ - new SchemaHeaderField("[Long Description]", "LemonChiffon", undefined, undefined, undefined, true), - new SchemaHeaderField("[Details]", "lightBlue", undefined, undefined, undefined, true), + new SchemaHeaderField("[A Short Description]", "dimGray", undefined, undefined, undefined, false), + new SchemaHeaderField("[Long Description]", "dimGray", undefined, undefined, undefined, true), + new SchemaHeaderField("[Details]", "dimGray", undefined, undefined, undefined, true), ]); const detailView = Docs.Create.StackingDocument([carousel, descriptionWrapper], { ...shared, ...detailViewOpts }); detailView.isTemplateDoc = makeTemplate(detailView); -- cgit v1.2.3-70-g09d2 From 72a838b6a6165c7fa3050d78dbf16bf2cca6b840 Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Fri, 1 May 2020 13:26:25 -0400 Subject: buxton template tweaks --- src/client/documents/Documents.ts | 2 ++ src/client/views/collections/CollectionCarouselView.tsx | 4 ++-- src/server/authentication/models/current_user_utils.ts | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index 3d790a485..732f9303b 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -75,6 +75,8 @@ export interface DocumentOptions { _itemIndex?: number; // which item index the carousel viewer is showing _showSidebar?: boolean; //whether an annotationsidebar should be displayed for text docuemnts _singleLine?: boolean; // whether text document is restricted to a single line (carriage returns make new document) + "_carousel-caption-xMargin"?: number; + "_carousel-caption-yMargin"?: number; x?: number; y?: number; z?: number; diff --git a/src/client/views/collections/CollectionCarouselView.tsx b/src/client/views/collections/CollectionCarouselView.tsx index bfb7134b2..08d49f8a5 100644 --- a/src/client/views/collections/CollectionCarouselView.tsx +++ b/src/client/views/collections/CollectionCarouselView.tsx @@ -64,8 +64,8 @@ export class CollectionCarouselView extends CollectionSubView(CarouselDocument) borderRadius: StrCast(this.layoutDoc._captionBorderRounding), }}>
; diff --git a/src/server/authentication/models/current_user_utils.ts b/src/server/authentication/models/current_user_utils.ts index fbb27f9b7..3dbe90653 100644 --- a/src/server/authentication/models/current_user_utils.ts +++ b/src/server/authentication/models/current_user_utils.ts @@ -86,7 +86,7 @@ export class CurrentUserUtils { if (doc["template-button-detail"] === undefined) { const { TextDocument, MasonryDocument, CarouselDocument } = Docs.Create; - const carousel = CarouselDocument([], { title: "data", _height: 350, _itemIndex: 0, backgroundColor: "#9b9b9b3F" }); + const carousel = CarouselDocument([], { title: "data", _height: 350, _itemIndex: 0, "_carousel-caption-xMargin": 10, "_carousel-caption-yMargin": 10, backgroundColor: "#9b9b9b3F" }); const details = TextDocument("", { title: "details", _height: 350, _autoHeight: true }); const short = TextDocument("", { title: "shortDescription", treeViewOpen: true, treeViewExpandedView: "layout", _height: 100, _autoHeight: true }); -- cgit v1.2.3-70-g09d2 From ae21e365e8ed34060bd94ee04d0d8b3a1f3479f3 Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Fri, 1 May 2020 16:08:35 -0400 Subject: added doubleClick open on right to detailView template for Buxton --- src/client/documents/Documents.ts | 1 + src/client/views/collections/CollectionCarouselView.tsx | 4 +++- src/server/authentication/models/current_user_utils.ts | 12 ++++++++++-- 3 files changed, 14 insertions(+), 3 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index 732f9303b..a8b10bc7b 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -123,6 +123,7 @@ export interface DocumentOptions { borderRounding?: string; boxShadow?: string; dontRegisterChildren?: boolean; + "onDoubleClick-rawScript"?: string // onDoubleClick script in raw text form "onClick-rawScript"?: string; // onClick script in raw text form "onCheckedClick-rawScript"?: string; // onChecked script in raw text form "onCheckedClick-params"?: List; // parameter list for onChecked treeview functions diff --git a/src/client/views/collections/CollectionCarouselView.tsx b/src/client/views/collections/CollectionCarouselView.tsx index 08d49f8a5..4086294ad 100644 --- a/src/client/views/collections/CollectionCarouselView.tsx +++ b/src/client/views/collections/CollectionCarouselView.tsx @@ -4,7 +4,7 @@ import { observer } from 'mobx-react'; import * as React from 'react'; import { documentSchema } from '../../../new_fields/documentSchemas'; import { makeInterface } from '../../../new_fields/Schema'; -import { NumCast, StrCast } from '../../../new_fields/Types'; +import { NumCast, StrCast, ScriptCast } from '../../../new_fields/Types'; import { DragManager } from '../../util/DragManager'; import { ContentFittingDocumentView } from '../nodes/ContentFittingDocumentView'; import "./CollectionCarouselView.scss"; @@ -48,6 +48,8 @@ export class CollectionCarouselView extends CollectionSubView(CarouselDocument) <>
(["heading", "checked", "containingTreeView"]), isTemplateDoc: true, isTemplateForField: "onCheckedClick", _width: 300, _height: 200 }, "onCheckedClick"); - doc.clickFuncs = Docs.Create.TreeDocument([onClick, onCheckedClick], { title: "onClick funcs" }); + doc.clickFuncs = Docs.Create.TreeDocument([onClick, onDoubleClick, onCheckedClick], { title: "onClick funcs" }); } PromiseValue(Cast(doc.clickFuncs, Doc)).then(func => func && PromiseValue(func.data).then(DocListCast)); -- cgit v1.2.3-70-g09d2 From 5e6352c78be5b2a9fe791bd87da9b2415ced4839 Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Fri, 1 May 2020 19:35:37 -0400 Subject: added childLayoutTemplate to render collection children w/o modifying them. fixed docComponent's layoutDoc to use LayoutDoc prop. change buxton template to use new template mechanisms. fixed fixed lint errors. --- src/client/documents/Documents.ts | 5 +- src/client/util/DragManager.ts | 2 +- src/client/views/DocComponent.tsx | 2 +- src/client/views/animationtimeline/Timeline.tsx | 4 +- .../views/animationtimeline/TimelineMenu.tsx | 81 +++++++++++----------- src/client/views/animationtimeline/Track.tsx | 50 ++++++------- .../views/collections/CollectionStackingView.tsx | 2 +- src/client/views/collections/CollectionSubView.tsx | 17 ----- .../views/collections/CollectionTreeView.tsx | 36 ++++------ .../collectionFreeForm/CollectionFreeFormView.tsx | 11 ++- src/client/views/nodes/PresBox.tsx | 2 +- .../views/nodes/formattedText/DashFieldView.tsx | 2 +- src/new_fields/documentSchemas.ts | 2 +- 13 files changed, 94 insertions(+), 122 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index a8b10bc7b..434b26312 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -93,7 +93,8 @@ export interface DocumentOptions { scale?: number; isDisplayPanel?: boolean; // whether the panel functions as GoldenLayout "stack" used to display documents forceActive?: boolean; - layout?: string | Doc; + layout?: string | Doc; // default layout string for a document + childLayoutTemplate?: Doc; // template for collection to use to render its children (see PresBox or Buxton layout in tree view) hideFilterView?: boolean; // whether to hide the filter popout on collections hideHeadings?: boolean; // whether stacking view column headings should be hidden isTemplateForField?: string; // the field key for which the containing document is a rendering template @@ -123,7 +124,7 @@ export interface DocumentOptions { borderRounding?: string; boxShadow?: string; dontRegisterChildren?: boolean; - "onDoubleClick-rawScript"?: string // onDoubleClick script in raw text form + "onDoubleClick-rawScript"?: string; // onDoubleClick script in raw text form "onClick-rawScript"?: string; // onClick script in raw text form "onCheckedClick-rawScript"?: string; // onChecked script in raw text form "onCheckedClick-params"?: List; // parameter list for onChecked treeview functions diff --git a/src/client/util/DragManager.ts b/src/client/util/DragManager.ts index c48611eff..c06ad3d60 100644 --- a/src/client/util/DragManager.ts +++ b/src/client/util/DragManager.ts @@ -316,7 +316,7 @@ export namespace DragManager { return closestDists[minIndex] < snapThreshold ? closestPts[minIndex] + offs[minIndex] : drag; } return drag; - } + }; return { thisX: snapVal([xFromLeft, xFromRight], e.pageX, vertSnapLines), thisY: snapVal([yFromTop, yFromBottom], e.pageY, horizSnapLines) }; } diff --git a/src/client/views/DocComponent.tsx b/src/client/views/DocComponent.tsx index 0a8f0c9a7..629b0f447 100644 --- a/src/client/views/DocComponent.tsx +++ b/src/client/views/DocComponent.tsx @@ -20,7 +20,7 @@ export function DocComponent

(schemaCtor: (doc: D // This is the "The Document" -- it encapsulates, data, layout, and any templates @computed get rootDoc() { return Cast(this.props.Document.rootDocument, Doc, null) || this.props.Document; } // This is the rendering data of a document -- it may be "The Document", or it may be some template document that holds the rendering info - @computed get layoutDoc() { return Doc.Layout(this.props.Document); } + @computed get layoutDoc() { return Doc.Layout(this.props.Document, this.props.LayoutDoc?.()); } // This is the data part of a document -- ie, the data that is constant across all views of the document @computed get dataDoc() { return this.props.Document[DataSym] as Doc; } diff --git a/src/client/views/animationtimeline/Timeline.tsx b/src/client/views/animationtimeline/Timeline.tsx index 77656b85f..466cbb867 100644 --- a/src/client/views/animationtimeline/Timeline.tsx +++ b/src/client/views/animationtimeline/Timeline.tsx @@ -525,8 +525,8 @@ export class Timeline extends React.Component { @action.bound changeLengths() { if (this._infoContainer.current) { - this._visibleLength = this._infoContainer.current!.getBoundingClientRect().width; //the visible length of the timeline (the length that you current see) - this._visibleStart = this._infoContainer.current!.scrollLeft; //where the div starts + this._visibleLength = this._infoContainer.current.getBoundingClientRect().width; //the visible length of the timeline (the length that you current see) + this._visibleStart = this._infoContainer.current.scrollLeft; //where the div starts } } diff --git a/src/client/views/animationtimeline/TimelineMenu.tsx b/src/client/views/animationtimeline/TimelineMenu.tsx index 59c25596e..53ca9acad 100644 --- a/src/client/views/animationtimeline/TimelineMenu.tsx +++ b/src/client/views/animationtimeline/TimelineMenu.tsx @@ -1,7 +1,7 @@ import * as React from "react"; -import {observable, action, runInAction} from "mobx"; -import {observer} from "mobx-react"; -import "./TimelineMenu.scss"; +import { observable, action, runInAction } from "mobx"; +import { observer } from "mobx-react"; +import "./TimelineMenu.scss"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faChartLine, faRoad, faClipboard, faPen, faTrash, faTable } from "@fortawesome/free-solid-svg-icons"; import { Utils } from "../../../Utils"; @@ -9,67 +9,66 @@ import { Utils } from "../../../Utils"; @observer export class TimelineMenu extends React.Component { - public static Instance:TimelineMenu; + public static Instance: TimelineMenu; @observable private _opacity = 0; - @observable private _x = 0; - @observable private _y = 0; - @observable private _currentMenu:JSX.Element[] = []; + @observable private _x = 0; + @observable private _y = 0; + @observable private _currentMenu: JSX.Element[] = []; - constructor (props:Readonly<{}>){ - super(props); - TimelineMenu.Instance = this; + constructor(props: Readonly<{}>) { + super(props); + TimelineMenu.Instance = this; } - + @action - openMenu = (x?:number, y?:number) => { - this._opacity = 1; - x ? this._x = x : this._x = 0; - y ? this._y = y : this._y = 0; + openMenu = (x?: number, y?: number) => { + this._opacity = 1; + x ? this._x = x : this._x = 0; + y ? this._y = y : this._y = 0; } @action closeMenu = () => { - this._opacity = 0; - this._currentMenu = []; - this._x = -1000000; - this._y = -1000000; + this._opacity = 0; + this._currentMenu = []; + this._x = -1000000; + this._y = -1000000; } @action - addItem = (type: "input" | "button", title: string, event: (e:any, ...args:any[]) => void) => { - if (type === "input"){ - let inputRef = React.createRef(); - let text = ""; - this._currentMenu.push(

{ + addItem = (type: "input" | "button", title: string, event: (e: any, ...args: any[]) => void) => { + if (type === "input") { + const inputRef = React.createRef(); + let text = ""; + this._currentMenu.push(
{ e.stopPropagation(); text = e.target.value; }} onKeyDown={(e) => { if (e.keyCode === 13) { - event(text); - this.closeMenu(); - e.stopPropagation(); - } - }}/>
); + event(text); + this.closeMenu(); + e.stopPropagation(); + } + }} />
); } else if (type === "button") { - let buttonRef = React.createRef(); - this._currentMenu.push(

{ - e.preventDefault(); - e.stopPropagation(); - event(e); - this.closeMenu(); - }}>{title}

); - } + this._currentMenu.push(

{ + e.preventDefault(); + e.stopPropagation(); + event(e); + this.closeMenu(); + }}>{title}

); + } } - @action - addMenu = (title:string) => { - this._currentMenu.unshift(

{title}

); + @action + addMenu = (title: string) => { + this._currentMenu.unshift(

{title}

); } render() { return ( -
+
{this._currentMenu}
); diff --git a/src/client/views/animationtimeline/Track.tsx b/src/client/views/animationtimeline/Track.tsx index 79eb60fae..461db4858 100644 --- a/src/client/views/animationtimeline/Track.tsx +++ b/src/client/views/animationtimeline/Track.tsx @@ -90,9 +90,9 @@ export class Track extends React.Component { */ @action saveKeyframe = async () => { - let keyframes = Cast(this.saveStateRegion?.keyframes, listSpec(Doc)) as List; - let kfIndex = keyframes.indexOf(this.saveStateKf!); - let kf = keyframes[kfIndex] as Doc; //index in the keyframe + const keyframes = Cast(this.saveStateRegion?.keyframes, listSpec(Doc)) as List; + const kfIndex = keyframes.indexOf(this.saveStateKf!); + const kf = keyframes[kfIndex] as Doc; //index in the keyframe if (this._newKeyframe) { DocListCast(this.saveStateRegion?.keyframes).forEach((kf, index) => { this.copyDocDataToKeyFrame(kf); @@ -103,17 +103,17 @@ export class Track extends React.Component { if (!kf) return; if (kf.type === KeyframeFunc.KeyframeType.default) { // only save for non-fades this.copyDocDataToKeyFrame(kf); - let leftkf = KeyframeFunc.calcMinLeft(this.saveStateRegion!, this.time, kf); // lef keyframe, if it exists - let rightkf = KeyframeFunc.calcMinRight(this.saveStateRegion!, this.time, kf); //right keyframe, if it exists + const leftkf = KeyframeFunc.calcMinLeft(this.saveStateRegion!, this.time, kf); // lef keyframe, if it exists + const rightkf = KeyframeFunc.calcMinRight(this.saveStateRegion!, this.time, kf); //right keyframe, if it exists if (leftkf?.type === KeyframeFunc.KeyframeType.fade) { //replicating this keyframe to fades - let edge = KeyframeFunc.calcMinLeft(this.saveStateRegion!, this.time, leftkf); + const edge = KeyframeFunc.calcMinLeft(this.saveStateRegion!, this.time, leftkf); edge && this.copyDocDataToKeyFrame(edge); leftkf && this.copyDocDataToKeyFrame(leftkf); - edge && (edge!.opacity = 0.1); - leftkf && (leftkf!.opacity = 1); + edge && (edge.opacity = 0.1); + leftkf && (leftkf.opacity = 1); } if (rightkf?.type === KeyframeFunc.KeyframeType.fade) { - let edge = KeyframeFunc.calcMinRight(this.saveStateRegion!, this.time, rightkf); + const edge = KeyframeFunc.calcMinRight(this.saveStateRegion!, this.time, rightkf); edge && this.copyDocDataToKeyFrame(edge); rightkf && this.copyDocDataToKeyFrame(rightkf); edge && (edge.opacity = 0.1); @@ -142,7 +142,7 @@ export class Track extends React.Component { //check for region const region = this.findRegion(this.time); if (region !== undefined) { //if region at scrub time exist - let r = region as RegionData; //for some region is returning undefined... which is not the case + const r = region as RegionData; //for some region is returning undefined... which is not the case if (DocListCast(r.keyframes).find(kf => kf.time === this.time) === undefined) { //basically when there is no additional keyframe at that timespot this.makeKeyData(r, this.time, KeyframeFunc.KeyframeType.default); } @@ -222,11 +222,11 @@ export class Track extends React.Component { } else if (this._newKeyframe) { await this.saveKeyframe(); } - let regiondata = await this.findRegion(Math.round(this.time)); //finds a region that the scrubber is on + const regiondata = await this.findRegion(Math.round(this.time)); //finds a region that the scrubber is on if (regiondata) { - let leftkf: (Doc | undefined) = await KeyframeFunc.calcMinLeft(regiondata, this.time); // lef keyframe, if it exists - let rightkf: (Doc | undefined) = await KeyframeFunc.calcMinRight(regiondata, this.time); //right keyframe, if it exists - let currentkf: (Doc | undefined) = await this.calcCurrent(regiondata); //if the scrubber is on top of the keyframe + const leftkf: (Doc | undefined) = await KeyframeFunc.calcMinLeft(regiondata, this.time); // lef keyframe, if it exists + const rightkf: (Doc | undefined) = await KeyframeFunc.calcMinRight(regiondata, this.time); //right keyframe, if it exists + const currentkf: (Doc | undefined) = await this.calcCurrent(regiondata); //if the scrubber is on top of the keyframe if (currentkf) { console.log("is current"); await this.applyKeys(currentkf); @@ -248,7 +248,7 @@ export class Track extends React.Component { if (!kf[key]) { this.props.node[key] = undefined; } else { - let stored = kf[key]; + const stored = kf[key]; this.props.node[key] = stored instanceof ObjectField ? stored[Copy]() : stored; } }); @@ -261,7 +261,7 @@ export class Track extends React.Component { @action calcCurrent = (region: Doc) => { let currentkf: (Doc | undefined) = undefined; - let keyframes = DocListCast(region.keyframes!); + const keyframes = DocListCast(region.keyframes!); keyframes.forEach((kf) => { if (NumCast(kf.time) === Math.round(this.time)) currentkf = kf; }); @@ -276,12 +276,12 @@ export class Track extends React.Component { interpolate = async (left: Doc, right: Doc) => { this.primitiveWhitelist.forEach(key => { if (left[key] && right[key] && typeof (left[key]) === "number" && typeof (right[key]) === "number") { //if it is number, interpolate - let dif = NumCast(right[key]) - NumCast(left[key]); - let deltaLeft = this.time - NumCast(left.time); - let ratio = deltaLeft / (NumCast(right.time) - NumCast(left.time)); + const dif = NumCast(right[key]) - NumCast(left[key]); + const deltaLeft = this.time - NumCast(left.time); + const ratio = deltaLeft / (NumCast(right.time) - NumCast(left.time)); this.props.node[key] = NumCast(left[key]) + (dif * ratio); } else { // case data - let stored = left[key]; + const stored = left[key]; this.props.node[key] = stored instanceof ObjectField ? stored[Copy]() : stored; } }); @@ -301,8 +301,8 @@ export class Track extends React.Component { */ @action onInnerDoubleClick = (e: React.MouseEvent) => { - let inner = this._inner.current!; - let offsetX = Math.round((e.clientX - inner.getBoundingClientRect().left) * this.props.transform.Scale); + const inner = this._inner.current!; + const offsetX = Math.round((e.clientX - inner.getBoundingClientRect().left) * this.props.transform.Scale); this.createRegion(KeyframeFunc.convertPixelTime(offsetX, "mili", "time", this.props.tickSpacing, this.props.tickIncrement)); } @@ -313,10 +313,10 @@ export class Track extends React.Component { @action createRegion = (time: number) => { if (this.findRegion(time) === undefined) { //check if there is a region where double clicking (prevents phantom regions) - let regiondata = KeyframeFunc.defaultKeyframe(); //create keyframe data + const regiondata = KeyframeFunc.defaultKeyframe(); //create keyframe data regiondata.position = time; //set position - let rightRegion = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.right, regiondata, this.regions); + const rightRegion = KeyframeFunc.findAdjacentRegion(KeyframeFunc.Direction.right, regiondata, this.regions); if (rightRegion && rightRegion.position - regiondata.position <= 4000) { //edge case when there is less than default 4000 duration space between this and right region regiondata.duration = rightRegion.position - regiondata.position; @@ -332,7 +332,7 @@ export class Track extends React.Component { @action makeKeyData = (regiondata: RegionData, time: number, type: KeyframeFunc.KeyframeType = KeyframeFunc.KeyframeType.default) => { //Kfpos is mouse offsetX, representing time - const trackKeyFrames = DocListCast(regiondata.keyframes)!; + const trackKeyFrames = DocListCast(regiondata.keyframes); const existingkf = trackKeyFrames.find(TK => TK.time === time); if (existingkf) return existingkf; //else creates a new doc. diff --git a/src/client/views/collections/CollectionStackingView.tsx b/src/client/views/collections/CollectionStackingView.tsx index 6c230d5b1..01766f65f 100644 --- a/src/client/views/collections/CollectionStackingView.tsx +++ b/src/client/views/collections/CollectionStackingView.tsx @@ -128,7 +128,7 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) { return layoutDoc._fitWidth ? wid * NumCast(layoutDoc.scrollHeight, nh) / (nw || 1) : layoutDoc[HeightSym](); } componentDidMount() { - super.componentDidMount(); + super.componentDidMount?.(); // reset section headers when a new filter is inputted this._pivotFieldDisposer = reaction( diff --git a/src/client/views/collections/CollectionSubView.tsx b/src/client/views/collections/CollectionSubView.tsx index 8cc1af55b..e44bbae78 100644 --- a/src/client/views/collections/CollectionSubView.tsx +++ b/src/client/views/collections/CollectionSubView.tsx @@ -58,7 +58,6 @@ export function CollectionSubView(schemaCtor: (doc: Doc) => T, moreProps?: private dropDisposer?: DragManager.DragDropDisposer; private gestureDisposer?: GestureUtils.GestureEventDisposer; protected multiTouchDisposer?: InteractionUtils.MultiTouchEventDisposer; - private _childLayoutDisposer?: IReactionDisposer; protected _mainCont?: HTMLDivElement; protected createDashEventsTarget = (ele: HTMLDivElement) => { //used for stacking and masonry view this.dropDisposer?.(); @@ -75,25 +74,9 @@ export function CollectionSubView(schemaCtor: (doc: Doc) => T, moreProps?: this.createDashEventsTarget(ele); } - componentDidMount() { - this._childLayoutDisposer = reaction(() => ({ childDocs: this.childDocs, childLayout: Cast(this.props.Document.childLayout, Doc) }), - ({ childDocs, childLayout }) => { - if (childLayout instanceof Doc) { - childDocs.map(doc => { - doc.layout_fromParent = childLayout; - doc.layoutKey = "layout_fromParent"; - }); - } - else if (!(childLayout instanceof Promise)) { - childDocs.filter(d => !d.isTemplateForField).map(doc => doc.layoutKey === "layout_fromParent" && (doc.layoutKey = "layout")); - } - }, { fireImmediately: true }); - - } componentWillUnmount() { this.gestureDisposer?.(); this.multiTouchDisposer?.(); - this._childLayoutDisposer?.(); } @computed get dataDoc() { diff --git a/src/client/views/collections/CollectionTreeView.tsx b/src/client/views/collections/CollectionTreeView.tsx index 71358a8ec..296c1a39c 100644 --- a/src/client/views/collections/CollectionTreeView.tsx +++ b/src/client/views/collections/CollectionTreeView.tsx @@ -725,14 +725,6 @@ export class CollectionTreeView extends CollectionSubView { - DocListCast(this.dataDoc[this.props.fieldKey]).map(d => { - DocListCast(d.data).map((img, i) => { - const caption = (d.captions as any)[i]; - if (caption) { - Doc.GetProto(img).caption = caption; - } - }); - }); const { ImageDocument } = Docs.Create; const { Document } = this.props; const fallbackImg = "http://www.cs.brown.edu/~bcz/face.gif"; @@ -742,21 +734,19 @@ export class CollectionTreeView extends CollectionSubView(["dropAction"]), icon: "portrait", - onDragStart: ScriptField.MakeFunction('getCopy(this.dragFactory, true)'), - })); - - Doc.AddDocToList(Doc.UserDoc().dockedBtns as Doc, "data", - Docs.Create.FontIconDocument({ - title: "detail view", _nativeWidth: 100, _nativeHeight: 100, _width: 100, _height: 100, dropAction: "alias", - dragFactory: detailView, removeDropProperties: new List(["dropAction"]), icon: "file-alt", - onDragStart: ScriptField.MakeFunction('getCopy(this.dragFactory, true)'), - })); - - Document.childLayout = heroView; + const doubleClickView = ImageDocument("http://cs.brown.edu/~bcz/face.gif", { _width: 400 }); // replace with desired double click target + DocListCast(this.dataDoc[this.props.fieldKey]).map(d => { + DocListCast(d.data).map((img, i) => { + const caption = (d.captions as any)[i]; + if (caption) { + Doc.GetProto(img).caption = caption; + Doc.GetProto(img).doubleClickView = doubleClickView; + } + }); + d.layout = ImageBox.LayoutString("hero"); + }); + + Document.childLayoutTemplate = heroView; Document.childDetailView = detailView; Document._viewType = CollectionViewType.Time; Document._forceActive = true; diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index b4eb22444..45ef0455e 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -855,9 +855,10 @@ export class CollectionFreeFormView extends CollectionSubView BoolCast(this.Document.useClusters); @computed get backgroundActive() { return this.layoutDoc.isBackground && (this.props.ContainingCollectionView?.active() || this.props.active()); } + backgroundHalo = () => BoolCast(this.Document.useClusters); parentActive = () => this.props.active() || this.backgroundActive ? true : false; + childLayoutFunc = () => this.props.childLayoutTemplate?.() || Cast(this.props.Document.childLayoutTemplate, Doc, null); getChildDocumentViewProps(childLayout: Doc, childData?: Doc): DocumentViewProps { return { ...this.props, @@ -867,12 +868,12 @@ export class CollectionFreeFormView extends CollectionSubView this.props.childLayoutTemplate?.() || Cast(this.props.Document.childLayoutTemplate, Doc, null); get doLayoutComputation() { const { newPool, computedElementData } = this.doInternalLayoutComputation; runInAction(() => @@ -1025,7 +1025,6 @@ export class CollectionFreeFormView extends CollectionSubView this.doLayoutComputation, (elements) => this._layoutElements = elements || [], { fireImmediately: true, name: "doLayout" }); @@ -1156,7 +1155,7 @@ export class CollectionFreeFormView extends CollectionSubView !doc.isBackground && doc.z === undefined).map(doc => isDocInView(doc, selRect)); // first see if there are any foreground docs to snap to diff --git a/src/client/views/nodes/PresBox.tsx b/src/client/views/nodes/PresBox.tsx index 72bbc9e4b..6e3420f22 100644 --- a/src/client/views/nodes/PresBox.tsx +++ b/src/client/views/nodes/PresBox.tsx @@ -260,7 +260,7 @@ export class PresBox extends ViewBoxBaseComponent panelHeight = () => this.props.PanelHeight() - 20; active = (outsideReaction?: boolean) => ((InkingControl.Instance.selectedTool === InkTool.None && !this.layoutDoc.isBackground) && - (this.layoutDoc.forceActive || this.props.isSelected(outsideReaction) || this._isChildActive || this.props.renderDepth === 0) ? true : false); + (this.layoutDoc.forceActive || this.props.isSelected(outsideReaction) || this._isChildActive || this.props.renderDepth === 0) ? true : false) whenActiveChanged = action((isActive: boolean) => this.props.whenActiveChanged(this._isChildActive = isActive)); diff --git a/src/client/views/nodes/formattedText/DashFieldView.tsx b/src/client/views/nodes/formattedText/DashFieldView.tsx index 1b22ed4cd..d87d6e424 100644 --- a/src/client/views/nodes/formattedText/DashFieldView.tsx +++ b/src/client/views/nodes/formattedText/DashFieldView.tsx @@ -104,7 +104,7 @@ export class DashFieldViewInternal extends React.Component this._showEnumerables = true)); }} > {strVal} - + ; } } } diff --git a/src/new_fields/documentSchemas.ts b/src/new_fields/documentSchemas.ts index 7bf1c03c8..fd9a304f9 100644 --- a/src/new_fields/documentSchemas.ts +++ b/src/new_fields/documentSchemas.ts @@ -78,7 +78,7 @@ export const positionSchema = createSchema({ }); export const collectionSchema = createSchema({ - childLayout: Doc, // layout template for children of a collecion + childLayoutTemplate: Doc, // layout template for children of a collecion childDetailView: Doc, // layout template to apply to a child when its clicked on in a collection and opened (requires onChildClick or other script to use this field) onChildClick: ScriptField, // script to run for each child when its clicked onChildDoubleClick: ScriptField, // script to run for each child when its clicked -- cgit v1.2.3-70-g09d2 From 40d5c3acab6dbdc67f6d4bfd15c802da9fe08ca0 Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Sat, 2 May 2020 00:17:21 -0400 Subject: cleaned up a lot of layoutTemplate/String props. fixed link drawing. --- src/client/documents/Documents.ts | 7 +- src/client/util/DocumentManager.ts | 2 +- src/client/views/DocComponent.tsx | 4 +- src/client/views/DocumentDecorations.scss | 24 +++--- src/client/views/DocumentDecorations.tsx | 4 +- src/client/views/MainView.scss | 6 +- .../views/collections/CollectionCarouselView.tsx | 11 +-- .../views/collections/CollectionStackingView.tsx | 29 ++++--- src/client/views/collections/CollectionSubView.tsx | 2 + .../views/collections/CollectionTimeView.tsx | 4 +- .../views/collections/CollectionTreeView.tsx | 8 +- src/client/views/collections/CollectionView.tsx | 14 +++- .../views/collections/CollectionViewChromes.tsx | 6 +- .../CollectionFreeFormLinkView.tsx | 2 +- .../CollectionFreeFormLinksView.tsx | 2 +- .../collectionFreeForm/CollectionFreeFormView.tsx | 10 +-- .../CollectionMulticolumnView.tsx | 5 +- .../CollectionMultirowView.tsx | 5 +- src/client/views/nodes/AudioBox.tsx | 4 +- .../views/nodes/CollectionFreeFormDocumentView.tsx | 4 +- .../views/nodes/ContentFittingDocumentView.tsx | 5 +- src/client/views/nodes/DocumentBox.tsx | 94 ++++++++++++++------- src/client/views/nodes/DocumentContentsView.tsx | 44 +++++----- src/client/views/nodes/DocumentView.tsx | 29 +++---- src/client/views/nodes/FieldView.tsx | 3 +- src/client/views/nodes/KeyValueBox.tsx | 2 +- src/client/views/nodes/LinkAnchorBox.tsx | 1 - src/client/views/nodes/ScreenshotBox.tsx | 6 +- src/client/views/nodes/VideoBox.tsx | 6 +- src/new_fields/Doc.ts | 2 +- src/new_fields/documentSchemas.ts | 95 ++++++++++++---------- .../authentication/models/current_user_utils.ts | 2 +- 32 files changed, 247 insertions(+), 195 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index 434b26312..672f94f75 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -95,6 +95,7 @@ export interface DocumentOptions { forceActive?: boolean; layout?: string | Doc; // default layout string for a document childLayoutTemplate?: Doc; // template for collection to use to render its children (see PresBox or Buxton layout in tree view) + childLayoutString?: string; // template string for collection to use to render its children hideFilterView?: boolean; // whether to hide the filter popout on collections hideHeadings?: boolean; // whether stacking view column headings should be hidden isTemplateForField?: string; // the field key for which the containing document is a rendering template @@ -123,7 +124,7 @@ export interface DocumentOptions { displayTimecode?: number; // the time that a document should be displayed (e.g., time an annotation should be displayed on a video) borderRounding?: string; boxShadow?: string; - dontRegisterChildren?: boolean; + dontRegisterChildViews?: boolean; "onDoubleClick-rawScript"?: string; // onDoubleClick script in raw text form "onClick-rawScript"?: string; // onClick script in raw text form "onCheckedClick-rawScript"?: string; // onChecked script in raw text form @@ -592,9 +593,7 @@ export namespace Docs { linkDocProto.anchor1_timecode = source.doc.currentTimecode || source.doc.displayTimecode; linkDocProto.anchor2_timecode = target.doc.currentTimecode || target.doc.displayTimecode; - if (linkDocProto.layout_key1 === undefined) { - Cast(linkDocProto.proto, Doc, null).layout_key1 = LinkAnchorBox.LayoutString("anchor1"); - Cast(linkDocProto.proto, Doc, null).layout_key2 = LinkAnchorBox.LayoutString("anchor2"); + if (linkDocProto.linkBoxExcludedKeys === undefined) { Cast(linkDocProto.proto, Doc, null).linkBoxExcludedKeys = new List(["treeViewExpandedView", "treeViewHideTitle", "removeDropProperties", "linkBoxExcludedKeys", "treeViewOpen", "aliasNumber", "isPrototype", "lastOpened", "creationDate", "author"]); Cast(linkDocProto.proto, Doc, null).layoutKey = undefined; } diff --git a/src/client/util/DocumentManager.ts b/src/client/util/DocumentManager.ts index 4683e77a8..1ba6f0248 100644 --- a/src/client/util/DocumentManager.ts +++ b/src/client/util/DocumentManager.ts @@ -117,7 +117,7 @@ export class DocumentManager { pairs.push(...linksList.reduce((pairs, link) => { const linkToDoc = link && LinkManager.Instance.getOppositeAnchor(link, dv.props.Document); linkToDoc && DocumentManager.Instance.getDocumentViews(linkToDoc).map(docView1 => { - if (dv.props.Document.type !== DocumentType.LINK || dv.props.layoutKey !== docView1.props.layoutKey) { + if (dv.props.Document.type !== DocumentType.LINK || dv.props.LayoutTemplateString !== docView1.props.LayoutTemplateString) { pairs.push({ a: dv, b: docView1, l: link }); } }); diff --git a/src/client/views/DocComponent.tsx b/src/client/views/DocComponent.tsx index 629b0f447..fd0d2bdbb 100644 --- a/src/client/views/DocComponent.tsx +++ b/src/client/views/DocComponent.tsx @@ -11,7 +11,7 @@ import { InteractionUtils } from '../util/InteractionUtils'; /// DocComponent returns a generic React base class used by views that don't have 'fieldKey' props (e.g.,CollectionFreeFormDocumentView, DocumentView) interface DocComponentProps { Document: Doc; - LayoutDoc?: () => Opt; + LayoutTemplate?: () => Opt; } export function DocComponent

(schemaCtor: (doc: Doc) => T) { class Component extends Touchable

{ @@ -20,7 +20,7 @@ export function DocComponent

(schemaCtor: (doc: D // This is the "The Document" -- it encapsulates, data, layout, and any templates @computed get rootDoc() { return Cast(this.props.Document.rootDocument, Doc, null) || this.props.Document; } // This is the rendering data of a document -- it may be "The Document", or it may be some template document that holds the rendering info - @computed get layoutDoc() { return Doc.Layout(this.props.Document, this.props.LayoutDoc?.()); } + @computed get layoutDoc() { return Doc.Layout(this.props.Document, this.props.LayoutTemplate?.()); } // This is the data part of a document -- ie, the data that is constant across all views of the document @computed get dataDoc() { return this.props.Document[DataSym] as Doc; } diff --git a/src/client/views/DocumentDecorations.scss b/src/client/views/DocumentDecorations.scss index 61d517d43..4f34eb9e3 100644 --- a/src/client/views/DocumentDecorations.scss +++ b/src/client/views/DocumentDecorations.scss @@ -44,7 +44,6 @@ $linkGap : 3px; .documentDecorations-radius { pointer-events: auto; - background: black; opacity: 1; transform: translate(10px, 10px); grid-row: 4; @@ -88,12 +87,12 @@ $linkGap : 3px; opacity: 1; } #documentDecorations-topLeftResizer { - border-left: black 2px solid; - border-top: black solid 2px; + border-left: 2px solid; + border-top: solid 2px; } #documentDecorations-bottomRightResizer { - border-right: black 2px solid; - border-bottom: black solid 2px; + border-right: 2px solid; + border-bottom: solid 2px; } #documentDecorations-topLeftResizer:hover, #documentDecorations-bottomRightResizer:hover { @@ -111,12 +110,12 @@ $linkGap : 3px; opacity: 1; } #documentDecorations-topRightResizer { - border-right: black 2px solid; - border-top: black 2px solid; + border-right: 2px solid; + border-top: 2px solid; } #documentDecorations-bottomLeftResizer { - border-left: black 2px solid; - border-bottom: black 2px solid; + border-left: 2px solid; + border-bottom: 2px solid; } #documentDecorations-topRightResizer:hover, #documentDecorations-bottomLeftResizer:hover { @@ -136,7 +135,6 @@ $linkGap : 3px; } .documentDecorations-contextMenu { - background: $alt-accent; width: 25px; height: calc(100% + 8px); // 8px for the height of the top resizer bar grid-column-start: 1; @@ -144,14 +142,14 @@ $linkGap : 3px; pointer-events: all; } .documentDecorations-title { - background: $alt-accent; opacity: 1; grid-column-start: 3; grid-column-end: 4; pointer-events: auto; overflow: hidden; text-align: center; - display:flex; + display: flex; + border-bottom: solid 1px; } .publishBox { width: 20px; @@ -168,7 +166,6 @@ $linkGap : 3px; .documentDecorations-closeButton { - background: $alt-accent; opacity: 1; grid-column-start: 4; grid-column-end: 6; @@ -178,7 +175,6 @@ $linkGap : 3px; } .documentDecorations-minimizeButton { - background: $alt-accent; opacity: 1; grid-column-start: 1; grid-column-end: 3; diff --git a/src/client/views/DocumentDecorations.tsx b/src/client/views/DocumentDecorations.tsx index e2759291a..396fe12b5 100644 --- a/src/client/views/DocumentDecorations.tsx +++ b/src/client/views/DocumentDecorations.tsx @@ -4,7 +4,7 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { action, computed, observable, reaction, runInAction } from "mobx"; import { observer } from "mobx-react"; import { Doc, DataSym, Field } from "../../new_fields/Doc"; -import { PositionDocument } from '../../new_fields/documentSchemas'; +import { Document } from '../../new_fields/documentSchemas'; import { ScriptField } from '../../new_fields/ScriptField'; import { Cast, StrCast, NumCast } from "../../new_fields/Types"; import { Utils, setupMoveUpEvents, emptyFunction, returnFalse, simulateMouseClick } from "../../Utils"; @@ -301,7 +301,7 @@ export class DocumentDecorations extends React.Component<{}, { value: string }> SelectionManager.SelectedDocuments().forEach(action((element: DocumentView) => { if (dX !== 0 || dY !== 0 || dW !== 0 || dH !== 0) { - const doc = PositionDocument(element.rootDoc); + const doc = Document(element.rootDoc); let nwidth = doc._nativeWidth || 0; let nheight = doc._nativeHeight || 0; const width = (doc._width || 0); diff --git a/src/client/views/MainView.scss b/src/client/views/MainView.scss index 81d427f64..04288a9e1 100644 --- a/src/client/views/MainView.scss +++ b/src/client/views/MainView.scss @@ -39,7 +39,12 @@ } } +.mainView-container { + color:dimgray; +} + .mainView-container-dark { + color: lightgray; .lm_goldenlayout { background: dimgray; } @@ -54,7 +59,6 @@ } .contextMenu-cont, .contextMenu-item { background: dimGray; - color: lightgray; } .contextMenu-item:hover { background: gray; diff --git a/src/client/views/collections/CollectionCarouselView.tsx b/src/client/views/collections/CollectionCarouselView.tsx index 4086294ad..769b323ae 100644 --- a/src/client/views/collections/CollectionCarouselView.tsx +++ b/src/client/views/collections/CollectionCarouselView.tsx @@ -2,9 +2,9 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { observable, computed } from 'mobx'; import { observer } from 'mobx-react'; import * as React from 'react'; -import { documentSchema } from '../../../new_fields/documentSchemas'; +import { documentSchema, collectionSchema } from '../../../new_fields/documentSchemas'; import { makeInterface } from '../../../new_fields/Schema'; -import { NumCast, StrCast, ScriptCast } from '../../../new_fields/Types'; +import { NumCast, StrCast, ScriptCast, Cast } from '../../../new_fields/Types'; import { DragManager } from '../../util/DragManager'; import { ContentFittingDocumentView } from '../nodes/ContentFittingDocumentView'; import "./CollectionCarouselView.scss"; @@ -16,8 +16,8 @@ import { ContextMenu } from '../ContextMenu'; import { ObjectField } from '../../../new_fields/ObjectField'; import { returnFalse } from '../../../Utils'; -type CarouselDocument = makeInterface<[typeof documentSchema,]>; -const CarouselDocument = makeInterface(documentSchema); +type CarouselDocument = makeInterface<[typeof documentSchema, typeof collectionSchema]>; +const CarouselDocument = makeInterface(documentSchema, collectionSchema); @observer export class CollectionCarouselView extends CollectionSubView(CarouselDocument) { @@ -40,7 +40,6 @@ export class CollectionCarouselView extends CollectionSubView(CarouselDocument) e.stopPropagation(); this.layoutDoc._itemIndex = (NumCast(this.layoutDoc._itemIndex) - 1 + this.childLayoutPairs.length) % this.childLayoutPairs.length; } - panelHeight = () => this.props.PanelHeight() - 50; @computed get content() { const index = NumCast(this.layoutDoc._itemIndex); @@ -51,6 +50,8 @@ export class CollectionCarouselView extends CollectionSubView(CarouselDocument) onDoubleClick={ScriptCast(this.layoutDoc.onChildDoubleClick)} onClick={ScriptCast(this.layoutDoc.onChildClick)} renderDepth={this.props.renderDepth + 1} + LayoutTemplate={this.props.ChildLayoutTemplate} + LayoutTemplateString={this.props.ChildLayoutString} Document={this.childLayoutPairs[index].layout} DataDoc={this.childLayoutPairs[index].data} PanelHeight={this.panelHeight} diff --git a/src/client/views/collections/CollectionStackingView.tsx b/src/client/views/collections/CollectionStackingView.tsx index 01766f65f..eb70cec9d 100644 --- a/src/client/views/collections/CollectionStackingView.tsx +++ b/src/client/views/collections/CollectionStackingView.tsx @@ -4,15 +4,17 @@ import { CursorProperty } from "csstype"; import { action, computed, IReactionDisposer, observable, reaction, runInAction } from "mobx"; import { observer } from "mobx-react"; import Switch from 'rc-switch'; -import { Doc, HeightSym, WidthSym, DataSym } from "../../../new_fields/Doc"; +import { DataSym, Doc, HeightSym, WidthSym } from "../../../new_fields/Doc"; +import { collectionSchema, documentSchema } from "../../../new_fields/documentSchemas"; import { Id } from "../../../new_fields/FieldSymbols"; import { List } from "../../../new_fields/List"; -import { listSpec } from "../../../new_fields/Schema"; +import { listSpec, makeInterface } from "../../../new_fields/Schema"; import { SchemaHeaderField } from "../../../new_fields/SchemaHeaderField"; import { BoolCast, Cast, NumCast, ScriptCast, StrCast } from "../../../new_fields/Types"; import { TraceMobx } from "../../../new_fields/util"; -import { Utils, setupMoveUpEvents, emptyFunction, returnZero, returnOne, returnFalse } from "../../../Utils"; +import { emptyFunction, returnFalse, returnOne, returnZero, setupMoveUpEvents, Utils } from "../../../Utils"; import { DragManager, dropActionType } from "../../util/DragManager"; +import { SelectionManager } from "../../util/SelectionManager"; import { Transform } from "../../util/Transform"; import { undoBatch } from "../../util/UndoManager"; import { ContextMenu } from "../ContextMenu"; @@ -24,11 +26,14 @@ import "./CollectionStackingView.scss"; import { CollectionStackingViewFieldColumn } from "./CollectionStackingViewFieldColumn"; import { CollectionSubView } from "./CollectionSubView"; import { CollectionViewType } from "./CollectionView"; -import { SelectionManager } from "../../util/SelectionManager"; +import { ScriptField } from "../../../new_fields/ScriptField"; const _global = (window /* browser */ || global /* node */) as any; +type StackingDocument = makeInterface<[typeof collectionSchema, typeof documentSchema]>; +const StackingDocument = makeInterface(collectionSchema, documentSchema); + @observer -export class CollectionStackingView extends CollectionSubView(doc => doc) { +export class CollectionStackingView extends CollectionSubView(StackingDocument) { _masonryGridRef: HTMLDivElement | null = null; _draggerRef = React.createRef(); _pivotFieldDisposer?: IReactionDisposer; @@ -116,7 +121,7 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) { getSimpleDocHeight(d?: Doc) { if (!d) return 0; - const layoutDoc = Doc.Layout(d, this.props.childLayoutTemplate?.()); + const layoutDoc = Doc.Layout(d, this.props.ChildLayoutTemplate?.()); const nw = NumCast(layoutDoc._nativeWidth); const nh = NumCast(layoutDoc._nativeHeight); let wid = this.columnWidth / (this.isStackingView ? this.numGroupColumns : 1); @@ -160,14 +165,16 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) { } return this.props.addDocTab(doc, where); } + getDisplayDoc(doc: Doc, dataDoc: Doc | undefined, dxf: () => Transform, width: () => number) { - const layoutDoc = Doc.Layout(doc, this.props.childLayoutTemplate?.()); + const layoutDoc = Doc.Layout(doc, this.props.ChildLayoutTemplate?.()); const height = () => this.getDocHeight(doc); return doc) { PanelHeight={height} NativeHeight={returnZero} NativeWidth={returnZero} - fitToBox={BoolCast(this.props.Document._freezeChildDimensions)} + fitToBox={false} rootSelected={this.rootSelected} dropAction={StrCast(this.props.Document.childDropAction) as dropActionType} onClick={this.onChildClickHandler} @@ -199,13 +206,13 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) { getDocWidth(d?: Doc) { if (!d) return 0; - const layoutDoc = Doc.Layout(d, this.props.childLayoutTemplate?.()); + const layoutDoc = Doc.Layout(d, this.props.ChildLayoutTemplate?.()); const nw = NumCast(layoutDoc._nativeWidth); return Math.min(nw && !this.props.Document.fillColumn ? d[WidthSym]() : Number.MAX_VALUE, this.columnWidth / this.numGroupColumns); } getDocHeight(d?: Doc) { if (!d) return 0; - const layoutDoc = Doc.Layout(d, this.props.childLayoutTemplate?.()); + const layoutDoc = Doc.Layout(d, this.props.ChildLayoutTemplate?.()); const nw = NumCast(layoutDoc._nativeWidth); const nh = NumCast(layoutDoc._nativeHeight); let wid = this.columnWidth / (this.isStackingView ? this.numGroupColumns : 1); diff --git a/src/client/views/collections/CollectionSubView.tsx b/src/client/views/collections/CollectionSubView.tsx index e44bbae78..aaea13ded 100644 --- a/src/client/views/collections/CollectionSubView.tsx +++ b/src/client/views/collections/CollectionSubView.tsx @@ -43,6 +43,8 @@ export interface CollectionViewProps extends FieldViewProps { export interface SubCollectionViewProps extends CollectionViewProps { CollectionView: Opt; children?: never | (() => JSX.Element[]) | React.ReactNode; + ChildLayoutTemplate?: () => Doc; + ChildLayoutString?: string; childClickScript?: ScriptField; childDoubleClickScript?: ScriptField; freezeChildDimensions?: boolean; // used by TimeView to coerce documents to treat their width height as their native width/height diff --git a/src/client/views/collections/CollectionTimeView.tsx b/src/client/views/collections/CollectionTimeView.tsx index 045134225..a2d4774c8 100644 --- a/src/client/views/collections/CollectionTimeView.tsx +++ b/src/client/views/collections/CollectionTimeView.tsx @@ -28,7 +28,7 @@ export class CollectionTimeView extends CollectionSubView(doc => doc) { @observable _childClickedScript: Opt; @observable _viewDefDivClick: Opt; async componentDidMount() { - const detailView = (await DocCastAsync(this.props.Document.childDetailView)) || Doc.findTemplate("detailView", StrCast(this.props.Document.type), ""); + const detailView = (await DocCastAsync(this.props.Document.childClickedOpenTemplateView)) || Doc.findTemplate("detailView", StrCast(this.props.Document.type), ""); const childText = "const alias = getAlias(self); switchView(alias, detailView); alias.dropAction='alias'; alias.removeDropProperties=new List(['dropAction']); useRightSplit(alias, shiftKey); "; runInAction(() => { this._childClickedScript = ScriptField.MakeScript(childText, { this: Doc.name, shiftKey: "boolean" }, { detailView: detailView! }); @@ -84,7 +84,7 @@ export class CollectionTimeView extends CollectionSubView(doc => doc) { @computed get contents() { return

- +
; } diff --git a/src/client/views/collections/CollectionTreeView.tsx b/src/client/views/collections/CollectionTreeView.tsx index 296c1a39c..dc9348664 100644 --- a/src/client/views/collections/CollectionTreeView.tsx +++ b/src/client/views/collections/CollectionTreeView.tsx @@ -6,7 +6,6 @@ import { observer } from "mobx-react"; import { DataSym, Doc, DocListCast, Field, HeightSym, Opt, WidthSym } from '../../../new_fields/Doc'; import { Id } from '../../../new_fields/FieldSymbols'; import { List } from '../../../new_fields/List'; -import { RichTextField } from '../../../new_fields/RichTextField'; import { Document, listSpec } from '../../../new_fields/Schema'; import { ComputedField, ScriptField } from '../../../new_fields/ScriptField'; import { BoolCast, Cast, NumCast, ScriptCast, StrCast } from '../../../new_fields/Types'; @@ -15,7 +14,6 @@ import { Docs, DocUtils } from '../../documents/Documents'; import { DocumentType } from "../../documents/DocumentTypes"; import { DocumentManager } from '../../util/DocumentManager'; import { DragManager, dropActionType, SetupDrag } from "../../util/DragManager"; -import { makeTemplate } from '../../util/DropConverter'; import { Scripting } from '../../util/Scripting'; import { SelectionManager } from '../../util/SelectionManager'; import { Transform } from '../../util/Transform'; @@ -481,7 +479,7 @@ class TreeView extends React.Component { parentActive={returnTrue} whenActiveChanged={emptyFunction} bringToFront={emptyFunction} - dontRegisterView={BoolCast(this.props.treeViewId.dontRegisterChildren)} + dontRegisterView={BoolCast(this.props.treeViewId.dontRegisterChildViews)} ContainingCollectionView={undefined} ContainingCollectionDoc={this.props.containingCollection} />} @@ -743,11 +741,11 @@ export class CollectionTreeView extends CollectionSubView boolean; + filterAddDocument: (doc: Doc) => boolean; // allows a document that renders a Collection view to filter or modify any documents added to the collection (see PresBox for an example) + childLayoutTemplate?: () => Opt; // specify a layout Doc template to use for children of the collection } export interface CollectionRenderProps { @@ -82,6 +83,8 @@ export interface CollectionRenderProps { active: () => boolean; whenActiveChanged: (isActive: boolean) => void; PanelWidth: () => number; + ChildLayoutTemplate?: () => Doc; + ChildLayoutString?: string; } @observer @@ -245,8 +248,8 @@ export class CollectionView extends Touchable this.props.addDocTab(this.props.Document.childLayout as Doc, "onRight"), icon: "project-diagram" }); } - if (this.props.Document.childDetailView instanceof Doc) { - layoutItems.push({ description: "View Child Detailed Layout", event: () => this.props.addDocTab(this.props.Document.childDetailView as Doc, "onRight"), icon: "project-diagram" }); + if (this.props.Document.childClickedOpenTemplateView instanceof Doc) { + layoutItems.push({ description: "View Child Detailed Layout", event: () => this.props.addDocTab(this.props.Document.childClickedOpenTemplateView as Doc, "onRight"), icon: "project-diagram" }); } layoutItems.push({ description: `${this.props.Document.isInPlaceContainer ? "Unset" : "Set"} inPlace Container`, event: () => this.props.Document.isInPlaceContainer = !this.props.Document.isInPlaceContainer, icon: "project-diagram" }); @@ -474,6 +477,7 @@ export class CollectionView extends Touchable
; } + childLayoutTemplate = () => this.props.childLayoutTemplate?.() || Cast(this.props.Document.childLayoutTemplate, Doc, null); render() { TraceMobx(); @@ -483,7 +487,9 @@ export class CollectionView extends Touchable click item view", - script: "this.target.childDetailView = getDocTemplate(this.source?.[0])", - immediate: (source: Doc[]) => this.target.childDetailView = Doc.getDocTemplate(source?.[0]), + params: ["target", "source"], title: "=> click clicked open view", + script: "this.target.childClickedOpenTemplateView = getDocTemplate(this.source?.[0])", + immediate: (source: Doc[]) => this.target.childClickedOpenTemplateView = Doc.getDocTemplate(source?.[0]), initialize: emptyFunction, }; _contentCommand = { diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.tsx index cf12ef382..d67d1993e 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.tsx @@ -40,7 +40,7 @@ export class CollectionFreeFormLinkView extends React.Component - c.a.props.layoutKey && c.b.props.layoutKey && c.a.props.Document.type === DocumentType.LINK && + c.a.props.Document.type === DocumentType.LINK && c.a.props.bringToFront !== emptyFunction && c.b.props.bringToFront !== emptyFunction // bcz: this prevents links to be drawn to anchors in CollectionTree views -- this is a hack that should be fixed ).map(c => ); } diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index 45ef0455e..707e103fb 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -5,7 +5,7 @@ import { action, computed, IReactionDisposer, observable, ObservableMap, reactio import { observer } from "mobx-react"; import { computedFn } from "mobx-utils"; import { Doc, HeightSym, Opt, WidthSym, DocListCast } from "../../../../new_fields/Doc"; -import { documentSchema, positionSchema } from "../../../../new_fields/documentSchemas"; +import { documentSchema, collectionSchema } from "../../../../new_fields/documentSchemas"; import { Id } from "../../../../new_fields/FieldSymbols"; import { InkData, InkField, InkTool, PointData } from "../../../../new_fields/InkField"; import { List } from "../../../../new_fields/List"; @@ -66,8 +66,8 @@ export const panZoomSchema = createSchema({ fitH: "number" }); -type PanZoomDocument = makeInterface<[typeof panZoomSchema, typeof documentSchema, typeof positionSchema, typeof pageSchema]>; -const PanZoomDocument = makeInterface(panZoomSchema, documentSchema, positionSchema, pageSchema); +type PanZoomDocument = makeInterface<[typeof panZoomSchema, typeof collectionSchema, typeof documentSchema, typeof pageSchema]>; +const PanZoomDocument = makeInterface(panZoomSchema, collectionSchema, documentSchema, pageSchema); export type collectionFreeformViewProps = { forceScaling?: boolean; // whether to force scaling of content (needed by ImageBox) viewDefDivClick?: ScriptField; @@ -858,7 +858,6 @@ export class CollectionFreeFormView extends CollectionSubView BoolCast(this.Document.useClusters); parentActive = () => this.props.active() || this.backgroundActive ? true : false; - childLayoutFunc = () => this.props.childLayoutTemplate?.() || Cast(this.props.Document.childLayoutTemplate, Doc, null); getChildDocumentViewProps(childLayout: Doc, childData?: Doc): DocumentViewProps { return { ...this.props, @@ -868,7 +867,8 @@ export class CollectionFreeFormView extends CollectionSubView(PositionDocument) { +export class CollectionFreeFormDocumentView extends DocComponent(Document) { @observable _animPos: number[] | undefined = undefined; random(min: number, max: number) { // min should not be equal to max const mseed = Math.abs(this.X * this.Y); diff --git a/src/client/views/nodes/ContentFittingDocumentView.tsx b/src/client/views/nodes/ContentFittingDocumentView.tsx index 637fd5acc..3c2c6c87e 100644 --- a/src/client/views/nodes/ContentFittingDocumentView.tsx +++ b/src/client/views/nodes/ContentFittingDocumentView.tsx @@ -14,7 +14,7 @@ import "./ContentFittingDocumentView.scss"; @observer export class ContentFittingDocumentView extends React.Component{ public get displayName() { return "DocumentView(" + this.props.Document?.title + ")"; } // this makes mobx trace() statements more descriptive - private get layoutDoc() { return this.props.LayoutDoc?.() || Doc.Layout(this.props.Document); } + private get layoutDoc() { return this.props.LayoutTemplate?.() || Doc.Layout(this.props.Document); } @computed get freezeDimensions() { return this.props.FreezeDimensions; } nativeWidth = () => NumCast(this.layoutDoc?._nativeWidth, this.props.NativeWidth?.() || (this.freezeDimensions && this.layoutDoc ? this.layoutDoc[WidthSym]() : this.props.PanelWidth())); nativeHeight = () => NumCast(this.layoutDoc?._nativeHeight, this.props.NativeHeight?.() || (this.freezeDimensions && this.layoutDoc ? this.layoutDoc[HeightSym]() : this.props.PanelHeight())); @@ -56,7 +56,8 @@ export class ContentFittingDocumentView extends React.Component; -const DocHolderBoxDocument = makeInterface(documentSchema); +type DocHolderBoxSchema = makeInterface<[typeof documentSchema, typeof collectionSchema]>; +const DocHolderBoxDocument = makeInterface(documentSchema, collectionSchema); @observer export class DocHolderBox extends ViewBoxAnnotatableComponent(DocHolderBoxDocument) { @@ -43,7 +45,7 @@ export class DocHolderBox extends ViewBoxAnnotatableComponent this.toggleLockSelection, icon: "expand-arrows-alt" }); funcs.push({ description: (this.layoutDoc.excludeCollections ? "Include" : "Exclude") + " Collections", event: () => this.layoutDoc.excludeCollections = !this.layoutDoc.excludeCollections, icon: "expand-arrows-alt" }); funcs.push({ description: `${this.layoutDoc.forceActive ? "Select" : "Force"} Contents Active`, event: () => this.layoutDoc.forceActive = !this.layoutDoc.forceActive, icon: "project-diagram" }); - funcs.push({ description: `Show ${this.layoutDoc.childTemplateName !== "keyValue" ? "key values" : "contents"}`, event: () => this.layoutDoc.childTemplateName = this.layoutDoc.childTemplateName ? undefined : "keyValue", icon: "project-diagram" }); + funcs.push({ description: `Show ${this.layoutDoc.childLayoutTemplateName !== "keyValue" ? "key values" : "contents"}`, event: () => this.layoutDoc.childLayoutString = this.layoutDoc.childLayoutString ? undefined : "", icon: "project-diagram" }); ContextMenu.Instance.addItem({ description: "Options...", subitems: funcs, icon: "asterisk" }); } @@ -103,6 +105,7 @@ export class DocHolderBox extends ViewBoxAnnotatableComponent this.props.PanelWidth() - 2 * this.xPad; pheight = () => this.props.PanelHeight() - 2 * this.yPad; getTransform = () => this.props.ScreenToLocalTransform().translate(-this.xPad, -this.yPad); + isActive = () => this.active() || !this.props.renderDepth; get renderContents() { const containedDoc = Cast(this.dataDoc[this.props.fieldKey], Doc, null); const childTemplateName = StrCast(this.layoutDoc.childTemplateName); @@ -112,33 +115,62 @@ export class DocHolderBox extends ViewBoxAnnotatableComponent; + const contents = !(containedDoc instanceof Doc) ? (null) : this.layoutDoc.childLayoutString ? + : + ; return contents; } render() { diff --git a/src/client/views/nodes/DocumentContentsView.tsx b/src/client/views/nodes/DocumentContentsView.tsx index 4d20d3e2c..749fb98be 100644 --- a/src/client/views/nodes/DocumentContentsView.tsx +++ b/src/client/views/nodes/DocumentContentsView.tsx @@ -96,8 +96,6 @@ export class DocumentContentsView extends React.Component boolean, select: (ctrl: boolean) => void, layoutKey: string, - forceLayout?: string, - forceFieldKey?: string, hideOnLeave?: boolean, makeLink?: () => Opt, // function to call when a link is made }> { @@ -105,6 +103,7 @@ export class DocumentContentsView extends React.Componentawaiting layout

"; // const layout = Cast(this.layoutDoc[StrCast(this.layoutDoc.layoutKey, this.layoutDoc === this.props.Document ? this.props.layoutKey : "layout")], "string"); // bcz: replaced this with below... is it right? + if (this.props.LayoutTemplateString) return this.props.LayoutTemplateString; const layout = Cast(this.layoutDoc[this.layoutDoc === this.props.Document && this.props.layoutKey ? this.props.layoutKey : StrCast(this.layoutDoc.layoutKey, "layout")], "string"); if (this.props.layoutKey === "layout_keyValue") { return StrCast(this.props.Document.layout_keyValue, KeyValueBox.LayoutString("data")); @@ -127,8 +126,8 @@ export class DocumentContentsView extends React.Component 1 ? splits[0] + splits[1].replace(/{([^{}]|(?R))*}/, replacer4) : ""; // might have been more elegant if javascript supported recursive patterns return (this.props.renderDepth > 12 || !layoutFrame || !this.layoutDoc) ? (null) : - this.props.forceLayout === "FormattedTextBox" && this.props.forceFieldKey ? - - : - { console.log(test); }} - />; + { console.log(test); }} + />; } } \ No newline at end of file diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx index f1efa48f4..7c7c03db2 100644 --- a/src/client/views/nodes/DocumentView.tsx +++ b/src/client/views/nodes/DocumentView.tsx @@ -5,22 +5,21 @@ import { action, computed, observable, runInAction } from "mobx"; import { observer } from "mobx-react"; import * as rp from "request-promise"; import { Doc, DocListCast, HeightSym, Opt, WidthSym } from "../../../new_fields/Doc"; -import { Document, PositionDocument } from '../../../new_fields/documentSchemas'; +import { Document } from '../../../new_fields/documentSchemas'; import { Id } from '../../../new_fields/FieldSymbols'; import { InkTool } from '../../../new_fields/InkField'; -import { RichTextField } from '../../../new_fields/RichTextField'; import { listSpec } from "../../../new_fields/Schema"; import { SchemaHeaderField } from '../../../new_fields/SchemaHeaderField'; import { ScriptField } from '../../../new_fields/ScriptField'; import { BoolCast, Cast, NumCast, StrCast } from "../../../new_fields/Types"; -import { AudioField, ImageField, PdfField, VideoField } from '../../../new_fields/URLField'; +import { ImageField } from '../../../new_fields/URLField'; import { TraceMobx } from '../../../new_fields/util'; import { GestureUtils } from '../../../pen-gestures/GestureUtils'; import { emptyFunction, OmitKeys, returnOne, returnTransparent, Utils } from "../../../Utils"; import { GooglePhotos } from '../../apis/google_docs/GooglePhotosClientUtils'; import { ClientRecommender } from '../../ClientRecommender'; import { DocServer } from "../../DocServer"; -import { Docs, DocumentOptions, DocUtils } from "../../documents/Documents"; +import { Docs, DocUtils } from "../../documents/Documents"; import { DocumentType } from '../../documents/DocumentTypes'; import { ClientUtils } from '../../util/ClientUtils'; import { DocumentManager } from "../../util/DocumentManager"; @@ -42,6 +41,7 @@ import { InkingControl } from '../InkingControl'; import { KeyphraseQueryView } from '../KeyphraseQueryView'; import { DocumentContentsView } from "./DocumentContentsView"; import "./DocumentView.scss"; +import { LinkAnchorBox } from './LinkAnchorBox'; import { RadialMenu } from './RadialMenu'; import React = require("react"); @@ -58,7 +58,8 @@ export interface DocumentViewProps { NativeHeight: () => number; Document: Doc; DataDoc?: Doc; - LayoutDoc?: () => Opt; + LayoutTemplateString?: string; + LayoutTemplate?: () => Opt; LibraryPath: Doc[]; fitToBox?: boolean; contextMenuItems?: () => { script: ScriptField, label: string }[]; @@ -454,8 +455,8 @@ export class DocumentView extends DocComponent(Docu const dY = -1 * Math.sign(dH); if (dX !== 0 || dY !== 0 || dW !== 0 || dH !== 0) { - const doc = PositionDocument(this.props.Document); - const layoutDoc = PositionDocument(Doc.Layout(this.props.Document)); + const doc = Document(this.props.Document); + const layoutDoc = Document(Doc.Layout(this.props.Document)); let nwidth = layoutDoc._nativeWidth || 0; let nheight = layoutDoc._nativeHeight || 0; const width = (layoutDoc._width || 0); @@ -984,13 +985,15 @@ export class DocumentView extends DocComponent(Docu @computed get contents() { TraceMobx(); return (<> - (Docu ); } - linkEndpoint = (linkDoc: Doc) => Doc.LinkEndpoint(linkDoc, this.props.Document); // used to decide whether a link anchor view should be created or not. // if it's a tempoarl link (currently just for Audio), then the audioBox will display the anchor and we don't want to display it here. @@ -1049,12 +1051,12 @@ export class DocumentView extends DocComponent(Docu ContainingCollectionDoc={this.props.Document} // bcz: hack this.props.Document is not a collection Need a better prop for passing the containing document to the LinkAnchorBox PanelWidth={this.anchorPanelWidth} PanelHeight={this.anchorPanelHeight} - layoutKey={this.linkEndpoint(d)} ContentScaling={returnOne} backgroundColor={returnTransparent} removeDocument={this.hideLinkAnchor} pointerEvents={false} - LayoutDoc={undefined} + LayoutTemplate={undefined} + LayoutTemplateString={LinkAnchorBox.LayoutString(`anchor${Doc.LinkEndpoint(d, this.props.Document)}`)} />); } @computed get innards() { @@ -1073,8 +1075,7 @@ export class DocumentView extends DocComponent(Docu
`} ContentScaling={this.childScaling} ChromeHeight={this.chromeHeight} isSelected={this.isSelected} diff --git a/src/client/views/nodes/FieldView.tsx b/src/client/views/nodes/FieldView.tsx index 1efee4f5a..40d55ce38 100644 --- a/src/client/views/nodes/FieldView.tsx +++ b/src/client/views/nodes/FieldView.tsx @@ -50,13 +50,12 @@ export interface FieldViewProps { setVideoBox?: (player: VideoBox) => void; ContentScaling: () => number; ChromeHeight?: () => number; - childLayoutTemplate?: () => Opt; + RenderData?: () => Doc; // properties intended to be used from within layout strings (otherwise use the function equivalents that work more efficiently with React) height?: number; width?: number; background?: string; color?: string; - RenderData?: () => Doc; } @observer diff --git a/src/client/views/nodes/KeyValueBox.tsx b/src/client/views/nodes/KeyValueBox.tsx index 2970674a2..d43936949 100644 --- a/src/client/views/nodes/KeyValueBox.tsx +++ b/src/client/views/nodes/KeyValueBox.tsx @@ -36,7 +36,7 @@ export class KeyValueBox extends React.Component { @observable private _keyInput: string = ""; @observable private _valueInput: string = ""; @computed get splitPercentage() { return NumCast(this.props.Document.schemaSplitPercentage, 50); } - get fieldDocToLayout() { return this.props.fieldKey ? Cast(this.props.Document[this.props.fieldKey], Doc, null) : this.props.Document; } + get fieldDocToLayout() { return this.props.Document; } @action onEnterKey = (e: React.KeyboardEvent): void => { diff --git a/src/client/views/nodes/LinkAnchorBox.tsx b/src/client/views/nodes/LinkAnchorBox.tsx index 6c50abf21..bc36e056e 100644 --- a/src/client/views/nodes/LinkAnchorBox.tsx +++ b/src/client/views/nodes/LinkAnchorBox.tsx @@ -17,7 +17,6 @@ import { LinkEditor } from "../linking/LinkEditor"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { SelectionManager } from "../../util/SelectionManager"; import { TraceMobx } from "../../../new_fields/util"; -import { DocumentView } from "./DocumentView"; const higflyout = require("@hig/flyout"); export const { anchorPoints } = higflyout; export const Flyout = higflyout.default; diff --git a/src/client/views/nodes/ScreenshotBox.tsx b/src/client/views/nodes/ScreenshotBox.tsx index 125690dc7..a0ecc9ff5 100644 --- a/src/client/views/nodes/ScreenshotBox.tsx +++ b/src/client/views/nodes/ScreenshotBox.tsx @@ -5,7 +5,7 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { action, computed, IReactionDisposer, observable, runInAction } from "mobx"; import { observer } from "mobx-react"; import * as rp from 'request-promise'; -import { documentSchema, positionSchema } from "../../../new_fields/documentSchemas"; +import { documentSchema } from "../../../new_fields/documentSchemas"; import { makeInterface } from "../../../new_fields/Schema"; import { Cast, NumCast } from "../../../new_fields/Types"; import { VideoField } from "../../../new_fields/URLField"; @@ -20,8 +20,8 @@ import { FieldView, FieldViewProps } from './FieldView'; import "./ScreenshotBox.scss"; const path = require('path'); -type ScreenshotDocument = makeInterface<[typeof documentSchema, typeof positionSchema]>; -const ScreenshotDocument = makeInterface(documentSchema, positionSchema); +type ScreenshotDocument = makeInterface<[typeof documentSchema]>; +const ScreenshotDocument = makeInterface(documentSchema); library.add(faVideo); diff --git a/src/client/views/nodes/VideoBox.tsx b/src/client/views/nodes/VideoBox.tsx index 613929bca..266b7f43f 100644 --- a/src/client/views/nodes/VideoBox.tsx +++ b/src/client/views/nodes/VideoBox.tsx @@ -21,14 +21,14 @@ import { DocumentDecorations } from "../DocumentDecorations"; import { InkingControl } from "../InkingControl"; import { FieldView, FieldViewProps } from './FieldView'; import "./VideoBox.scss"; -import { documentSchema, positionSchema } from "../../../new_fields/documentSchemas"; +import { documentSchema } from "../../../new_fields/documentSchemas"; const path = require('path'); export const timeSchema = createSchema({ currentTimecode: "number", // the current time of a video or other linear, time-based document. Note, should really get set on an extension field, but that's more complicated when it needs to be set since the extension doc needs to be found first }); -type VideoDocument = makeInterface<[typeof documentSchema, typeof positionSchema, typeof timeSchema]>; -const VideoDocument = makeInterface(documentSchema, positionSchema, timeSchema); +type VideoDocument = makeInterface<[typeof documentSchema, typeof timeSchema]>; +const VideoDocument = makeInterface(documentSchema, timeSchema); library.add(faVideo); diff --git a/src/new_fields/Doc.ts b/src/new_fields/Doc.ts index 71325d94f..9256f82c2 100644 --- a/src/new_fields/Doc.ts +++ b/src/new_fields/Doc.ts @@ -772,7 +772,7 @@ export namespace Doc { export function LinkOtherAnchor(linkDoc: Doc, anchorDoc: Doc) { return Doc.AreProtosEqual(anchorDoc, Cast(linkDoc.anchor1, Doc) as Doc) ? Cast(linkDoc.anchor2, Doc) as Doc : Cast(linkDoc.anchor1, Doc) as Doc; } - export function LinkEndpoint(linkDoc: Doc, anchorDoc: Doc) { return Doc.AreProtosEqual(anchorDoc, Cast(linkDoc.anchor1, Doc) as Doc) ? "layout_key1" : "layout_key2"; } + export function LinkEndpoint(linkDoc: Doc, anchorDoc: Doc) { return Doc.AreProtosEqual(anchorDoc, Cast(linkDoc.anchor1, Doc) as Doc) ? "1" : "2"; } export function linkFollowUnhighlight() { Doc.UnhighlightAll(); diff --git a/src/new_fields/documentSchemas.ts b/src/new_fields/documentSchemas.ts index fd9a304f9..e71fc27f3 100644 --- a/src/new_fields/documentSchemas.ts +++ b/src/new_fields/documentSchemas.ts @@ -4,13 +4,25 @@ import { Doc } from "./Doc"; import { DateField } from "./DateField"; export const documentSchema = createSchema({ + // content properties type: "string", // enumerated type of document -- should be template-specific (ie, start with an '_') - layout: "string", // this is the native layout string for the document. templates can be added using other fields and setting layoutKey below - layoutKey: "string", // holds the field key for the field that actually holds the current lyoat title: "string", // document title (can be on either data document or layout) - dropAction: "string", // override specifying what should happen when this document is dropped (can be "alias", "copy", "move") - targetDropAction: "string", // allows the target of a drop event to specify the dropAction ("alias", "copy", "move") - childDropAction: "string", // specify the override for what should happen when the child of a collection is dragged from it and dropped (can be "alias" or "copy") + isTemplateForField: "string",// if specified, it indicates the document is a template that renders the specified field + creationDate: DateField, // when the document was created + links: listSpec(Doc), // computed (readonly) list of links associated with this document + + // "Location" properties in a very general sense + currentTimecode: "number", // current play back time of a temporal document (video / audio) + displayTimecode: "number", // the time that a document should be displayed (e.g., time an annotation should be displayed on a video) + inOverlay: "boolean", // whether the document is rendered in an OverlayView which handles selection/dragging differently + x: "number", // x coordinate when in a freeform view + y: "number", // y coordinate when in a freeform view + z: "number", // z "coordinate" - non-zero specifies the overlay layer of a freeformview + zIndex: "number", // zIndex of a document in a freeform view + scrollY: "number", // "command" to scroll a document to a position on load (the value will be reset to 0 after that ) + scrollTop: "number", // scroll position of a scrollable document (pdf, text, web) + + // appearance properties on the layout _autoHeight: "boolean", // whether the height of the document should be computed automatically based on its contents _nativeWidth: "number", // native width of document which determines how much document contents are scaled when the document's width is set _nativeHeight: "number", // " @@ -27,59 +39,57 @@ export const documentSchema = createSchema({ _showAudio: "boolean", // whether to show the audio record icon on documents _freeformLayoutEngine: "string",// the string ID for the layout engine to use to layout freeform view documents _LODdisable: "boolean", // whether to disbale LOD switching for CollectionFreeFormViews - _pivotField: "string", // specifies which field should be used as the timeline/pivot axis + _pivotField: "string", // specifies which field key should be used as the timeline/pivot axis _replacedChrome: "string", // what the default chrome is replaced with. Currently only supports the value of 'replaced' for PresBox's. _chromeStatus: "string", // determines the state of the collection chrome. values allowed are 'replaced', 'enabled', 'disabled', 'collapsed' - _freezeChildDimensions: "boolean", // freezes child document dimensions (e.g., used by time/pivot view to make sure all children will be scaled to fit their display rectangle) _fontSize: "number", _fontFamily: "string", - isInPlaceContainer: "boolean",// whether the marked object will display addDocTab() calls that target "inPlace" destinations - color: "string", // foreground color of document + + // appearance properties on the data document backgroundColor: "string", // background color of document + borderRounding: "string", // border radius rounding of document + boxShadow: "string", // the amount of shadow around the perimeter of a document + color: "string", // foreground color of document + fitToBox: "boolean", // whether freeform view contents should be zoomed/panned to fill the area of the document view + fontSize: "string", + layout: "string", // this is the native layout string for the document. templates can be added using other fields and setting layoutKey below + layoutKey: "string", // holds the field key for the field that actually holds the current lyoat + letterSpacing: "string", opacity: "number", // opacity of document - creationDate: DateField, // when the document was created - links: listSpec(Doc), // computed (readonly) list of links associated with this document + strokeWidth: "number", + textTransform: "string", + treeViewOpen: "boolean", // flag denoting whether the documents sub-tree (contents) is visible or hidden + treeViewExpandedView: "string", // name of field whose contents are being displayed as the document's subtree + treeViewPreventOpen: "boolean", // ignores the treeViewOpen flag (for allowing a view to not be slaved to other views of the document) + + // interaction and linking properties + ignoreClick: "boolean", // whether documents ignores input clicks (but does not ignore manipulation and other events) onClick: ScriptField, // script to run when document is clicked (can be overriden by an onClick prop) onPointerDown: ScriptField, // script to run when document is clicked (can be overriden by an onClick prop) onPointerUp: ScriptField, // script to run when document is clicked (can be overriden by an onClick prop) onDragStart: ScriptField, // script to run when document is dragged (without being selected). the script should return the Doc to be dropped. - dragFactory: Doc, // the document that serves as the "template" for the onDragStart script. ie, to drag out copies of the dragFactory document. - removeDropProperties: listSpec("string"), // properties that should be removed from the alias/copy/etc of this document when it is dropped - isTemplateForField: "string",// when specifies a field key, then the containing document is a template that renders the specified field - isBackground: "boolean", // whether document is a background element and ignores input events (can only select with marquee) - treeViewOpen: "boolean", // flag denoting whether the documents sub-tree (contents) is visible or hidden - treeViewExpandedView: "string", // name of field whose contents are being displayed as the document's subtree - treeViewPreventOpen: "boolean", // ignores the treeViewOpen flag (for allowing a view to not be slaved to other views of the document) - currentTimecode: "number", // current play back time of a temporal document (video / audio) followLinkLocation: "string",// flag for where to place content when following a click interaction (e.g., onRight, inPlace, inTab, ) + isInPlaceContainer: "boolean",// whether the marked object will display addDocTab() calls that target "inPlace" destinations + isLinkButton: "boolean", // whether document functions as a link follow button to follow the first link on the document when clicked + isBackground: "boolean", // whether document is a background element and ignores input events (can only select with marquee) lockedPosition: "boolean", // whether the document can be moved (dragged) lockedTransform: "boolean", // whether the document can be panned/zoomed - inOverlay: "boolean", // whether the document is rendered in an OverlayView which handles selection/dragging differently - borderRounding: "string", // border radius rounding of document - heading: "number", // the logical layout 'heading' of this document (used by rule provider to stylize h1 header elements, from h2, etc) - isLinkButton: "boolean", // whether document functions as a link follow button to follow the first link on the document when clicked - ignoreClick: "boolean", // whether documents ignores input clicks (but does not ignore manipulation and other events) - scrollToLinkID: "string", // id of link being traversed. allows this doc to scroll/highlight/etc its link anchor. scrollToLinkID should be set to undefined by this doc after it sets up its scroll,etc. - scrollY: "number", // "command" to scroll a document to a position on load (the value will be reset to 0 after that ) - scrollTop: "number", // scroll position of a scrollable document (pdf, text, web) - strokeWidth: "number", - fontSize: "string", - fitToBox: "boolean", // whether freeform view contents should be zoomed/panned to fill the area of the document view - letterSpacing: "string", - textTransform: "string", - childTemplateName: "string" // the name of a template to use to override the layoutKey when rendering a document in DocHolderBox -}); -export const positionSchema = createSchema({ - zIndex: "number", - x: "number", - y: "number", - z: "number", + // drag drop properties + dragFactory: Doc, // the document that serves as the "template" for the onDragStart script. ie, to drag out copies of the dragFactory document. + dropAction: "string", // override specifying what should happen when this document is dropped (can be "alias", "copy", "move") + targetDropAction: "string", // allows the target of a drop event to specify the dropAction ("alias", "copy", "move") + childDropAction: "string", // specify the override for what should happen when the child of a collection is dragged from it and dropped (can be "alias" or "copy") + removeDropProperties: listSpec("string"), // properties that should be removed from the alias/copy/etc of this document when it is dropped }); + export const collectionSchema = createSchema({ - childLayoutTemplate: Doc, // layout template for children of a collecion - childDetailView: Doc, // layout template to apply to a child when its clicked on in a collection and opened (requires onChildClick or other script to use this field) + childLayoutTemplateName: "string", // the name of a template to use to override the layoutKey when rendering a document -- ONLY used in DocHolderBox + childLayoutTemplate: Doc, // layout template to use to render children of a collecion + childLayoutString: "string", //layout string to use to render children of a collection + childClickedOpenTemplateView: Doc, // layout template to apply to a child when its clicked on in a collection and opened (requires onChildClick or other script to read this value and apply template) + dontRegisterChildViews: "boolean", // whether views made of this document are registered so that they can be found when drawing links scrollToLinkID: "string", // id of link being traversed. allows this doc to scroll/highlight/etc its link anchor. scrollToLinkID should be set to undefined by this doc after it sets up its scroll,etc. onChildClick: ScriptField, // script to run for each child when its clicked onChildDoubleClick: ScriptField, // script to run for each child when its clicked onCheckedClick: ScriptField, // script to run when a checkbox is clicked next to a child in a tree view @@ -87,6 +97,3 @@ export const collectionSchema = createSchema({ export type Document = makeInterface<[typeof documentSchema]>; export const Document = makeInterface(documentSchema); - -export type PositionDocument = makeInterface<[typeof documentSchema, typeof positionSchema]>; -export const PositionDocument = makeInterface(documentSchema, positionSchema); diff --git a/src/server/authentication/models/current_user_utils.ts b/src/server/authentication/models/current_user_utils.ts index 2ae42bf52..b9de93559 100644 --- a/src/server/authentication/models/current_user_utils.ts +++ b/src/server/authentication/models/current_user_utils.ts @@ -485,7 +485,7 @@ export class CurrentUserUtils { _width: 50, _height: 25, title: "Library", _fontSize: 10, letterSpacing: "0px", textTransform: "unset", borderRounding: "5px 5px 0px 0px", boxShadow: "3px 3px 0px rgb(34, 34, 34)", sourcePanel: new PrefetchProxy(Docs.Create.TreeDocument([workspaces, documents, recentlyClosed, doc], { - title: "Library", _xMargin: 5, _yMargin: 5, _gridGap: 5, forceActive: true, childDropAction: "move", lockedPosition: true, boxShadow: "0 0", dontRegisterChildren: true + title: "Library", _xMargin: 5, _yMargin: 5, _gridGap: 5, forceActive: true, childDropAction: "move", lockedPosition: true, boxShadow: "0 0", dontRegisterChildViews: true })) as any as Doc, targetContainer: new PrefetchProxy(sidebarContainer) as any as Doc, onClick: ScriptField.MakeScript("this.targetContainer.proto = this.sourcePanel;") -- cgit v1.2.3-70-g09d2 From 952bc0d744833ab79f69f2f13abde1e4cee68408 Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Sat, 2 May 2020 00:21:25 -0400 Subject: prefetch buxton double click view --- src/client/views/collections/CollectionTreeView.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/collections/CollectionTreeView.tsx b/src/client/views/collections/CollectionTreeView.tsx index dc9348664..835dfc637 100644 --- a/src/client/views/collections/CollectionTreeView.tsx +++ b/src/client/views/collections/CollectionTreeView.tsx @@ -31,6 +31,7 @@ import { CollectionSubView } from "./CollectionSubView"; import "./CollectionTreeView.scss"; import { CollectionViewType } from './CollectionView'; import React = require("react"); +import { PrefetchProxy } from '../../../new_fields/Proxy'; export interface TreeViewProps { @@ -745,7 +746,7 @@ export class CollectionTreeView extends CollectionSubView Date: Sat, 2 May 2020 14:31:16 -0400 Subject: turn off targetDropAction when dropping in same colleciton. cleaned up PresBox stuff to use single template to render all contents (which are otherwise unmodified). --- src/client/util/DragManager.ts | 4 +- .../views/collections/CollectionCarouselView.tsx | 2 +- .../views/collections/CollectionStackingView.tsx | 1 - src/client/views/collections/CollectionSubView.tsx | 11 +++- src/client/views/collections/CollectionView.tsx | 4 +- .../collectionFreeForm/CollectionFreeFormView.tsx | 1 - src/client/views/nodes/DocumentView.tsx | 2 - src/client/views/nodes/FieldView.tsx | 3 +- src/client/views/nodes/PresBox.tsx | 72 ++++++++++++---------- .../views/nodes/formattedText/FormattedTextBox.tsx | 6 +- .../views/presentationview/PresElementBox.tsx | 16 ++--- src/new_fields/documentSchemas.ts | 2 +- .../authentication/models/current_user_utils.ts | 7 +-- 13 files changed, 71 insertions(+), 60 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/util/DragManager.ts b/src/client/util/DragManager.ts index c06ad3d60..041f2fc2c 100644 --- a/src/client/util/DragManager.ts +++ b/src/client/util/DragManager.ts @@ -185,7 +185,8 @@ export namespace DragManager { export function MakeDropTarget( element: HTMLElement, dropFunc: (e: Event, de: DropEvent) => void, - doc?: Doc + doc?: Doc, + preDropFunc?: (e: Event, de: DropEvent) => void, ): DragDropDisposer { if ("canDrop" in element.dataset) { throw new Error( @@ -199,6 +200,7 @@ export namespace DragManager { if (de.complete.docDragData && doc?.targetDropAction) { de.complete.docDragData.dropAction = StrCast(doc.targetDropAction) as dropActionType; } + preDropFunc?.(e, de); }; element.addEventListener("dashOnDrop", handler); doc && element.addEventListener("dashPreDrop", preDropHandler); diff --git a/src/client/views/collections/CollectionCarouselView.tsx b/src/client/views/collections/CollectionCarouselView.tsx index 769b323ae..a04136e51 100644 --- a/src/client/views/collections/CollectionCarouselView.tsx +++ b/src/client/views/collections/CollectionCarouselView.tsx @@ -69,7 +69,7 @@ export class CollectionCarouselView extends CollectionSubView(CarouselDocument) + Document={this.childLayoutPairs[index].layout} DataDoc={undefined} fieldKey={"caption"} />
; } diff --git a/src/client/views/collections/CollectionStackingView.tsx b/src/client/views/collections/CollectionStackingView.tsx index eb70cec9d..1fd5c3f44 100644 --- a/src/client/views/collections/CollectionStackingView.tsx +++ b/src/client/views/collections/CollectionStackingView.tsx @@ -178,7 +178,6 @@ export class CollectionStackingView extends CollectionSubView(StackingDocument) LibraryPath={this.props.LibraryPath} FreezeDimensions={this.props.freezeChildDimensions} renderDepth={this.props.renderDepth + 1} - RenderData={this.props.RenderData} PanelWidth={width} PanelHeight={height} NativeHeight={returnZero} diff --git a/src/client/views/collections/CollectionSubView.tsx b/src/client/views/collections/CollectionSubView.tsx index aaea13ded..af642bc52 100644 --- a/src/client/views/collections/CollectionSubView.tsx +++ b/src/client/views/collections/CollectionSubView.tsx @@ -67,7 +67,7 @@ export function CollectionSubView(schemaCtor: (doc: Doc) => T, moreProps?: this.multiTouchDisposer?.(); if (ele) { this._mainCont = ele; - this.dropDisposer = DragManager.MakeDropTarget(ele, this.onInternalDrop.bind(this), this.layoutDoc); + this.dropDisposer = DragManager.MakeDropTarget(ele, this.onInternalDrop.bind(this), this.layoutDoc, this.onInternalPreDrop.bind(this)); this.gestureDisposer = GestureUtils.MakeGestureTarget(ele, this.onGesture.bind(this)); this.multiTouchDisposer = InteractionUtils.MakeMultiTouchTarget(ele, this.onTouchStart.bind(this)); } @@ -195,6 +195,15 @@ export function CollectionSubView(schemaCtor: (doc: Doc) => T, moreProps?: protected onGesture(e: Event, ge: GestureUtils.GestureEvent) { } + protected onInternalPreDrop(e: Event, de: DragManager.DropEvent) { + if (de.complete.docDragData) { + if (de.complete.docDragData.draggedDocuments.some(d => this.childDocs.includes(d))) { + de.complete.docDragData.dropAction = "move"; + } + e.stopPropagation(); + } + } + @undoBatch @action protected onInternalDrop(e: Event, de: DragManager.DropEvent): boolean { diff --git a/src/client/views/collections/CollectionView.tsx b/src/client/views/collections/CollectionView.tsx index d2afb4855..cb7d86e00 100644 --- a/src/client/views/collections/CollectionView.tsx +++ b/src/client/views/collections/CollectionView.tsx @@ -74,6 +74,7 @@ export enum CollectionViewType { export interface CollectionViewCustomProps { filterAddDocument: (doc: Doc) => boolean; // allows a document that renders a Collection view to filter or modify any documents added to the collection (see PresBox for an example) childLayoutTemplate?: () => Opt; // specify a layout Doc template to use for children of the collection + childLayoutString?: string; // specify a layout string to use for children of the collection } export interface CollectionRenderProps { @@ -478,6 +479,7 @@ export class CollectionView extends Touchable; } childLayoutTemplate = () => this.props.childLayoutTemplate?.() || Cast(this.props.Document.childLayoutTemplate, Doc, null); + childLayoutString = this.props.childLayoutString || StrCast(this.props.Document.childLayoutString); render() { TraceMobx(); @@ -489,7 +491,7 @@ export class CollectionView extends Touchable void; renderDepth: number; ContentScaling: () => number; - RenderData?: () => Doc; PanelWidth: () => number; PanelHeight: () => number; pointerEvents?: boolean; @@ -996,7 +995,6 @@ export class DocumentView extends DocComponent(Docu LayoutTemplate={this.props.LayoutTemplate} makeLink={this.makeLink} rootSelected={this.rootSelected} - RenderData={this.props.RenderData} dontRegisterView={this.props.dontRegisterView} fitToBox={this.props.fitToBox} LibraryPath={this.props.LibraryPath} diff --git a/src/client/views/nodes/FieldView.tsx b/src/client/views/nodes/FieldView.tsx index 40d55ce38..016d2a1ae 100644 --- a/src/client/views/nodes/FieldView.tsx +++ b/src/client/views/nodes/FieldView.tsx @@ -50,12 +50,13 @@ export interface FieldViewProps { setVideoBox?: (player: VideoBox) => void; ContentScaling: () => number; ChromeHeight?: () => number; - RenderData?: () => Doc; // properties intended to be used from within layout strings (otherwise use the function equivalents that work more efficiently with React) height?: number; width?: number; background?: string; color?: string; + xMargin?: number; + yMargin?: number; } @observer diff --git a/src/client/views/nodes/PresBox.tsx b/src/client/views/nodes/PresBox.tsx index 6e3420f22..53b6aa408 100644 --- a/src/client/views/nodes/PresBox.tsx +++ b/src/client/views/nodes/PresBox.tsx @@ -17,6 +17,8 @@ import "./PresBox.scss"; import { ViewBoxBaseComponent } from "../DocComponent"; import { makeInterface } from "../../../new_fields/Schema"; import { List } from "../../../new_fields/List"; +import { Docs } from "../../documents/Documents"; +import { PrefetchProxy } from "../../../new_fields/Proxy"; type PresBoxSchema = makeInterface<[typeof documentSchema]>; const PresBoxDocument = makeInterface(documentSchema); @@ -24,14 +26,32 @@ const PresBoxDocument = makeInterface(documentSchema); @observer export class PresBox extends ViewBoxBaseComponent(PresBoxDocument) { public static LayoutString(fieldKey: string) { return FieldView.LayoutString(PresBox, fieldKey); } + _docsDisposer: IReactionDisposer | undefined; + _viewDisposer: IReactionDisposer | undefined; @observable _isChildActive = false; @computed get childDocs() { return DocListCast(this.dataDoc[this.fieldKey]); } - @computed get currentIndex() { return NumCast(this.rootDoc._itemIndex); } + @computed get currentIndex() { return NumCast(this.presElement?.currentIndex); } + @computed get presElement() { return Cast(this.rootDoc.presElement, Doc, null); } + constructor(props: any) { + super(props); + if (!this.presElement) { + this.rootDoc.presElement = new PrefetchProxy(Docs.Create.PresElementBoxDocument({ + title: "pres element template", backgroundColor: "transparent", _xMargin: 5, _height: 46, isTemplateDoc: true, isTemplateForField: "data" + })); + } + } + + componentWillUnmount() { + this._docsDisposer?.(); + this._viewDisposer?.(); + } componentDidMount() { this.rootDoc.presBox = this.rootDoc; this.rootDoc._forceRenderEngine = "timeline"; this.rootDoc._replacedChrome = "replaced"; + this._docsDisposer = reaction(() => this.childDocs, docs => this.presElement.presOrderedDocs = new List(docs), { fireImmediately: true }); + this._viewDisposer = reaction(() => this.rootDoc._viewType, viewType => this.presElement.presCollapsedHeight = viewType === CollectionViewType.Tree ? 50 : 46, { fireImmediately: true }); } updateCurrentPresentation = () => Doc.UserDoc().activePresentation = this.rootDoc; @@ -166,17 +186,16 @@ export class PresBox extends ViewBoxBaseComponent } } - //The function that is called when a document is clicked or reached through next or back. //it'll also execute the necessary actions if presentation is playing. public gotoDocument = (index: number, fromDoc: number) => { this.updateCurrentPresentation(); Doc.UnBrushAllDocs(); if (index >= 0 && index < this.childDocs.length) { - this.rootDoc._itemIndex = index; + this.presElement.currentIndex = index; - if (!this.layoutDoc.presStatus) { - this.layoutDoc.presStatus = true; + if (!this.presElement.presStatus) { + this.presElement.presStatus = true; this.startPresentation(index); } @@ -189,10 +208,10 @@ export class PresBox extends ViewBoxBaseComponent //The function that starts or resets presentaton functionally, depending on status flag. startOrResetPres = () => { this.updateCurrentPresentation(); - if (this.layoutDoc.presStatus) { + if (this.presElement.presStatus) { this.resetPresentation(); } else { - this.layoutDoc.presStatus = true; + this.presElement.presStatus = true; this.startPresentation(0); this.gotoDocument(0, this.currentIndex); } @@ -204,7 +223,7 @@ export class PresBox extends ViewBoxBaseComponent this.updateCurrentPresentation(); this.childDocs.forEach(doc => (doc.presentationTargetDoc as Doc).opacity = 1); this.rootDoc._itemIndex = 0; - this.layoutDoc.presStatus = false; + this.presElement.presStatus = false; } //The function that starts the presentation, also checking if actions should be applied @@ -241,43 +260,31 @@ export class PresBox extends ViewBoxBaseComponent } }); - initializeViewAliases = (docList: Doc[], viewtype: CollectionViewType) => { - const hgt = (viewtype === CollectionViewType.Tree) ? 50 : 46; - this.rootDoc.presCollapsedHeight = hgt; - } + @undoBatch + viewChanged = action((e: React.ChangeEvent) => { + //@ts-ignore + const viewType = e.target.selectedOptions[0].value as CollectionViewType; + viewType === CollectionViewType.Stacking && (this.rootDoc._pivotField = undefined); // pivot field may be set by the user in timeline view (or some other way) -- need to reset it here + this.updateMinimize(e, this.rootDoc._viewType = viewType); + }); + whenActiveChanged = action((isActive: boolean) => this.props.whenActiveChanged(this._isChildActive = isActive)); addDocumentFilter = (doc: Doc) => { - doc.presentationTargetDoc = doc.aliasOf; + doc.aliasOf instanceof Doc && (doc.presentationTargetDoc = doc.aliasOf); + !this.childDocs.includes(doc) && (doc.presZoomButton = true); return true; } - + childLayoutTemplate = () => this.rootDoc._viewType !== CollectionViewType.Stacking ? undefined : this.presElement; removeDocument = (doc: Doc) => Doc.RemoveDocFromList(this.dataDoc, this.fieldKey, doc); - selectElement = (doc: Doc) => this.gotoDocument(this.childDocs.indexOf(doc), NumCast(this.rootDoc._itemIndex)); - getTransform = () => this.props.ScreenToLocalTransform().translate(-5, -65);// listBox padding-left and pres-box-cont minHeight - panelHeight = () => this.props.PanelHeight() - 20; - active = (outsideReaction?: boolean) => ((InkingControl.Instance.selectedTool === InkTool.None && !this.layoutDoc.isBackground) && (this.layoutDoc.forceActive || this.props.isSelected(outsideReaction) || this._isChildActive || this.props.renderDepth === 0) ? true : false) - whenActiveChanged = action((isActive: boolean) => this.props.whenActiveChanged(this._isChildActive = isActive)); - - @undoBatch - viewChanged = action((e: React.ChangeEvent) => { - //@ts-ignore - const viewType = e.target.selectedOptions[0].value as CollectionViewType; - viewType === CollectionViewType.Stacking && (this.rootDoc._pivotField = undefined); // pivot field may be set by the user in timeline view (or some other way) -- need to reset it here - this.updateMinimize(e, this.rootDoc._viewType = viewType); - }); - - returnSelf = () => this.rootDoc; - childLayoutTemplate = () => this.rootDoc._viewType === CollectionViewType.Stacking ? Cast(Doc.UserDoc()["template-presentation"], Doc, null) : undefined; render() { this.rootDoc.presOrderedDocs = new List(this.childDocs.map((child, i) => child)); const mode = StrCast(this.rootDoc._viewType) as CollectionViewType; - this.initializeViewAliases(this.childDocs, mode); return
{ + Doc.toggleNativeDimensions(this.layoutDoc, this.props.ContentScaling(), this.props.NativeWidth(), this.props.NativeHeight()); + } public static get DefaultLayout(): Doc | string | undefined { return Cast(Doc.UserDoc().defaultTextLayout, Doc, null) || StrCast(Doc.UserDoc().defaultTextLayout, null); @@ -438,6 +443,8 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp Doc.AddDocToList(Cast(Doc.UserDoc()["template-notes"], Doc, null), "data", this.rootDoc); }, icon: "eye" }); + //funcs.push({ description: `${this.Document._autoHeight ? "Variable Height" : "Auto Height"}`, event: () => this.layoutDoc._autoHeight = !this.layoutDoc._autoHeight, icon: "plus" }); + funcs.push({ description: !this.layoutDoc._nativeWidth || !this.layoutDoc._nativeHeight ? "Freeze" : "Unfreeze", event: this.toggleNativeDimensions, icon: "snowflake" }); funcs.push({ description: "Toggle Single Line", event: () => this.layoutDoc._singleLine = !this.layoutDoc._singleLine, icon: "expand-arrows-alt" }); funcs.push({ description: "Toggle Sidebar", event: () => this.layoutDoc._showSidebar = !this.layoutDoc._showSidebar, icon: "expand-arrows-alt" }); funcs.push({ description: "Toggle Dictation Icon", event: () => this.layoutDoc._showAudio = !this.layoutDoc._showAudio, icon: "expand-arrows-alt" }); @@ -649,10 +656,14 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp } } ); - this._disposers.height = reaction( + this._disposers.autoHeight = reaction( () => [this.layoutDoc[WidthSym](), this.layoutDoc._autoHeight], () => this.tryUpdateHeight() ); + this._disposers.height = reaction( + () => this.layoutDoc[HeightSym](), + height => height <= 20 && (this.layoutDoc._autoHeight = true) + ); this.setupEditor(this.config, this.props.fieldKey); @@ -1206,6 +1217,7 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp render() { TraceMobx(); const style: { [key: string]: any } = {}; + const scale = this.props.ContentScaling() * NumCast(this.layoutDoc.scale, 1); const divKeys = ["width", "height", "background"]; const replacer = (match: any, expr: string, offset: any, string: any) => { // bcz: this executes a script to convert a propery expression string: { script } into a value return ScriptField.MakeFunction(expr, { self: Doc.name, this: Doc.name })?.script.run({ self: this.rootDoc, this: this.layoutDoc }).result as string || ""; @@ -1258,6 +1270,10 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp
diff --git a/src/client/views/nodes/formattedText/FormattedTextBoxComment.tsx b/src/client/views/nodes/formattedText/FormattedTextBoxComment.tsx index 9ad5aafb8..a33717855 100644 --- a/src/client/views/nodes/formattedText/FormattedTextBoxComment.tsx +++ b/src/client/views/nodes/formattedText/FormattedTextBoxComment.tsx @@ -91,7 +91,7 @@ export class FormattedTextBoxComment { (doc: Doc, followLinkLocation: string) => textBox.props.addDocTab(doc, e.ctrlKey ? "inTab" : followLinkLocation)); } } else if (textBox && (FormattedTextBoxComment.tooltipText as any).href) { - textBox.props.addDocTab(Docs.Create.WebDocument((FormattedTextBoxComment.tooltipText as any).href, { title: (FormattedTextBoxComment.tooltipText as any).href, _width: 200, _height: 400 }), "onRight"); + textBox.props.addDocTab(Docs.Create.WebDocument((FormattedTextBoxComment.tooltipText as any).href, { title: (FormattedTextBoxComment.tooltipText as any).href, _width: 200, _height: 400, UseCors: true }), "onRight"); } keep && textBox && FormattedTextBoxComment.start !== undefined && textBox.adoptAnnotation( FormattedTextBoxComment.start, FormattedTextBoxComment.end, FormattedTextBoxComment.mark); diff --git a/src/new_fields/Doc.ts b/src/new_fields/Doc.ts index e0627fb37..a1e1e11b1 100644 --- a/src/new_fields/Doc.ts +++ b/src/new_fields/Doc.ts @@ -20,7 +20,6 @@ import { deleteProperty, getField, getter, makeEditable, makeReadOnly, setter, u import { Docs, DocumentOptions } from "../client/documents/Documents"; import { PdfField, VideoField, AudioField, ImageField } from "./URLField"; import { LinkManager } from "../client/util/LinkManager"; -import { string32 } from "../../deploy/assets/pdf.worker"; export namespace Field { export function toKeyValueString(doc: Doc, key: string): string { @@ -936,19 +935,28 @@ export namespace Doc { } } } - - export function freezeNativeDimensions(layoutDoc: Doc, width: number, height: number): void { - layoutDoc._autoHeight = false; - if (!layoutDoc._nativeWidth) { - layoutDoc._nativeWidth = NumCast(layoutDoc._width, width); - layoutDoc._nativeHeight = NumCast(layoutDoc._height, height); - } - } export function assignDocToField(doc: Doc, field: string, id: string) { DocServer.GetRefField(id).then(layout => layout instanceof Doc && (doc[field] = layout)); return id; } + export function toggleNativeDimensions(layoutDoc: Doc, contentScale: number, panelWidth: number, panelHeight: number) { + runInAction(() => { + if (layoutDoc._nativeWidth || layoutDoc._nativeHeight) { + layoutDoc.scale = NumCast(layoutDoc.scale, 1) * contentScale; + layoutDoc._nativeWidth = undefined; + layoutDoc._nativeHeight = undefined; + } + else { + layoutDoc._autoHeight = false; + if (!layoutDoc._nativeWidth) { + layoutDoc._nativeWidth = NumCast(layoutDoc._width, panelWidth); + layoutDoc._nativeHeight = NumCast(layoutDoc._height, panelHeight); + } + } + }); + } + export function isDocPinned(doc: Doc) { //add this new doc to props.Document const curPres = Cast(Doc.UserDoc().activePresentation, Doc) as Doc; diff --git a/src/server/authentication/models/current_user_utils.ts b/src/server/authentication/models/current_user_utils.ts index bebf77a8c..b6ff10bab 100644 --- a/src/server/authentication/models/current_user_utils.ts +++ b/src/server/authentication/models/current_user_utils.ts @@ -315,7 +315,7 @@ export class CurrentUserUtils { { _width: 250, _height: 250, title: "container" }); } if (doc.emptyWebpage === undefined) { - doc.emptyWebpage = Docs.Create.WebDocument("", { title: "New Webpage", _width: 600 }); + doc.emptyWebpage = Docs.Create.WebDocument("", { title: "New Webpage", _width: 600, UseCors: true }); } return [ { title: "Drag a collection", label: "Col", icon: "folder", click: 'openOnRight(getCopy(this.dragFactory, true))', drag: 'getCopy(this.dragFactory, true)', dragFactory: doc.emptyCollection as Doc }, -- cgit v1.2.3-70-g09d2 From f1473fc5bf7f2b3109be358ae14d28725240284c Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Mon, 11 May 2020 22:30:33 -0400 Subject: cleaned up menu items. improved snapping with fixed aspect items, but not perfect. --- src/client/documents/Documents.ts | 1 + src/client/util/DragManager.ts | 14 ++-- src/client/views/DocumentDecorations.tsx | 41 ++++++++++-- src/client/views/MainView.tsx | 4 +- .../views/collections/CollectionDockingView.tsx | 2 +- src/client/views/collections/CollectionView.tsx | 1 - .../collectionFreeForm/CollectionFreeFormView.tsx | 21 +++--- src/client/views/nodes/DocumentView.tsx | 75 ++++++++-------------- src/client/views/nodes/ImageBox.tsx | 4 +- .../views/nodes/formattedText/FormattedTextBox.tsx | 37 ++++------- 10 files changed, 101 insertions(+), 99 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index a87a77e1d..95b8daafc 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -150,6 +150,7 @@ export interface DocumentOptions { dragFactory?: Doc; // document to create when dragging with a suitable onDragStart script onDragStart?: ScriptField; //script to execute at start of drag operation -- e.g., when a "creator" button is dragged this script generates a different document to drop clipboard?: Doc; + UseCors?: boolean; icon?: string; sourcePanel?: Doc; // panel to display in 'targetContainer' as the result of a button onClick script targetContainer?: Doc; // document whose proto will be set to 'panel' as the result of a onClick click script diff --git a/src/client/util/DragManager.ts b/src/client/util/DragManager.ts index 4f547e2f7..1ee4c57a2 100644 --- a/src/client/util/DragManager.ts +++ b/src/client/util/DragManager.ts @@ -256,7 +256,8 @@ export namespace DragManager { SnappingManager.setSnapLines(horizLines, vertLines); } - export function snapDrag(e: PointerEvent, xFromLeft: number, yFromTop: number, xFromRight: number, yFromBottom: number) { + // snap to the active snap lines - if oneAxis is set (eg, for maintaining aspect ratios), then it only snaps to the nearest horizontal/vertical line + export function snapDrag(e: PointerEvent, xFromLeft: number, yFromTop: number, xFromRight: number, yFromBottom: number, oneAxis: boolean = false) { const snapThreshold = NumCast(Doc.UserDoc()["constants-snapThreshold"], 10); const snapVal = (pts: number[], drag: number, snapLines: number[]) => { if (snapLines.length) { @@ -265,14 +266,15 @@ export namespace DragManager { const closestPts = rangePts.map(pt => snapLines.reduce((nearest, curr) => Math.abs(nearest - pt) > Math.abs(curr - pt) ? curr : nearest)); const closestDists = rangePts.map((pt, i) => Math.abs(pt - closestPts[i])); const minIndex = closestDists[0] < closestDists[1] && closestDists[0] < closestDists[2] ? 0 : closestDists[1] < closestDists[2] ? 1 : 2; - return closestDists[minIndex] < snapThreshold ? closestPts[minIndex] + offs[minIndex] : drag; + return closestDists[minIndex] < snapThreshold ? [closestDists[minIndex], closestPts[minIndex] + offs[minIndex]] : [Number.MAX_VALUE, drag]; } - return drag; + return [Number.MAX_VALUE, drag]; }; - + const xsnap = snapVal([xFromLeft, xFromRight], e.pageX, SnappingManager.vertSnapLines()); + const ysnap = snapVal([yFromTop, yFromBottom], e.pageY, SnappingManager.horizSnapLines()); return { - thisX: snapVal([xFromLeft, xFromRight], e.pageX, SnappingManager.vertSnapLines()), - thisY: snapVal([yFromTop, yFromBottom], e.pageY, SnappingManager.horizSnapLines()) + thisX: !oneAxis || xsnap[0] < ysnap[0] ? xsnap[1] : e.pageX, + thisY: !oneAxis || xsnap[0] > ysnap[0] ? ysnap[1] : e.pageY }; } export let docsBeingDragged: Doc[] = []; diff --git a/src/client/views/DocumentDecorations.tsx b/src/client/views/DocumentDecorations.tsx index a3c476125..b939d96b6 100644 --- a/src/client/views/DocumentDecorations.tsx +++ b/src/client/views/DocumentDecorations.tsx @@ -20,7 +20,6 @@ import React = require("react"); import { Id } from '../../new_fields/FieldSymbols'; import e = require('express'); import { CollectionDockingView } from './collections/CollectionDockingView'; -import { MainView } from './MainView'; import { SnappingManager } from '../util/SnappingManager'; library.add(faCaretUp); @@ -238,6 +237,7 @@ export class DocumentDecorations extends React.Component<{}, { value: string }> } _initialAutoHeight = false; + _dragHeights = new Map(); @action onPointerDown = (e: React.PointerEvent): void => { setupMoveUpEvents(this, e, this.onPointerMove, this.onPointerUp, (e) => { }); @@ -253,17 +253,38 @@ export class DocumentDecorations extends React.Component<{}, { value: string }> this._snapX = e.pageX; this._snapY = e.pageY; this._initialAutoHeight = true; + DragManager.docsBeingDragged = SelectionManager.SelectedDocuments().map(dv => dv.rootDoc); + SelectionManager.SelectedDocuments().map(dv => { + this._dragHeights.set(dv.layoutDoc, NumCast(dv.layoutDoc._height)); + dv.layoutDoc._delayAutoHeight = dv.layoutDoc._height; + }); } onPointerMove = (e: PointerEvent, down: number[], move: number[]): boolean => { - const { thisX, thisY } = DragManager.snapDrag(e, -this._offX, -this._offY, this._offX, this._offY); + const first = SelectionManager.SelectedDocuments()[0]; + const fixedAspect = NumCast(first.layoutDoc._nativeWidth) !== 0; + let { thisX, thisY } = DragManager.snapDrag(e, -this._offX, -this._offY, this._offX, this._offY, fixedAspect); + if (fixedAspect) { // if aspect is set, then any snapped movement must be coerced to match the aspect ratio + const aspect = NumCast(first.layoutDoc._nativeWidth) / NumCast(first.layoutDoc._nativeHeight); + const deltaX = thisX - this._snapX; + const deltaY = thisY - this._snapY; + if (thisX !== e.pageX) { + const snapY = deltaX / aspect + this._snapY; + thisY = Math.abs(deltaX / aspect) < 10 ? snapY : thisY; + } else { + const snapX = deltaY * aspect + this._snapX; + thisX = Math.abs(deltaY * aspect) < 10 ? snapX : thisX; + } + } move[0] = thisX - this._snapX; move[1] = thisY - this._snapY; this._snapX = thisX; this._snapY = thisY; let dX = 0, dY = 0, dW = 0, dH = 0; - + const unfreeze = () => + SelectionManager.SelectedDocuments().forEach(action((element: DocumentView) => + (element.rootDoc.type === DocumentType.RTF && element.layoutDoc._nativeHeight) && element.toggleNativeDimensions())); switch (this._resizeHdlId) { case "": break; case "documentDecorations-topLeftResizer": @@ -278,6 +299,7 @@ export class DocumentDecorations extends React.Component<{}, { value: string }> dH = -move[1]; break; case "documentDecorations-topResizer": + unfreeze(); dY = -1; dH = -move[1]; break; @@ -291,13 +313,16 @@ export class DocumentDecorations extends React.Component<{}, { value: string }> dH = move[1]; break; case "documentDecorations-bottomResizer": + unfreeze(); dH = move[1]; break; case "documentDecorations-leftResizer": + unfreeze(); dX = -1; dW = -move[0]; break; case "documentDecorations-rightResizer": + unfreeze(); dW = move[0]; break; } @@ -309,9 +334,12 @@ export class DocumentDecorations extends React.Component<{}, { value: string }> let nwidth = doc._nativeWidth || 0; let nheight = doc._nativeHeight || 0; const width = (doc._width || 0); - const height = (doc._height || (nheight / nwidth * width)); + let height = (doc._height || (nheight / nwidth * width)); const scale = element.props.ScreenToLocalTransform().Scale * element.props.ContentScaling(); if (nwidth && nheight) { + if (nwidth / nheight !== width / height) { + height = nheight / nwidth * width; + } if (Math.abs(dW) > Math.abs(dH)) dH = dW * nheight / nwidth; else dW = dH * nwidth / nheight; } @@ -365,7 +393,10 @@ export class DocumentDecorations extends React.Component<{}, { value: string }> @action onPointerUp = (e: PointerEvent): void => { SelectionManager.SelectedDocuments().map(dv => { - dv.layoutDoc._delayAutoHeight && (dv.layoutDoc._autoHeight = true); + if (NumCast(dv.layoutDoc._delayAutoHeight) < this._dragHeights.get(dv.layoutDoc)!) { + dv.nativeWidth > 0 && Doc.toggleNativeDimensions(dv.layoutDoc, dv.props.ContentScaling(), dv.panelWidth(), dv.panelHeight()); + dv.layoutDoc._autoHeight = true; + } dv.layoutDoc._delayAutoHeight = undefined; }); this._resizeHdlId = ""; diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx index 62496b01f..9bfef06b4 100644 --- a/src/client/views/MainView.tsx +++ b/src/client/views/MainView.tsx @@ -83,14 +83,14 @@ export class MainView extends React.Component { firstScriptTag.parentNode!.insertBefore(tag, firstScriptTag); window.removeEventListener("keydown", KeyManager.Instance.handle); window.addEventListener("keydown", KeyManager.Instance.handle); - window.addEventListener("paste", KeyManager.Instance.paste); + window.addEventListener("paste", KeyManager.Instance.paste as any); } componentWillUnMount() { window.removeEventListener("keydown", KeyManager.Instance.handle); window.removeEventListener("pointerdown", this.globalPointerDown); window.removeEventListener("pointerup", this.globalPointerUp); - window.removeEventListener("paste", KeyManager.Instance.paste); + window.removeEventListener("paste", KeyManager.Instance.paste as any); } constructor(props: Readonly<{}>) { diff --git a/src/client/views/collections/CollectionDockingView.tsx b/src/client/views/collections/CollectionDockingView.tsx index 50e3b73eb..2e24cbb12 100644 --- a/src/client/views/collections/CollectionDockingView.tsx +++ b/src/client/views/collections/CollectionDockingView.tsx @@ -757,7 +757,7 @@ export class DockedFrameRenderer extends React.Component { get layoutDoc() { return this._document && Doc.Layout(this._document); } nativeAspect = () => this.nativeWidth() ? this.nativeWidth() / this.nativeHeight() : 0; panelWidth = () => this.layoutDoc?.maxWidth ? Math.min(Math.max(NumCast(this.layoutDoc._width), NumCast(this.layoutDoc._nativeWidth)), this._panelWidth) : - (this.nativeAspect() && this.nativeAspect() < this._panelWidth / this._panelHeight ? this._panelHeight * this.nativeAspect() : this._panelWidth); + (this.nativeAspect() && this.nativeAspect() < this._panelWidth / this._panelHeight ? this._panelHeight * this.nativeAspect() : this._panelWidth) panelHeight = () => this.nativeAspect() && this.nativeAspect() > this._panelWidth / this._panelHeight ? this._panelWidth / this.nativeAspect() : this._panelHeight; nativeWidth = () => !this.layoutDoc!._fitWidth ? NumCast(this.layoutDoc!._nativeWidth) || this._panelWidth : 0; diff --git a/src/client/views/collections/CollectionView.tsx b/src/client/views/collections/CollectionView.tsx index ac9f64d94..0f239d385 100644 --- a/src/client/views/collections/CollectionView.tsx +++ b/src/client/views/collections/CollectionView.tsx @@ -234,7 +234,6 @@ export class CollectionView extends Touchable { if (!e.isPropagationStopped() && this.props.Document[Id] !== CurrentUserUtils.MainDocId) { // need to test this because GoldenLayout causes a parallel hierarchy in the React DOM for its children and the main document view7 - this.setupViewTypes("Change Perspective...", (vtype => { this.props.Document._viewType = vtype; return this.props.Document; }), true); this.setupViewTypes("Add a Perspective...", vtype => { const newRendition = Doc.MakeAlias(this.props.Document); newRendition._viewType = vtype; diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index 129b245b8..6caee960d 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -1133,19 +1133,25 @@ export class CollectionFreeFormView extends CollectionSubView { - if (this.props.children && this.props.annotationsKey) return; + if (this.props.annotationsKey) return; + + ContextMenu.Instance.addItem({ + description: (this._timelineVisible ? "Close" : "Open") + " Animation Timeline", event: action(() => { + this._timelineVisible = !this._timelineVisible; + }), icon: this._timelineVisible ? faEyeSlash : faEye + }); + const options = ContextMenu.Instance.findByDescription("Options..."); const optionItems: ContextMenuProps[] = options && "subitems" in options ? options.subitems : []; optionItems.push({ description: "reset view", event: () => { this.props.Document._panX = this.props.Document._panY = 0; this.props.Document.scale = 1; }, icon: "compress-arrows-alt" }); - optionItems.push({ description: !this.layoutDoc._nativeWidth || !this.layoutDoc._nativeHeight ? "Freeze" : "Unfreeze", event: this.toggleNativeDimensions, icon: "snowflake" }); - optionItems.push({ description: `${this.Document._LODdisable ? "Enable LOD" : "Disable LOD"}`, event: () => this.Document._LODdisable = !this.Document._LODdisable, icon: "table" }); + optionItems.push({ description: "Reset default note style", event: () => Doc.UserDoc().defaultTextLayout = undefined, icon: "eye" }); + optionItems.push({ description: (!this.layoutDoc._nativeWidth || !this.layoutDoc._nativeHeight ? "Freeze" : "Unfreeze") + " Aspect", event: this.toggleNativeDimensions, icon: "snowflake" }); optionItems.push({ description: `${this.fitToContent ? "Unset" : "Set"} Fit To Container`, event: () => this.Document._fitToBox = !this.fitToContent, icon: !this.fitToContent ? "expand-arrows-alt" : "compress-arrows-alt" }); optionItems.push({ description: `${this.Document.useClusters ? "Uncluster" : "Use Clusters"}`, event: () => this.updateClusters(!this.Document.useClusters), icon: "braille" }); this.props.ContainingCollectionView && optionItems.push({ description: "Promote Collection", event: this.promoteCollection, icon: "table" }); optionItems.push({ description: "Arrange contents in grid", event: this.layoutDocsInGrid, icon: "table" }); // layoutItems.push({ description: "Analyze Strokes", event: this.analyzeStrokes, icon: "paint-brush" }); - optionItems.push({ description: "Jitter Rotation", event: action(() => this.props.Document._jitterRotation = (this.props.Document._jitterRotation ? 0 : 10)), icon: "paint-brush" }); optionItems.push({ description: "Import document", icon: "upload", event: ({ x, y }) => { const input = document.createElement("input"); @@ -1173,14 +1179,9 @@ export class CollectionFreeFormView extends CollectionSubView this.Document._LODdisable = !this.Document._LODdisable, icon: "table" }); ContextMenu.Instance.addItem({ description: "Options...", subitems: optionItems, icon: "eye" }); - - ContextMenu.Instance.addItem({ - description: (this._timelineVisible ? "Close" : "Open") + " Animation Timeline", event: action(() => { - this._timelineVisible = !this._timelineVisible; - }), icon: this._timelineVisible ? faEyeSlash : faEye - }); } @observable _timelineVisible = false; diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx index 5cccec776..1bf297796 100644 --- a/src/client/views/nodes/DocumentView.tsx +++ b/src/client/views/nodes/DocumentView.tsx @@ -704,7 +704,6 @@ export class DocumentView extends DocComponent(Docu } const cm = ContextMenu.Instance; - const templateDoc = Cast(this.props.Document[StrCast(this.props.Document.layoutKey)], Doc, null); const customScripts = Cast(this.props.Document.contextMenuScripts, listSpec(ScriptField), []); Cast(this.props.Document.contextMenuLabels, listSpec("string"), []).forEach((label, i) => @@ -713,25 +712,16 @@ export class DocumentView extends DocComponent(Docu cm.addItem({ description: item.label, event: () => item.script.script.run({ this: this.layoutDoc, self: this.rootDoc }), icon: "sticky-note" })); - let open = cm.findByDescription("Add a Perspective..."); - const openItems: ContextMenuProps[] = open && "subitems" in open ? open.subitems : []; - openItems.push({ description: "New Echo ", event: () => this.props.addDocTab(Doc.MakeAlias(this.props.Document), "onRight"), icon: "layer-group" }); - openItems.push({ description: "Open Fields ", event: () => this.props.addDocTab(Docs.Create.KVPDocument(this.props.Document, { _width: 300, _height: 300 }), "onRight"), icon: "layer-group" }); - templateDoc && openItems.push({ description: "Open Template ", event: () => this.props.addDocTab(templateDoc, "onRight"), icon: "eye" }); - if (!open) { - open = { description: "Add a Perspective....", subitems: openItems, icon: "external-link-alt" }; - cm.addItem(open); - } - let options = cm.findByDescription("Options..."); const optionItems: ContextMenuProps[] = options && "subitems" in options ? options.subitems : []; + const templateDoc = Cast(this.props.Document[StrCast(this.props.Document.layoutKey)], Doc, null); + optionItems.push({ description: "Open Fields ", event: () => this.props.addDocTab(Docs.Create.KVPDocument(this.props.Document, { _width: 300, _height: 300 }), "onRight"), icon: "layer-group" }); + templateDoc && optionItems.push({ description: "Open Template ", event: () => this.props.addDocTab(templateDoc, "onRight"), icon: "eye" }); if (!options) { options = { description: "Options...", subitems: optionItems, icon: "compass" }; cm.addItem(options); } - cm.moveAfter(options, open); - const existingOnClick = cm.findByDescription("OnClick..."); const onClicks: ContextMenuProps[] = existingOnClick && "subitems" in existingOnClick ? existingOnClick.subitems : []; onClicks.push({ description: "Enter Portal", event: this.makeIntoPortal, icon: "window-restore" }); @@ -764,9 +754,6 @@ export class DocumentView extends DocComponent(Docu moreItems.push({ description: "Copy ID", event: () => Utils.CopyText(this.props.Document[Id]), icon: "fingerprint" }); // cm.addItem({ description: "Copy...", subitems: copies, icon: "copy" }); } - if (Cast(this.props.Document.data, ImageField)) { - moreItems.push({ description: "Export to Google Photos", event: () => GooglePhotos.Transactions.UploadImages([this.props.Document]), icon: "caret-square-right" }); - } if (Cast(Doc.GetProto(this.props.Document).data, listSpec(Doc))) { moreItems.push({ description: "Export to Google Photos Album", event: () => GooglePhotos.Export.CollectionToAlbum({ collection: this.props.Document }).then(console.log), icon: "caret-square-right" }); moreItems.push({ description: "Tag Child Images via Google Photos", event: () => GooglePhotos.Query.TagChildImages(this.props.Document), icon: "caret-square-right" }); @@ -820,47 +807,38 @@ export class DocumentView extends DocComponent(Docu cm.moveAfter(cm.findByDescription("More...")!, cm.findByDescription("OnClick...")!); runInAction(() => { - if (!ClientUtils.RELEASE) { - const setWriteMode = (mode: DocServer.WriteMode) => { - DocServer.AclsMode = mode; - const mode1 = mode; - const mode2 = mode === DocServer.WriteMode.Default ? mode : DocServer.WriteMode.Playground; - DocServer.setFieldWriteMode("x", mode1); - DocServer.setFieldWriteMode("y", mode1); - DocServer.setFieldWriteMode("_width", mode1); - DocServer.setFieldWriteMode("_height", mode1); - - DocServer.setFieldWriteMode("_panX", mode2); - DocServer.setFieldWriteMode("_panY", mode2); - DocServer.setFieldWriteMode("scale", mode2); - DocServer.setFieldWriteMode("_viewType", mode2); - }; - const aclsMenu: ContextMenuProps[] = []; - aclsMenu.push({ description: "Default (write/read all)", event: () => setWriteMode(DocServer.WriteMode.Default), icon: DocServer.AclsMode === DocServer.WriteMode.Default ? "check" : "exclamation" }); - aclsMenu.push({ description: "Playground (write own/no read)", event: () => setWriteMode(DocServer.WriteMode.Playground), icon: DocServer.AclsMode === DocServer.WriteMode.Playground ? "check" : "exclamation" }); - aclsMenu.push({ description: "Live Playground (write own/read others)", event: () => setWriteMode(DocServer.WriteMode.LivePlayground), icon: DocServer.AclsMode === DocServer.WriteMode.LivePlayground ? "check" : "exclamation" }); - aclsMenu.push({ description: "Live Readonly (no write/read others)", event: () => setWriteMode(DocServer.WriteMode.LiveReadonly), icon: DocServer.AclsMode === DocServer.WriteMode.LiveReadonly ? "check" : "exclamation" }); - cm.addItem({ description: "Collaboration ACLs...", subitems: aclsMenu, icon: "share" }); - } + const setWriteMode = (mode: DocServer.WriteMode) => { + DocServer.AclsMode = mode; + const mode1 = mode; + const mode2 = mode === DocServer.WriteMode.Default ? mode : DocServer.WriteMode.Playground; + DocServer.setFieldWriteMode("x", mode1); + DocServer.setFieldWriteMode("y", mode1); + DocServer.setFieldWriteMode("_width", mode1); + DocServer.setFieldWriteMode("_height", mode1); + + DocServer.setFieldWriteMode("_panX", mode2); + DocServer.setFieldWriteMode("_panY", mode2); + DocServer.setFieldWriteMode("scale", mode2); + DocServer.setFieldWriteMode("_viewType", mode2); + }; + const aclsMenu: ContextMenuProps[] = []; + aclsMenu.push({ description: "Share", event: () => SharingManager.Instance.open(this), icon: "external-link-alt" }); + aclsMenu.push({ description: "Default (write/read all)", event: () => setWriteMode(DocServer.WriteMode.Default), icon: DocServer.AclsMode === DocServer.WriteMode.Default ? "check" : "exclamation" }); + aclsMenu.push({ description: "Playground (write own/no read)", event: () => setWriteMode(DocServer.WriteMode.Playground), icon: DocServer.AclsMode === DocServer.WriteMode.Playground ? "check" : "exclamation" }); + aclsMenu.push({ description: "Live Playground (write own/read others)", event: () => setWriteMode(DocServer.WriteMode.LivePlayground), icon: DocServer.AclsMode === DocServer.WriteMode.LivePlayground ? "check" : "exclamation" }); + aclsMenu.push({ description: "Live Readonly (no write/read others)", event: () => setWriteMode(DocServer.WriteMode.LiveReadonly), icon: DocServer.AclsMode === DocServer.WriteMode.LiveReadonly ? "check" : "exclamation" }); + cm.addItem({ description: "Collaboration ...", subitems: aclsMenu, icon: "share" }); }); runInAction(() => { - cm.addItem({ - description: "Share", - event: () => SharingManager.Instance.open(this), - icon: "external-link-alt" - }); - if (!this.topMost && !(e instanceof Touch)) { // DocumentViews should stop propagation of this event e.stopPropagation(); } ContextMenu.Instance.displayMenu(e.pageX - 15, e.pageY - 15); - if (!SelectionManager.IsSelected(this, true)) { - SelectionManager.SelectDoc(this, false); - } + !SelectionManager.IsSelected(this, true) && SelectionManager.SelectDoc(this, false); }); const path = this.props.LibraryPath.reduce((p: string, d: Doc) => p + "/" + (Doc.AreProtosEqual(d, (Doc.UserDoc()["tabs-button-library"] as Doc).sourcePanel as Doc) ? "" : d.title), ""); - cm.addItem({ + const item = ({ description: `path: ${path}`, event: () => { if (this.props.LibraryPath !== emptyPath) { this.props.LibraryPath.map(lp => Doc.GetProto(lp).treeViewOpen = lp.treeViewOpen = true); @@ -870,6 +848,7 @@ export class DocumentView extends DocComponent(Docu } }, icon: "check" }); + //cm.addItem(item); } recommender = async () => { diff --git a/src/client/views/nodes/ImageBox.tsx b/src/client/views/nodes/ImageBox.tsx index d85373e98..aaebceaa2 100644 --- a/src/client/views/nodes/ImageBox.tsx +++ b/src/client/views/nodes/ImageBox.tsx @@ -29,6 +29,7 @@ import FaceRectangles from './FaceRectangles'; import { FieldView, FieldViewProps } from './FieldView'; import "./ImageBox.scss"; import React = require("react"); +import { GooglePhotos } from '../../apis/google_docs/GooglePhotosClientUtils'; const requestImageSize = require('../../util/request-image-size'); const path = require('path'); const { Howl } = require('howler'); @@ -158,6 +159,8 @@ export class ImageBox extends ViewBoxAnnotatableComponent GooglePhotos.Transactions.UploadImages([this.props.Document]), icon: "caret-square-right" }); + funcs.push({ description: "Copy path", event: () => Utils.CopyText(field.url.href), icon: "expand-arrows-alt" }); // funcs.push({ // description: "Reset Native Dimensions", event: action(async () => { // const curNW = NumCast(this.dataDoc[this.fieldKey + "-nativeWidth"]); @@ -184,7 +187,6 @@ export class ImageBox extends ViewBoxAnnotatableComponent Utils.CopyText(field.url.href), icon: "expand-arrows-alt" }); !existingMore && ContextMenu.Instance.addItem({ description: "More...", subitems: mores, icon: "hand-point-right" }); } } diff --git a/src/client/views/nodes/formattedText/FormattedTextBox.tsx b/src/client/views/nodes/formattedText/FormattedTextBox.tsx index 3a586ff66..23bf86a32 100644 --- a/src/client/views/nodes/formattedText/FormattedTextBox.tsx +++ b/src/client/views/nodes/formattedText/FormattedTextBox.tsx @@ -419,9 +419,8 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp const funcs: ContextMenuProps[] = []; this.rootDoc.isTemplateDoc && funcs.push({ description: "Make Default Layout", event: async () => Doc.UserDoc().defaultTextLayout = new PrefetchProxy(this.rootDoc), icon: "eye" }); - funcs.push({ description: "Reset Default Layout", event: () => Doc.UserDoc().defaultTextLayout = undefined, icon: "eye" }); !this.layoutDoc.isTemplateDoc && funcs.push({ - description: "Make Template", event: () => { + description: "Convert to use as a style", event: () => { this.rootDoc.isTemplateDoc = makeTemplate(this.rootDoc); Doc.AddDocToList(Cast(Doc.UserDoc()["template-notes"], Doc, null), "data", this.rootDoc); }, icon: "eye" @@ -444,11 +443,15 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp }, icon: "eye" }); //funcs.push({ description: `${this.Document._autoHeight ? "Variable Height" : "Auto Height"}`, event: () => this.layoutDoc._autoHeight = !this.layoutDoc._autoHeight, icon: "plus" }); - funcs.push({ description: !this.layoutDoc._nativeWidth || !this.layoutDoc._nativeHeight ? "Freeze" : "Unfreeze", event: this.toggleNativeDimensions, icon: "snowflake" }); + funcs.push({ description: (!this.layoutDoc._nativeWidth || !this.layoutDoc._nativeHeight ? "Freeze" : "Unfreeze") + " Aspect", event: this.toggleNativeDimensions, icon: "snowflake" }); funcs.push({ description: "Toggle Single Line", event: () => this.layoutDoc._singleLine = !this.layoutDoc._singleLine, icon: "expand-arrows-alt" }); - funcs.push({ description: "Toggle Sidebar", event: () => this.layoutDoc._showSidebar = !this.layoutDoc._showSidebar, icon: "expand-arrows-alt" }); - funcs.push({ description: "Toggle Dictation Icon", event: () => this.layoutDoc._showAudio = !this.layoutDoc._showAudio, icon: "expand-arrows-alt" }); - funcs.push({ description: "Toggle Menubar", event: () => this.toggleMenubar(), icon: "expand-arrows-alt" }); + + const uicontrols: ContextMenuProps[] = []; + uicontrols.push({ description: "Toggle Sidebar", event: () => this.layoutDoc._showSidebar = !this.layoutDoc._showSidebar, icon: "expand-arrows-alt" }); + uicontrols.push({ description: "Toggle Dictation Icon", event: () => this.layoutDoc._showAudio = !this.layoutDoc._showAudio, icon: "expand-arrows-alt" }); + uicontrols.push({ description: "Toggle Menubar", event: () => this.toggleMenubar(), icon: "expand-arrows-alt" }); + + funcs.push({ description: "UI Controls...", subitems: uicontrols, icon: "asterisk" }); const highlighting: ContextMenuProps[] = []; ["My Text", "Text from Others", "Todo Items", "Important Items", "Ignore Items", "Disagree Items", "By Recent Minute", "By Recent Hour"].forEach(option => @@ -481,19 +484,6 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp }); changeItems.push({ description: "FreeForm", event: undoBatch(() => Doc.makeCustomViewClicked(this.rootDoc, Docs.Create.FreeformDocument, "freeform"), "change view"), icon: "eye" }); !change && cm.addItem({ description: "Change Perspective...", subitems: changeItems, icon: "external-link-alt" }); - - const open = cm.findByDescription("Add a Perspective..."); - const openItems: ContextMenuProps[] = open && "subitems" in open ? open.subitems : []; - - openItems.push({ - description: "FreeForm", event: undoBatch(() => { - const alias = Doc.MakeAlias(this.rootDoc); - Doc.makeCustomViewClicked(alias, Docs.Create.FreeformDocument, "freeform"); - this.props.addDocTab(alias, "onRight"); - }), icon: "eye" - }); - !open && cm.addItem({ description: "Add a Perspective...", subitems: openItems, icon: "external-link-alt" }); - } recordDictation = () => { @@ -663,11 +653,8 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp this._disposers.height = reaction( () => this.layoutDoc[HeightSym](), action(height => { - if (height <= 20) { - if (this.layoutDoc._nativeWidth || this.layoutDoc._nativeHeight) { - Doc.toggleNativeDimensions(this.layoutDoc, this.props.ContentScaling(), this.props.PanelWidth(), this.props.PanelHeight()); - } - this.layoutDoc._delayAutoHeight = true; + if (height <= 20 && height < NumCast(this.layoutDoc._delayAutoHeight, 20)) { + this.layoutDoc._delayAutoHeight = height; } }) ); @@ -1202,7 +1189,7 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp const dh = NumCast(this.rootDoc._height, 0); const newHeight = Math.max(10, (nh ? dh / nh * scrollHeight : scrollHeight) + (this.props.ChromeHeight ? this.props.ChromeHeight() : 0)); if (Math.abs(newHeight - dh) > 1) { // bcz: Argh! without this, we get into a React crash if the same document is opened in a freeform view and in the treeview. no idea why, but after dragging the freeform document, selecting it, and selecting text, it will compute to 1 pixel higher than the treeview which causes a cycle - if (this.rootDoc !== this.layoutDoc && !this.layoutDoc.resolvedDataDoc) { + if (this.rootDoc !== this.layoutDoc.doc && !this.layoutDoc.resolvedDataDoc) { // if we have a template that hasn't been resolved yet, we can't set the height or we'd be setting it on the unresolved template. So set a timeout and hope its arrived... console.log("Delayed height adjustment..."); setTimeout(() => { -- cgit v1.2.3-70-g09d2 From 3911cf85eaf57c133166a6bd08732193ac74d885 Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Tue, 12 May 2020 12:10:21 -0400 Subject: changed isBackground setting to reset nativeW/H to W/H. fixed presBox reordering. fixed resizing of fixedAspect suff from sides. --- src/client/views/DocumentDecorations.tsx | 2 +- src/client/views/collections/CollectionDockingView.tsx | 1 + src/client/views/collections/CollectionStackingView.tsx | 2 +- src/client/views/nodes/DocumentView.tsx | 6 +++++- src/client/views/nodes/PresBox.tsx | 6 +++--- 5 files changed, 11 insertions(+), 6 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/views/DocumentDecorations.tsx b/src/client/views/DocumentDecorations.tsx index 3cd7f8da3..313d8be23 100644 --- a/src/client/views/DocumentDecorations.tsx +++ b/src/client/views/DocumentDecorations.tsx @@ -264,7 +264,7 @@ export class DocumentDecorations extends React.Component<{}, { value: string }> const first = SelectionManager.SelectedDocuments()[0]; let thisPt = { thisX: e.clientX - this._offX, thisY: e.clientY - this._offY }; const fixedAspect = first.layoutDoc._nativeWidth ? NumCast(first.layoutDoc._nativeWidth) / NumCast(first.layoutDoc._nativeHeight) : 0; - if (fixedAspect) { // need to generalize for bl and tr drag handles + if (fixedAspect && (this._resizeHdlId === "documentDecorations-bottomRightResizer" || this._resizeHdlId === "documentDecorations-topLeftResizer")) { // need to generalize for bl and tr drag handles const project = (p: number[], a: number[], b: number[]) => { var atob = [b[0] - a[0], b[1] - a[1]]; var atop = [p[0] - a[0], p[1] - a[1]]; diff --git a/src/client/views/collections/CollectionDockingView.tsx b/src/client/views/collections/CollectionDockingView.tsx index 2e24cbb12..581625222 100644 --- a/src/client/views/collections/CollectionDockingView.tsx +++ b/src/client/views/collections/CollectionDockingView.tsx @@ -707,6 +707,7 @@ export class DockedFrameRenderer extends React.Component { const pinDoc = Doc.MakeAlias(doc); pinDoc.presentationTargetDoc = doc; pinDoc.presZoomButton = true; + pinDoc.context = curPres; Doc.AddDocToList(curPres, "data", pinDoc); if (!DocumentManager.Instance.getDocumentView(curPres)) { CollectionDockingView.AddRightSplit(curPres); diff --git a/src/client/views/collections/CollectionStackingView.tsx b/src/client/views/collections/CollectionStackingView.tsx index 979e9e3f8..97459d910 100644 --- a/src/client/views/collections/CollectionStackingView.tsx +++ b/src/client/views/collections/CollectionStackingView.tsx @@ -73,7 +73,7 @@ export class CollectionStackingView extends CollectionSubView(StackingDocument) const width = () => this.getDocWidth(d); const dref = React.createRef(); const dxf = () => this.getDocTransform(d, dref.current!); - this._docXfs.push({ dxf: dxf, width: width, height: height }); + this._docXfs.push({ dxf, width, height }); const rowSpan = Math.ceil((height() + this.gridGap) / this.gridGap); const style = this.isStackingView ? { width: width(), marginTop: i ? this.gridGap : 0, height: height() } : { gridRowEnd: `span ${rowSpan}` }; return
diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx index 1bf297796..91275d89b 100644 --- a/src/client/views/nodes/DocumentView.tsx +++ b/src/client/views/nodes/DocumentView.tsx @@ -669,7 +669,11 @@ export class DocumentView extends DocComponent(Docu toggleBackground = (temporary: boolean): void => { this.Document._overflow = temporary ? "visible" : "hidden"; this.Document.isBackground = !temporary ? !this.Document.isBackground : (this.Document.isBackground ? undefined : true); - this.Document.isBackground && this.props.bringToFront(this.Document, true); + if (this.Document.isBackground) { + this.props.bringToFront(this.props.Document, true); + this.props.Document[DataSym][Doc.LayoutFieldKey(this.Document) + "-nativeWidth"] = this.Document[WidthSym](); + this.props.Document[DataSym][Doc.LayoutFieldKey(this.Document) + "-nativeHeight"] = this.Document[HeightSym](); + } } @undoBatch diff --git a/src/client/views/nodes/PresBox.tsx b/src/client/views/nodes/PresBox.tsx index 49862d39a..5ff71e922 100644 --- a/src/client/views/nodes/PresBox.tsx +++ b/src/client/views/nodes/PresBox.tsx @@ -44,7 +44,7 @@ export class PresBox extends ViewBoxBaseComponent // stored on each pres element. (this.presElement as Doc).lookupField = ScriptField.MakeScript( `if (field === 'indexInPres') return docList(container[container.presentationFieldKey]).indexOf(data);` + - "if (field === 'presCollapsedHeight') return container._viewType === CollectionViewType.Stacking ? 50 : 46;" + + `if (field === 'presCollapsedHeight') return container._viewType === '${CollectionViewType.Stacking}' ? 50 : 46;` + "return undefined;", { field: "string", data: Doc.name, container: Doc.name }); } this.props.Document.presentationFieldKey = this.fieldKey; // provide info to the presElement script so that it can look up rendering information about the presBox @@ -271,8 +271,8 @@ export class PresBox extends ViewBoxBaseComponent }); whenActiveChanged = action((isActive: boolean) => this.props.whenActiveChanged(this._isChildActive = isActive)); - addDocumentFilter = (doc: Doc|Doc[]) => { - const docs = doc instanceof Doc ? [doc]: doc; + addDocumentFilter = (doc: Doc | Doc[]) => { + const docs = doc instanceof Doc ? [doc] : doc; docs.forEach(doc => { doc.aliasOf instanceof Doc && (doc.presentationTargetDoc = doc.aliasOf); !this.childDocs.includes(doc) && (doc.presZoomButton = true); -- cgit v1.2.3-70-g09d2 From 54e8450ea88a03bee23cbad3321b5f6bac465e33 Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Tue, 12 May 2020 13:56:14 -0400 Subject: fixed issues with preselements not updating. fixed focus issues with stacking view for Presentations --- src/client/documents/Documents.ts | 1 + .../views/collections/CollectionStackingView.tsx | 7 ++-- src/client/views/nodes/LabelBox.scss | 1 + src/client/views/nodes/PresBox.tsx | 45 ++++++++++++---------- .../views/presentationview/PresElementBox.tsx | 22 +++++------ 5 files changed, 40 insertions(+), 36 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index 95b8daafc..125a531f4 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -127,6 +127,7 @@ export interface DocumentOptions { borderRounding?: string; boxShadow?: string; dontRegisterChildViews?: boolean; + lookupField?: ScriptField; // script that returns the value of a field. This script is passed the rootDoc, layoutDoc, field, and container of the document. see PresBox. "onDoubleClick-rawScript"?: string; // onDoubleClick script in raw text form "onClick-rawScript"?: string; // onClick script in raw text form "onCheckedClick-rawScript"?: string; // onChecked script in raw text form diff --git a/src/client/views/collections/CollectionStackingView.tsx b/src/client/views/collections/CollectionStackingView.tsx index 97459d910..821a6d476 100644 --- a/src/client/views/collections/CollectionStackingView.tsx +++ b/src/client/views/collections/CollectionStackingView.tsx @@ -175,8 +175,8 @@ export class CollectionStackingView extends CollectionSubView(StackingDocument) focusDocument = (doc: Doc, willZoom: boolean, scale?: number, afterFocus?: () => boolean) => { - Doc.BrushDoc(this.props.Document); - this.props.focus(this.props.Document); + Doc.BrushDoc(doc); + this.props.focus(doc); Doc.linkFollowHighlight(doc); const found = this._mainCont && Array.from(this._mainCont.getElementsByClassName("documentView-node")).find((node: any) => node.id === doc[Id]); @@ -186,8 +186,7 @@ export class CollectionStackingView extends CollectionSubView(StackingDocument) smoothScroll(500, this._mainCont!, localTop[1] + this._mainCont!.scrollTop); } afterFocus && setTimeout(() => { - if (afterFocus?.()) { - } + if (afterFocus?.()) { } }, 500); } diff --git a/src/client/views/nodes/LabelBox.scss b/src/client/views/nodes/LabelBox.scss index 9e3ff96a7..b605df262 100644 --- a/src/client/views/nodes/LabelBox.scss +++ b/src/client/views/nodes/LabelBox.scss @@ -4,6 +4,7 @@ border-radius: inherit; display: flex; flex-direction: column; + position: absolute; } .labelBox-mainButton { diff --git a/src/client/views/nodes/PresBox.tsx b/src/client/views/nodes/PresBox.tsx index 5ff71e922..e203c7efa 100644 --- a/src/client/views/nodes/PresBox.tsx +++ b/src/client/views/nodes/PresBox.tsx @@ -30,7 +30,7 @@ export class PresBox extends ViewBoxBaseComponent public static LayoutString(fieldKey: string) { return FieldView.LayoutString(PresBox, fieldKey); } @observable _isChildActive = false; @computed get childDocs() { return DocListCast(this.dataDoc[this.fieldKey]); } - @computed get currentIndex() { return NumCast(this.presElement?.currentIndex); } + @computed get itemIndex() { return NumCast(this.rootDoc._itemIndex); } @computed get presElement() { return Cast(Doc.UserDoc().presElement, Doc, null); } constructor(props: any) { super(props); @@ -42,10 +42,8 @@ export class PresBox extends ViewBoxBaseComponent // this is a design choice -- we could write this data to the presElements which would require a reaction to keep it up to date, and it would prevent // the preselement docs from being part of multiple presentations since they would all have the same field, or we'd have to keep per-presentation data // stored on each pres element. - (this.presElement as Doc).lookupField = ScriptField.MakeScript( - `if (field === 'indexInPres') return docList(container[container.presentationFieldKey]).indexOf(data);` + - `if (field === 'presCollapsedHeight') return container._viewType === '${CollectionViewType.Stacking}' ? 50 : 46;` + - "return undefined;", { field: "string", data: Doc.name, container: Doc.name }); + (this.presElement as Doc).lookupField = ScriptField.MakeFunction("lookupPresBoxField(container, field, data)", + { field: "string", data: Doc.name, container: Doc.name }); } this.props.Document.presentationFieldKey = this.fieldKey; // provide info to the presElement script so that it can look up rendering information about the presBox } @@ -61,15 +59,15 @@ export class PresBox extends ViewBoxBaseComponent @action next = () => { this.updateCurrentPresentation(); - if (this.childDocs[this.currentIndex + 1] !== undefined) { - let nextSelected = this.currentIndex + 1; - this.gotoDocument(nextSelected, this.currentIndex); + if (this.childDocs[this.itemIndex + 1] !== undefined) { + let nextSelected = this.itemIndex + 1; + this.gotoDocument(nextSelected, this.itemIndex); for (nextSelected = nextSelected + 1; nextSelected < this.childDocs.length; nextSelected++) { if (!this.childDocs[nextSelected].groupButton) { break; } else { - this.gotoDocument(nextSelected, this.currentIndex); + this.gotoDocument(nextSelected, this.itemIndex); } } } @@ -79,18 +77,18 @@ export class PresBox extends ViewBoxBaseComponent @action back = () => { this.updateCurrentPresentation(); - const docAtCurrent = this.childDocs[this.currentIndex]; + const docAtCurrent = this.childDocs[this.itemIndex]; if (docAtCurrent) { //check if any of the group members had used zooming in including the current document //If so making sure to zoom out, which goes back to state before zooming action - let prevSelected = this.currentIndex; + let prevSelected = this.itemIndex; let didZoom = docAtCurrent.zoomButton; for (; !didZoom && prevSelected > 0 && this.childDocs[prevSelected].groupButton; prevSelected--) { didZoom = this.childDocs[prevSelected].zoomButton; } prevSelected = Math.max(0, prevSelected - 1); - this.gotoDocument(prevSelected, this.currentIndex); + this.gotoDocument(prevSelected, this.itemIndex); } } @@ -194,10 +192,10 @@ export class PresBox extends ViewBoxBaseComponent this.updateCurrentPresentation(); Doc.UnBrushAllDocs(); if (index >= 0 && index < this.childDocs.length) { - this.presElement.currentIndex = index; + this.rootDoc._itemIndex = index; - if (!this.presElement.presStatus) { - this.presElement.presStatus = true; + if (!this.layoutDoc.presStatus) { + this.layoutDoc.presStatus = true; this.startPresentation(index); } @@ -210,12 +208,12 @@ export class PresBox extends ViewBoxBaseComponent //The function that starts or resets presentaton functionally, depending on status flag. startOrResetPres = () => { this.updateCurrentPresentation(); - if (this.presElement.presStatus) { + if (this.layoutDoc.presStatus) { this.resetPresentation(); } else { - this.presElement.presStatus = true; + this.layoutDoc.presStatus = true; this.startPresentation(0); - this.gotoDocument(0, this.currentIndex); + this.gotoDocument(0, this.itemIndex); } } @@ -225,7 +223,7 @@ export class PresBox extends ViewBoxBaseComponent this.updateCurrentPresentation(); this.childDocs.forEach(doc => (doc.presentationTargetDoc as Doc).opacity = 1); this.rootDoc._itemIndex = 0; - this.presElement.presStatus = false; + this.layoutDoc.presStatus = false; } //The function that starts the presentation, also checking if actions should be applied @@ -281,7 +279,7 @@ export class PresBox extends ViewBoxBaseComponent } childLayoutTemplate = () => this.rootDoc._viewType !== CollectionViewType.Stacking ? undefined : this.presElement; removeDocument = (doc: Doc) => Doc.RemoveDocFromList(this.dataDoc, this.fieldKey, doc); - selectElement = (doc: Doc) => this.gotoDocument(this.childDocs.indexOf(doc), NumCast(this.rootDoc._itemIndex)); + selectElement = (doc: Doc) => this.gotoDocument(this.childDocs.indexOf(doc), NumCast(this.itemIndex)); getTransform = () => this.props.ScreenToLocalTransform().translate(-5, -65);// listBox padding-left and pres-box-cont minHeight panelHeight = () => this.props.PanelHeight() - 20; active = (outsideReaction?: boolean) => ((InkingControl.Instance.selectedTool === InkTool.None && !this.layoutDoc.isBackground) && @@ -329,5 +327,10 @@ export class PresBox extends ViewBoxBaseComponent
; } } -Scripting.addGlobal(function lookupPresBoxField(presLayout: Doc, data: Doc, fieldKey: string) { +Scripting.addGlobal(function lookupPresBoxField(container: Doc, field: string, data: Doc) { + if (field === 'indexInPres') return DocListCast(container[StrCast(container.presentationFieldKey)]).indexOf(data); + if (field === 'presCollapsedHeight') return container._viewType === CollectionViewType.Stacking ? 50 : 46; + if (field === 'presStatus') return container.presStatus; + if (field === '_itemIndex') return container._itemIndex; + return undefined; }); diff --git a/src/client/views/presentationview/PresElementBox.tsx b/src/client/views/presentationview/PresElementBox.tsx index 6d7602268..e13a5f2f7 100644 --- a/src/client/views/presentationview/PresElementBox.tsx +++ b/src/client/views/presentationview/PresElementBox.tsx @@ -41,8 +41,8 @@ export class PresElementBox extends ViewBoxBaseComponent= this.currentIndex && this.targetDoc) { + if (this.indexInPres >= this.itemIndex && this.targetDoc) { this.targetDoc.opacity = 1; } } else { - if (this.presStatus && this.indexInPres > this.currentIndex && this.targetDoc) { + if (this.presStatus && this.indexInPres > this.itemIndex && this.targetDoc) { this.targetDoc.opacity = 0; } } @@ -82,12 +82,12 @@ export class PresElementBox extends ViewBoxBaseComponent Date: Wed, 13 May 2020 11:40:58 -0400 Subject: fixed presentations to not find items in the presentation list. cleaned up webbox css --- src/client/util/DocumentManager.ts | 40 +++++++---------- .../views/collections/CollectionStackingView.tsx | 1 + .../collectionFreeForm/CollectionFreeFormView.tsx | 1 + src/client/views/nodes/PresBox.tsx | 1 + src/client/views/nodes/WebBox.scss | 52 +++++++++++++--------- src/client/views/nodes/WebBox.tsx | 7 +-- 6 files changed, 53 insertions(+), 49 deletions(-) (limited to 'src/client/views/collections') diff --git a/src/client/util/DocumentManager.ts b/src/client/util/DocumentManager.ts index 1ba6f0248..99d85125a 100644 --- a/src/client/util/DocumentManager.ts +++ b/src/client/util/DocumentManager.ts @@ -94,37 +94,29 @@ export class DocumentManager { // heuristic to return the "best" documents first: // choose an exact match over an alias match // choose documents that have a PanelWidth() over those that don't (the treeview documents have no panelWidth) - docViews.map(view => !view.props.Document.presBox && view.props.PanelWidth() > 1 && view.props.Document === toFind && toReturn.push(view)); - docViews.map(view => !view.props.Document.presBox && view.props.PanelWidth() <= 1 && view.props.Document === toFind && toReturn.push(view)); - docViews.map(view => !view.props.Document.presBox && view.props.PanelWidth() > 1 && view.props.Document !== toFind && Doc.AreProtosEqual(view.props.Document, toFind) && toReturn.push(view)); - docViews.map(view => !view.props.Document.presBox && view.props.PanelWidth() <= 1 && view.props.Document !== toFind && Doc.AreProtosEqual(view.props.Document, toFind) && toReturn.push(view)); + docViews.map(view => view.props.PanelWidth() > 1 && view.props.Document === toFind && toReturn.push(view)); + docViews.map(view => view.props.PanelWidth() <= 1 && view.props.Document === toFind && toReturn.push(view)); + docViews.map(view => view.props.PanelWidth() > 1 && view.props.Document !== toFind && Doc.AreProtosEqual(view.props.Document, toFind) && toReturn.push(view)); + docViews.map(view => view.props.PanelWidth() <= 1 && view.props.Document !== toFind && Doc.AreProtosEqual(view.props.Document, toFind) && toReturn.push(view)); return toReturn; } @computed public get LinkedDocumentViews() { - const pairs = DocumentManager.Instance.DocumentViews - //.filter(dv => (dv.isSelected() || Doc.IsBrushed(dv.props.Document))) // draw links from DocumentViews that are selected or brushed OR - // || DocumentManager.Instance.DocumentViews.some(dv2 => { // Documentviews which - // const rest = DocListCast(dv2.props.Document.links).some(l => Doc.AreProtosEqual(l, dv.props.Document));// are link doc anchors - // const init = (dv2.isSelected() || Doc.IsBrushed(dv2.props.Document)) && dv2.Document.type !== DocumentType.AUDIO; // on a view that is selected or brushed - // return init && rest; - // } - // ) - .reduce((pairs, dv) => { - const linksList = LinkManager.Instance.getAllRelatedLinks(dv.props.Document); - pairs.push(...linksList.reduce((pairs, link) => { - const linkToDoc = link && LinkManager.Instance.getOppositeAnchor(link, dv.props.Document); - linkToDoc && DocumentManager.Instance.getDocumentViews(linkToDoc).map(docView1 => { - if (dv.props.Document.type !== DocumentType.LINK || dv.props.LayoutTemplateString !== docView1.props.LayoutTemplateString) { - pairs.push({ a: dv, b: docView1, l: link }); - } - }); - return pairs; - }, [] as { a: DocumentView, b: DocumentView, l: Doc }[])); + const pairs = DocumentManager.Instance.DocumentViews.reduce((pairs, dv) => { + const linksList = LinkManager.Instance.getAllRelatedLinks(dv.props.Document); + pairs.push(...linksList.reduce((pairs, link) => { + const linkToDoc = link && LinkManager.Instance.getOppositeAnchor(link, dv.props.Document); + linkToDoc && DocumentManager.Instance.getDocumentViews(linkToDoc).map(docView1 => { + if (dv.props.Document.type !== DocumentType.LINK || dv.props.LayoutTemplateString !== docView1.props.LayoutTemplateString) { + pairs.push({ a: dv, b: docView1, l: link }); + } + }); return pairs; - }, [] as { a: DocumentView, b: DocumentView, l: Doc }[]); + }, [] as { a: DocumentView, b: DocumentView, l: Doc }[])); + return pairs; + }, [] as { a: DocumentView, b: DocumentView, l: Doc }[]); return pairs; } diff --git a/src/client/views/collections/CollectionStackingView.tsx b/src/client/views/collections/CollectionStackingView.tsx index 821a6d476..d97f26daf 100644 --- a/src/client/views/collections/CollectionStackingView.tsx +++ b/src/client/views/collections/CollectionStackingView.tsx @@ -207,6 +207,7 @@ export class CollectionStackingView extends CollectionSubView(StackingDocument) NativeHeight={returnZero} NativeWidth={returnZero} fitToBox={false} + dontRegisterView={this.props.dontRegisterView} rootSelected={this.rootSelected} dropAction={StrCast(this.props.Document.childDropAction) as dropActionType} onClick={this.onChildClickHandler} diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index 6caee960d..cfa1a046f 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -893,6 +893,7 @@ export class CollectionFreeFormView extends CollectionSubView childLayoutTemplate={this.childLayoutTemplate} filterAddDocument={this.addDocumentFilter} removeDocument={returnFalse} + dontRegisterView={true} focus={this.selectElement} ScreenToLocalTransform={this.getTransform} /> : (null) diff --git a/src/client/views/nodes/WebBox.scss b/src/client/views/nodes/WebBox.scss index 4c05d4627..4623444b9 100644 --- a/src/client/views/nodes/WebBox.scss +++ b/src/client/views/nodes/WebBox.scss @@ -5,6 +5,36 @@ transform-origin: top left; width: 100%; height: 100%; + + .webBox-htmlSpan { + position: absolute; + top: 0; + left: 0; + } + .webBox-cont { + pointer-events: none; + } + .webBox-cont, .webBox-cont-interactive { + padding: 0vw; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + transform-origin: top left; + overflow: auto; + .webBox-iframe { + width: 100%; + height: 100%; + position: absolute; + top:0; + } + } + .webBox-cont-interactive { + span { + user-select: text !important; + } + } .webBox-outerContent { width: 100%; height: 100%; @@ -20,29 +50,7 @@ display:none; } } -.webBox-cont { - padding: 0vw; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - transform-origin: top left; - overflow: auto; - pointer-events: none; -} - -.webBox-cont-interactive { - span { - user-select: text !important; - } -} -#webBox-htmlSpan { - position: absolute; - top: 0; - left: 0; -} .webBox-overlay { width: 100%; diff --git a/src/client/views/nodes/WebBox.tsx b/src/client/views/nodes/WebBox.tsx index 384a6e8a5..b0abb2479 100644 --- a/src/client/views/nodes/WebBox.tsx +++ b/src/client/views/nodes/WebBox.tsx @@ -308,18 +308,19 @@ export class WebBox extends ViewBoxAnnotatableComponent; + view = ; } else if (field instanceof WebField) { const url = this.layoutDoc.UseCors ? Utils.CorsProxy(field.url.href) : field.url.href; - view =