Skip to content

Improve directive with validation, events, and bug fixes#4

Open
Chitova263 wants to merge 2 commits into
mainfrom
Improvements
Open

Improve directive with validation, events, and bug fixes#4
Chitova263 wants to merge 2 commits into
mainfrom
Improvements

Conversation

@Chitova263
Copy link
Copy Markdown
Owner

BREAKING CHANGE: Renamed truncationCharacters input to truncationText

  • Add clamped output event that emits truncation state
  • Add input validation with console warnings for invalid values
  • Fix precedence logic: lines now correctly takes precedence over maxHeight
  • Fix typo: isTexFitsisTextFits
  • Improve type safety: getLastChild() returns ChildNode | null
  • Add JSDoc documentation to public API
  • Update README with Outputs section

Nigel Mukandi added 2 commits January 19, 2026 03:43
  BREAKING CHANGE: Renamed `truncationCharacters` input to `truncationText`

  - Add `clamped` output event that emits truncation state
  - Add input validation with console warnings for invalid values
  - Fix precedence logic: `lines` now correctly takes precedence over `maxHeight`
  - Fix typo: `isTexFits` → `isTextFits`
  - Improve type safety: `getLastChild()` returns `ChildNode | null`
  - Add JSDoc documentation to public API
  - Update README with Outputs section
  BREAKING CHANGE: Renamed `truncationCharacters` input to `truncationText`

  Performance:
  - Implement binary search for word truncation (O(log n) vs O(n))
  - Cache line height to avoid repeated getComputedStyle calls
  - Convert recursive DOM traversal to iterative approach
  - Store and restore original content for correct re-clamping

  Bug fixes:
  - Fix precedence logic: `lines` now correctly takes precedence over `maxHeight`
  - Add input validation with console warnings for invalid values
  - Fix typo: `isTexFits` → `isTextFits`
  - Improve type safety: `getLastChild()` returns `ChildNode | null`

  Features:
  - Add `clamped` output event that emits truncation state
  - Add JSDoc documentation to public API

  Testing:
  - Add 17 unit tests covering initialization, clamping, validation,
    input changes, precedence, nested content, and edge cases
  - Add karma configuration for test runner

  Demo:
  - Create interactive demo app with configurable controls and live examples
  - Add npm scripts: start, test, test:watch, build:demo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant