SubSlotNode.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /**
  2. * @author sunag / http://www.sunag.com.br/
  3. */
  4. import { TempNode } from '../core/TempNode.js';
  5. function SubSlotNode( slots ) {
  6. TempNode.call( this );
  7. this.slots = slots || {};
  8. }
  9. SubSlotNode.prototype = Object.create( TempNode.prototype );
  10. SubSlotNode.prototype.constructor = SubSlotNode;
  11. SubSlotNode.prototype.nodeType = "SubSlot";
  12. SubSlotNode.prototype.getType = function ( builder, output ) {
  13. return output;
  14. };
  15. SubSlotNode.prototype.generate = function ( builder, output ) {
  16. if ( this.slots[ builder.slot ] ) {
  17. return this.slots[ builder.slot ].build( builder, output )
  18. }
  19. return builder.format( '0.0', 'f', output );
  20. };
  21. SubSlotNode.prototype.copy = function ( source ) {
  22. TempNode.prototype.copy.call( this, source );
  23. for ( var prop in source.slots ) {
  24. this.slots[ prop ] = source.slots[ prop ];
  25. }
  26. return this;
  27. };
  28. SubSlotNode.prototype.toJSON = function ( meta ) {
  29. var data = this.getJSONNode( meta );
  30. if ( ! data ) {
  31. data = this.createJSONNode( meta );
  32. data.slots = {};
  33. for ( var prop in this.slots ) {
  34. var slot = this.slots[ prop ];
  35. if ( slot ) {
  36. data.slots[ prop ] = slot.toJSON( meta ).uuid;
  37. }
  38. }
  39. }
  40. return data;
  41. };
  42. export { SubSlotNode };