Просмотр исходного кода

Fixed parameters folder

master
Safet Purkovic 4 лет назад
Родитель
Сommit
ca64dc644a

+ 11
- 3
index.js Просмотреть файл

import core from './src/core'; import core from './src/core';
import './src/PDFEngine.css';
// import './src/PDFEngine.css';


(() =>
// (() =>
// {
// core();
// })()


const PDFEngine = () =>
{ {
core(); core();
})()
}

export default PDFEngine;

+ 26
- 16
package-lock.json Просмотреть файл

"supports-color": "^8.0.0" "supports-color": "^8.0.0"
} }
}, },
"jquery": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==",
"dev": true
},
"json-parse-better-errors": { "json-parse-better-errors": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
"p-locate": "^4.1.0" "p-locate": "^4.1.0"
} }
}, },
"lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"dev": true
},
"lru-cache": { "lru-cache": {
"version": "6.0.0", "version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"dev": true "dev": true
}, },
"nanoid": { "nanoid": {
"version": "3.1.28",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.28.tgz",
"integrity": "sha512-gSu9VZ2HtmoKYe/lmyPFES5nknFrHa+/DT9muUFWFMi6Jh9E1I7bkvlQ8xxf1Kos9pi9o8lBnIOkatMhKX/YUw==",
"version": "3.1.29",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.29.tgz",
"integrity": "sha512-dW2pUSGZ8ZnCFIlBIA31SV8huOGCHb6OwzVCc7A69rb/a+SgPBwfmLvK5TKQ3INPbRkcI8a/Owo0XbiTNH19wg==",
"dev": true "dev": true
}, },
"neo-async": { "neo-async": {
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true "dev": true
}, },
"picocolors": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
"integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
"dev": true
},
"pkg-dir": { "pkg-dir": {
"version": "4.2.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
} }
}, },
"postcss": { "postcss": {
"version": "8.3.8",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.8.tgz",
"integrity": "sha512-GT5bTjjZnwDifajzczOC+r3FI3Cu+PgPvrsjhQdRqa2kTJ4968/X9CUce9xttIB0xOs5c6xf0TCWZo/y9lF6bA==",
"version": "8.3.9",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.9.tgz",
"integrity": "sha512-f/ZFyAKh9Dnqytx5X62jgjhhzttjZS7hMsohcI7HEI5tjELX/HxCy3EFhsRxyzGvrzFF+82XPvCS8T9TFleVJw==",
"dev": true, "dev": true,
"requires": { "requires": {
"nanocolors": "^0.2.2",
"nanoid": "^3.1.25",
"nanoid": "^3.1.28",
"picocolors": "^0.2.1",
"source-map-js": "^0.6.2" "source-map-js": "^0.6.2"
},
"dependencies": {
"nanocolors": {
"version": "0.2.12",
"resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.12.tgz",
"integrity": "sha512-SFNdALvzW+rVlzqexid6epYdt8H9Zol7xDoQarioEFcFN0JHo4CYNztAxmtfgGTVRCmFlEOqqhBpoFGKqSAMug==",
"dev": true
}
} }
}, },
"postcss-modules-extract-imports": { "postcss-modules-extract-imports": {

+ 3
- 3
package.json Просмотреть файл

"license": "ISC", "license": "ISC",
"devDependencies": { "devDependencies": {
"css-loader": "^6.3.0", "css-loader": "^6.3.0",
"jquery": "^3.6.0",
"lodash": "^4.17.21",
"style-loader": "^3.3.0", "style-loader": "^3.3.0",
"webpack": "^5.55.0", "webpack": "^5.55.0",
"webpack-cli": "^4.8.0" "webpack-cli": "^4.8.0"
}, },
"dependencies": {
"jquery": "^3.6.0"
}
"dependencies": {}
} }

+ 1
- 3
src/PDFEngine.css Просмотреть файл

{ {
display: none; display: none;
} }
h4{
color:purple;
}
} }

+ 8
- 25
src/core.js Просмотреть файл

import {TransformsFactory} from "./transforms-factory"; import {TransformsFactory} from "./transforms-factory";
import {HideTransform} from './transformations/hide-transform';
import { HideParam } from "./parameters/hide-parameter";
import parameters from "./parameters/parameters";


function core(){ function core(){


// scrape parametara // scrape parametara
const param1 = {
code: "br-hide",
selector: "table"
};
const param2 = {
code: "br-color",
selector: "h4"
};
const param3 = {
code: "br-size", // br-size-100 br-size-50 ...
selector: "table",
size: ""
};

const parametars = [param1];
const parametars = parameters();
// Izvlacenje targets iz DOM strane
// for(let i = 0; i < parametars.length; i++){ // for(let i = 0; i < parametars.length; i++){
// const param = parametars[i]; // const param = parametars[i];
// param.targets = $(param.code); // param.targets = $(param.code);
// } // }


// atribute parameters // atribute parameters
// 2 atributa: (za vise naknadno istraziti)
// code
// selector
const elementsByAttrs = [];
// 1 atribut:
// code = ' '

// css class parameters // css class parameters


// inicijalizacija transformacija // inicijalizacija transformacija
const transform = transformFactory.produce(param.code, param.selector); const transform = transformFactory.produce(param.code, param.selector);
transforms.push(transform); transforms.push(transform);
}); });
// const hideT = new HideTransform("table");
// const hideT = new HideTransform("table");
// const hideT1 = new HideTransform("table1");
// const hideT2 = new HideTransform("table1");
// const hideT3 = new HideTransform("table1");


// perform transform // perform transform
//const transforms = [hideT]; //, hideT1, hideT2, hideT3]; //const transforms = [hideT]; //, hideT1, hideT2, hideT3];

+ 10
- 0
src/parameters/border-color-parameter.js Просмотреть файл

import { Param } from "./parameter";
export class BorderColorParam extends Param
{
constructor(){
super();
this.code = "br-bordercolor";
this.selectors = ["table","div"];
}
}


+ 9
- 0
src/parameters/color-parameter.js Просмотреть файл

import { Param } from "./parameter";

export class ColorParam extends Param {
constructor() {
super();
this.code = "br-color",
this.selectors = ["h1", "h4", "p"];
}
}

+ 9
- 0
src/parameters/hide-parameter.js Просмотреть файл

import { Param } from "./parameter";
export class HideParam extends Param
{
constructor(){
super();
this.code = "br-hide";
this.selectors = ["table","p","h4"];
}
}

+ 16
- 0
src/parameters/parameter.js Просмотреть файл


export class Param
{
constructor()
{
this.code = "";
this.selectors = [];
this.targets = [];
this.value = null;
}
// Check for selector exists in array of selectors
// If exists return true, else return false
checkSelector = selector => {
return (this.selectors.indexOf(selector) > -1);
};
}

+ 24
- 0
src/parameters/parameters.js Просмотреть файл

import { BorderColorParam } from "./border-color-parameter";
import { ColorParam } from "./color-parameter";
import { HideParam } from "./hide-parameter";
import { RemoveColumnParam } from "./remove-column-parameter";
import { RemoveHeaderParam } from "./remove-header-parameter";
import { RemoveRowParam } from "./remove-row-parameter";
import { ShowNumberRowsParam } from "./show-number-rows-parameters";
import { SizeParam } from "./size-parameter";

const parameters = () =>
{
return [
new BorderColorParam(),
new ColorParam(),
new HideParam(),
new RemoveColumnParam(),
new RemoveHeaderParam(),
new RemoveRowParam(),
new ShowNumberRowsParam(),
new SizeParam()
];
}

export default parameters;

+ 10
- 0
src/parameters/remove-column-parameter.js Просмотреть файл

import { Param } from "./parameter";
export class RemoveColumnParam extends Param
{
constructor(){
super();
this.code = "br-removecolumn-1";
this.selectors = ["table"];
this.value = +(this.code.split('-')[2]);
}
}

+ 9
- 0
src/parameters/remove-header-parameter.js Просмотреть файл

import { Param } from "./parameter";
export class RemoveHeaderParam extends Param
{
constructor(){
super();
this.code = "br-removeheader";
this.selectors = ["table"];
}
}

+ 10
- 0
src/parameters/remove-row-parameter.js Просмотреть файл

import { Param } from "./parameter";
export class RemoveRowParam extends Param
{
constructor(){
super();
this.code = "br-removerow-1";
this.selectors = ["table"];
this.value = +(this.code.split('-')[2]);
}
}

+ 10
- 0
src/parameters/show-number-rows-parameters.js Просмотреть файл

import { Param } from "./parameter";
export class ShowNumberRowsParam extends Param
{
constructor(){
super();
this.code = "br-shownumberrows-4";
this.selectors = ["table"];
this.value = +(this.code.split('-')[2]);
}
}

+ 10
- 0
src/parameters/size-parameter.js Просмотреть файл

import { Param } from "./parameter";
export class SizeParam extends Param
{
constructor(){
super();
this.code = "br-size-15";
this.selectors = ["p","span"];
this.value = +(this.code.split('-')[2]);
}
}

+ 5
- 0
src/transformations/border-color-transformation/border-color-transformation.css Просмотреть файл

@media print{
.border-red{
border-color: red;
}
}

+ 18
- 0
src/transformations/border-color-transformation/border-color-transformation.js Просмотреть файл

import './border-color-transformation.css';
import {Transform} from "../transform";
import $ from "jquery";

export class BorderColorTransform extends Transform {
constructor(selector){
super();
this.selector = selector;
}

execute(){
$(this.selector).addClass("border-red");
}

rolback(){
$(this.selector).removeClass("border-red");
}
}

+ 3
- 2
src/transformations/color-transformation/color-transforamtion.js Просмотреть файл



export class ColorTransform extends Transform { export class ColorTransform extends Transform {
constructor(selector){ constructor(selector){
super();
this.selector = selector; this.selector = selector;
} }


execute(){ execute(){
$(this.selector).addClass(".color-transform");
$(this.selector).addClass("color-transform");
} }


rolback(){ rolback(){
$(this.selector).removeClass(".color-transform");
$(this.selector).removeClass("color-transform");
} }
} }

+ 2
- 2
src/transformations/color-transformation/color-transformation.css Просмотреть файл

@media print {
/* @media print { */
.color-transform{ .color-transform{
color: blue; color: blue;
} }
}
/* } */

+ 6
- 5
src/transformations/hide-transform.js Просмотреть файл

import $ from "jquery"; import $ from "jquery";


export class HideTransform extends Transform { export class HideTransform extends Transform {
constructor(selector){
constructor(object){
super(); super();
this.selector = selector;
this.object = object;
} }


execute(){ execute(){
$(this.selector).hide();
var $div = $('<p> '+this.selector+' </p>').appendTo('body');
// Zbog !important u CSS React app morali smo odraditi na ovaj nacin
// $(this.object).attr("style", "display: none !important");
$(this.object).hide();
} }


rolback(){ rolback(){
$(this.selector).show();
$(this.object).show();
} }
} }

+ 19
- 0
src/transformations/number-rows-transform.js Просмотреть файл

import { Transform } from "./transform";
import _ from "lodash";
export class NumberRowsTransform extends Transform
{
constructor(array,number){
super();
this.array = array;
this.number = number;
}

execute()
{
return _(this.array).take(this.number).value();
}
rolback()
{
return this.array;
}
}

+ 32
- 0
src/transformations/remove-table-column-transform.js Просмотреть файл

import { Transform } from "./transform";
import $ from 'jquery';

export class RemoveTableColumnTransform extends Transform
{
constructor(selector,column)
{
super();
this.selector = selector;
this.column = column;
}
execute(){
const column = this.column;
$(`${this.selector} > tbody > tr`).each(function () {
$(this).find('td').eq(column).remove();
});
$(`${this.selector} > thead > tr`).each(function () {
$(this).find('th').eq(column).remove();
});
};
rolback(){
// TODO IMPLEMENT ROLBACK
// HINT: SAVE LAST CELLS IN PROPERTIES
// const column = this.column;
// $(`${this.selector} > tbody > tr`).each(function () {
// $(this).find('td').eq(column).show();
// });
// $(`${this.selector} > thead > tr`).each(function () {
// $(this).find('th').eq(column).show();
// });
};
}

+ 26
- 0
src/transformations/remove-table-row-transform.js Просмотреть файл

import { Transform } from "./transform";
import $ from 'jquery';

export class RemoveTableRowTransform extends Transform
{
constructor(selector,row)
{
super();
this.selector = selector;
this.row = row;
}
execute(){
const row = this.row;
$(`${this.selector}`).each(function () {
$(this).find('tr').eq(row).remove();
});
};
rolback(){
// TODO IMPLEMENT ROLBACK
// HINT: SAVE LAST ROW IN PROPERTIES
// const row = this.row;
// $(`${this.selector} > tbody > tr`).each(function () {
// $(this).find('td').eq(row).show();
// });
};
}

+ 32
- 0
src/transformations/show-number-rows-transformation.js Просмотреть файл

import { Transform } from "./transform";
import $ from 'jquery';

export class ShowNumberRowsTransformation extends Transform
{
constructor(selector,rows)
{
super();
this.selector = selector;
this.rows = rows;
}
execute(){
const rows = this.rows;
const count = $(`${this.selector} > tbody`).children('tr').length;
$(`${this.selector} > tbody`).each(function () {
for(let i=rows;i<count;i++)
{
$(this).find('tr').eq(i).hide();
}
});
};
rolback(){
const rows = this.rows;
const count = $(`${this.selector} > tbody`).children('tr').length;
$(`${this.selector} > tbody`).each(function () {
for(let i=rows;i<count;i++)
{
$(this).find('tr').eq(i).show();
}
});
};
}

+ 1
- 0
src/transformations/transform.js Просмотреть файл

export class Transform{ export class Transform{
execute(){}; execute(){};
rolback(){};
} }

+ 20
- 5
src/transforms-factory.js Просмотреть файл

import { HideTransform } from "./transformations/hide-transform"; import { HideTransform } from "./transformations/hide-transform";
import { Transform } from "./transformations/transform"; import { Transform } from "./transformations/transform";
import { ColorTransform } from "./transformations/color-transformation/color-transforamtion"; import { ColorTransform } from "./transformations/color-transformation/color-transforamtion";
import { RemoveTableColumnTransform } from "./transformations/remove-table-column-transform";
import { RemoveTableRowTransform } from "./transformations/remove-table-row-transform";
import { ShowNumberRowsTransformation } from "./transformations/show-number-rows-transformation";
import { BorderColorTransform } from "./transformations/border-color-transformation/border-color-transformation";


export class TransformsFactory{ export class TransformsFactory{
produce(code,selector)
produce(code,object)
{ {
const arrayCode = code.split('-');
code = `${arrayCode[0]}-${arrayCode[1]}`;
if(code == null){ if(code == null){
return null; return null;
} }
if(code === ("br-hide")){ if(code === ("br-hide")){
return new HideTransform(selector);
// Ovo ne sme nikako preko atributa
return new HideTransform(object);
} else if(code === ("br-color")){ } else if(code === ("br-color")){
return new ColorTransform(selector);

return new ColorTransform(object);
} else if(code === ("br-removecolumn")){
return new RemoveTableColumnTransform(object,arrayCode[2]);
} else if(code === ("br-removerow")){
return new RemoveTableRowTransform(`${object} > tbody`,arrayCode[2]);
} else if(code === ("br-removeheader")){
return new RemoveTableRowTransform(`${object} > thead`,0);
} else if(code === ("br-shownumberrows")){
return new ShowNumberRowsTransformation(object,arrayCode[2]);
} else if(code === ("br-bordercolor")){
return new BorderColorTransform(object);
} }
return null; return null;
} }

Загрузка…
Отмена
Сохранить