Text.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /*************************************************************
  2. *
  3. * Copyright (c) 2018-2022 The MathJax Consortium
  4. *
  5. * Licensed under the Apache License, Version 2.0 (the "License");
  6. * you may not use this file except in compliance with the License.
  7. * You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. */
  17. /**
  18. * @fileoverview Implements a lightweight Text element replacement
  19. *
  20. * @author dpvc@mathjax.org (Davide Cervone)
  21. */
  22. import {LiteElement} from './Element.js';
  23. /************************************************************/
  24. /**
  25. * Implements a lightweight Text node replacement
  26. */
  27. export class LiteText {
  28. /**
  29. * The text stored in the node
  30. */
  31. public value: string;
  32. /**
  33. * The parent holding this text
  34. */
  35. public parent: LiteElement;
  36. /**
  37. * The kind of node is #text
  38. */
  39. public get kind() {
  40. return '#text';
  41. }
  42. /**
  43. * @param {string} text The text for the node
  44. * @constructor
  45. */
  46. constructor(text: string = '') {
  47. this.value = text;
  48. }
  49. }
  50. /************************************************************/
  51. /**
  52. * Implements a lightweight Comment node replacement
  53. */
  54. export class LiteComment extends LiteText {
  55. public get kind() {
  56. return '#comment';
  57. }
  58. }