Skip to content

Commit

Permalink
Added HTMLUtilities
Browse files Browse the repository at this point in the history
  • Loading branch information
fedegratti committed Jun 8, 2022
1 parent 26f30b6 commit 275ce20
Show file tree
Hide file tree
Showing 11 changed files with 125 additions and 30 deletions.
2 changes: 1 addition & 1 deletion .version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v6.12.1
v6.13.0
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ohzi-core",
"version": "6.12.1",
"version": "6.13.0",
"description": "OHZI Core Library",
"source": "src/index.js",
"module": "build/index.module.js",
Expand Down
2 changes: 2 additions & 0 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ import CameraUtilities from './utilities/CameraUtilities';
import EasingFunctions from './utilities/EasingFunctions';
import FrustumPointFitter from './utilities/FrustumPointFitter';
import GeometryUtilities from './utilities/GeometryUtilities';
import HTMLUtilities from './utilities/HTMLUtilities';
import ImageUtilities from './utilities/ImageUtilities';
import OMath from './utilities/OMath';
import MeshSampler from './utilities/MeshSampler';
Expand Down Expand Up @@ -146,6 +147,7 @@ export {
EasingFunctions,
FrustumPointFitter,
GeometryUtilities,
HTMLUtilities,
ImageUtilities,
OMath,
MeshSampler,
Expand Down
44 changes: 44 additions & 0 deletions src/utilities/HTMLUtilities.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
export default class HTMLUtilities
{
static load_images(container)
{
const images = container.querySelectorAll('img');

for (let i = 0; i < images.length; i++)
{
const image = images[i];

if (image.dataset.src)
{
image.src = image.dataset.src;
}
}

const image_objects = container.querySelectorAll('object');

for (let i = 0; i < image_objects.length; i++)
{
const image_object = image_objects[i];

if (image_object.dataset.src)
{
image_object.data = image_object.dataset.src;
}
}
}

static load_videos(container)
{
const videos = container.querySelectorAll('video');

for (let i = 0; i < videos.length; i++)
{
const video = videos[i];

if (video.dataset.src)
{
video.src = video.dataset.src;
}
}
}
}
31 changes: 28 additions & 3 deletions src/utilities/ObjectUtilities.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,34 @@
export default class ObjectUtilities
{
constructor()
{}
static is_object(item)
{
return (item && typeof item === 'object' && !Array.isArray(item));
}

static merge_deep(target, ...sources)
{
if (!sources.length) return target;
const source = sources.shift();

if (ObjectUtilities.is_object(target) && ObjectUtilities.is_object(source))
{
for (const key in source)
{
if (ObjectUtilities.is_object(source[key]))
{
if (!target[key]) Object.assign(target, { [key]: {} });
ObjectUtilities.merge_deep(target[key], source[key]);
}
else
{
Object.assign(target, { [key]: source[key] });
}
}
}

return ObjectUtilities.merge_deep(target, ...sources);
}

// Changes XML to JSON
static xml_to_json(xml)
{
// Create the return object
Expand Down
25 changes: 3 additions & 22 deletions src/view_components/ApplicationView.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import ResourceContainer from '../ResourceContainer';
import HTMLUtilities from '../utilities/HTMLUtilities';
import ViewManager from './ViewManager';
import ViewState from './ViewState';

Expand Down Expand Up @@ -59,32 +60,12 @@ export default class ApplicationView extends ViewState

load_html_images()
{
const images = this.container.querySelectorAll('img');

for (let i = 0; i < images.length; i++)
{
const image = images[i];

if (image.dataset.src)
{
image.src = image.dataset.src;
}
}
HTMLUtilities.load_images(this.container);
}

load_html_videos()
{
const videos = this.container.querySelectorAll('video');

for (let i = 0; i < videos.length; i++)
{
const video = videos[i];

if (video.dataset.src)
{
video.src = video.dataset.src;
}
}
HTMLUtilities.load_videos(this.container);
}

set_opacity(current_state_data)
Expand Down
11 changes: 11 additions & 0 deletions src/view_components/ViewComponent.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import HTMLUtilities from '../utilities/HTMLUtilities';
import ViewComponentManager from './ViewComponentManager';

export default class ViewComponent
Expand Down Expand Up @@ -58,4 +59,14 @@ export default class ViewComponent
}
}
}

load_html_images()
{
HTMLUtilities.load_images(this.container);
}

load_html_videos()
{
HTMLUtilities.load_videos(this.container);
}
}
10 changes: 10 additions & 0 deletions types/utilities/HTMLUtilities.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
export class HTMLUtilities {
/**
* Load Images defined in data-src.
*/
static load_images(container: HTMLElement): void;
/**
* Load Videos defined in data-src.
*/
static load_videos(container: HTMLElement): void;
}
17 changes: 14 additions & 3 deletions types/utilities/ObjectUtilities.d.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
export class ObjectUtilities {
static xml_to_json(xml: any): {
'@attributes': {};
};
/**
* Simple object check.
*/
static is_object(item: any): boolean;

/**
* Deep merge two objects.
*/
static merge_deep(target: any, ...sources: any): void;

/**
* Convert XML to JSON
*/
static xml_to_json(xml: any): object;
}
9 changes: 9 additions & 0 deletions types/view_components/ApplicationView.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,15 @@ export class ApplicationView extends ViewState {
});
container: any;
url: any;
start(): void;
show(): void;
before_enter(): void;
on_enter(): void;
before_exit(): void;
on_exit(): void;
update(): void;
set_opacity(opacity: any): void;
load_html_images(): void;
load_html_videos(): void;
}
import ViewState from "./ViewState";
2 changes: 2 additions & 0 deletions types/view_components/ViewComponent.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,6 @@ export class ViewComponent {
update(): void;
on_exit(): void;
set_opacity(opacity: any): void;
load_html_images(): void;
load_html_videos(): void;
}

0 comments on commit 275ce20

Please sign in to comment.