You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.js 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import {TransformsFactory} from "./src/transforms-factory";
  2. import contracts from "./src/parameters/contracts";
  3. import $ from 'jquery';
  4. import core from "./src/core";
  5. // const PDFEngine = () =>
  6. // {
  7. // core();
  8. // }
  9. // export default PDFEngine
  10. export class PDFEngine {
  11. constructor() {
  12. this.transforms = [];
  13. }
  14. execute()
  15. {
  16. // core();
  17. // scrape contracts
  18. const parametars = contracts();
  19. // Get targets from HTML DOM
  20. // atribute contracts
  21. // code = ' '
  22. for (let i = 0; i < parametars.length; i++) {
  23. parametars[i].targets = $(`[code*="${parametars[i].code}"]`);
  24. }
  25. // css class contracts
  26. // TODO Igor
  27. // for (let i = 0; i < parametars.length; i++) {
  28. // const param = parametars[i];
  29. // param.targets = $(`.${param.code}`);
  30. // Init transform
  31. parametars.forEach(par => {
  32. for (let i = 0; i < par.targets.length; i++) {
  33. const transformFactory = new TransformsFactory();
  34. const transform = transformFactory.produce(par.code, par.targets[i], par.selectors);
  35. this.transforms.push(transform);
  36. }
  37. });
  38. // perform transform
  39. for (let i = 0; i < this.transforms.length; i++) {
  40. const transform = this.transforms[i];
  41. if (transform.validate()) {
  42. transform.execute();
  43. }
  44. }
  45. // print
  46. // prepare print (optioning)
  47. // print
  48. window.print();
  49. for(let i = 0; i < this.transforms.length; i++){
  50. setTimeout(() => {
  51. const transform = this.transforms[i];
  52. transform.rolback();
  53. }, 2000);
  54. }
  55. }
  56. update(model) {
  57. this.transforms.push(model.transform);
  58. }
  59. }