concat.transform.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.createConcatTransform = void 0;
  6. var _is = require("../../utils/is.js");
  7. var _errorTransform = require("./utils/errorTransform.js");
  8. var _factory = require("../../utils/factory.js");
  9. var _concat = require("../../function/matrix/concat.js");
  10. var name = 'concat';
  11. var dependencies = ['typed', 'matrix', 'isInteger'];
  12. var createConcatTransform = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
  13. var typed = _ref.typed,
  14. matrix = _ref.matrix,
  15. isInteger = _ref.isInteger;
  16. var concat = (0, _concat.createConcat)({
  17. typed: typed,
  18. matrix: matrix,
  19. isInteger: isInteger
  20. });
  21. /**
  22. * Attach a transform function to math.range
  23. * Adds a property transform containing the transform function.
  24. *
  25. * This transform changed the last `dim` parameter of function concat
  26. * from one-based to zero based
  27. */
  28. return typed('concat', {
  29. '...any': function any(args) {
  30. // change last argument from one-based to zero-based
  31. var lastIndex = args.length - 1;
  32. var last = args[lastIndex];
  33. if ((0, _is.isNumber)(last)) {
  34. args[lastIndex] = last - 1;
  35. } else if ((0, _is.isBigNumber)(last)) {
  36. args[lastIndex] = last.minus(1);
  37. }
  38. try {
  39. return concat.apply(null, args);
  40. } catch (err) {
  41. throw (0, _errorTransform.errorTransform)(err);
  42. }
  43. }
  44. });
  45. }, {
  46. isTransformFunction: true
  47. });
  48. exports.createConcatTransform = createConcatTransform;