Angular Dev Toolkit

In 2004, I began the practice of maintaining an organized Actionscript/Flash library that would be installed at all clients. This allowed me to organize and centralize common code that I used repeatedly at practically every gig.

Shortly after the Angular 2 release in 2016, I began organizing frequently used Typescript code and Angular components/directives/etc into a library I named 'The Angular Dev Toolkit.' 

This post serves as a permanent link to describe the current library contents. All code in the toolkit is Apache 2.0 licensed and while it contains some of my open-source code, much of the library is closed and client-proprietary. As such, it's one of my key competitive advantages, since every client who hires me is several tens of thousands of lines of code further ahead from day one than if they hired someone else. Every client may continue to use the library free of charge and for any commercial project for as long as desired, after my contract is over.

The library has recently been rebranded as the @algorithmist dev toolkit and was completely rebuilt and expanded using Nx Dev Tools. This allows tools from one major section of the toolkit to be easily re-used in another, using the @algorithmist namespace.

So, here is the updated list (folders are highlighted in bold and test folders are not listed) as of Aug. 2020

@ALGORITHMIT DEV TOOLKIT

algorithmist

-- apps (interactive test applications - not listed here)

-- libs

---- lib-profiles (profiles are collections of streams, which are time-dependent data, not necessarily with uniform time intervals; limiting case is a traditional time series).

------ src/lib

-------- enumerations

---------- stat-types.ts

---------- transform-types.ts

-------- models

---------- profile.ts

---------- profile-metadata.ts

---------- stream-def.ts

---------- stream-types.ts

---------- time-units.ts

---------- transform-node-data.ts

---------- transform-type-metadata.ts

-------- profiles

---------- profile-factory.ts

-------- streams

---------- core

------------ copy-inverse-xform.ts

------------ copy-xform.ts

------------ freeform-xform.ts

------------ null-xform.ts

------------ offset-inverse-xform.ts

------------ offset-percent-inverse-xform.ts

------------ offset-percent-xform.ts

------------ offset-xform.ts

------------ scale-inverse-xform.ts

------------ scale-percent-inverse-xform.ts

------------ scale-percent-xform.ts

------------ scale-xform.ts

------------ single-point-inverse-xform.ts

------------ single-point-xform.ts

---------- data

------------ core-data.ts

---------- dataviz

------------ date-heatmap-provider.ts

------------ over-under.ts

------------ quad-area.ts

---------- outliers

------------ exp-smoothing.ts (single, double, and triple exponential smoothing)

---------- power-utilities

------------ replace.ts

---------- stats

------------ first-difference.ts

------------ interval-difference.ts

------------ normalize.ts

------------ normalize-inverse.ts

------------ second-difference.ts

---------- dynamic-xform-factory.ts

---------- power-utilities-xforms.ts

---------- transform-factory.ts

---------- transform-node.ts

-------- utils

---------- to-millliseconds.ts

---- lib-ts-core (core Typescript library)

------ src/lib

-------- core

---------- drawing

------------ ADTRectangleSelector.ts

------------ DrawStack.ts

------------ LineDecoratorFactory.ts

------------ ShapeConstants.ts

---------- shapes

------------ ArcTo.ts

------------ Arrow.ts

------------ CircularArc.ts

------------ CSection.ts

------------ CurvedArrow.ts

------------ EllipticalArc.ts

------------ ISection.ts

------------ LSection.ts

------------ Wedge.ts

-------- dataviz

---------- bezier-utils.ts

---------- spline-to-bezier.ts

-------- enumerations

---------- data-enum.ts

---------- day-of-week.ts

---------- spline-types.ts

---------- time-enum.ts

---------- user-role-enum.ts

-------- libs

---------- ai

------------ decision-tree

-------------- DecisionTree.ts

------------ fsm (finite-state-machines)

-------------- FiniteStateMachine.ts (Reactive, data-driven FSM)

------------ pathfinding

-------------- interfaces

---------------- cell-type.ts

---------------- grid-setup.ts

---------------- grid-view.ts

-------------- astar.ts

-------------- astar-graph.ts

-------------- astar-graph-arc.ts

-------------- astar-min-heap.ts

-------------- astar-tiles.ts

-------------- astar-waypoints.ts

-------------- grid-2d.ts

-------------- tile-node.ts

------------ rules-engine

-------------- ActionManager.ts

-------------- parser-enum.ts

-------------- Rule.ts

-------------- RuleManager.ts

-------------- RuleParser.ts

------------ sequencing-engine

-------------- SequencingEngine.ts

------------ simanneal

-------------- Simulate.ts

------------ text-vsm (text to Vector State Model, text freq., inv. doc. freq, cosine sim. library)

-------------- cosineSim.ts

-------------- score.ts

-------------- textToVSM.ts

-------------- TfIDF.ts

-------------- toVector.ts

-------------- vsmMod.ts

------------- vsmNorm.ts

---------- barcode

------------ code39

-------------- Code39Barcode.ts

---------- composable

------------ Fcns.ts (collection of one-line functions for use in FP composition)

------------ (includes: reverseChars, initials, padLeft, minValue, maxValue, areGreaterThan, getAllGreaterThan, indexFirstGreaterThan)

---------- kinematics

------------ ik-solvers

-------------- ccd-basic.ts

-------------- limb-solver.ts

------------ interfaces

-------------- bone-model.ts

-------------- bone-properties.ts

-------------- chain-model.ts

-------------- colors.ts

-------------- ik-solver.ts

-------------- linkable.ts

------------ rigs

-------------- arm.ts

-------------- base-bone.ts

-------------- bone-template.ts

-------------- chain.ts

-------------- clavicle.ts

-------------- connector.ts

-------------- foot.ts

-------------- hand.ts

-------------- head.ts

-------------- leg.ts

-------------- neck.ts

-------------- pelvis.ts

-------------- simple-spine.ts

------------ simple-physics

-------------- constant-motion-controller.ts

-------------- gravity-controller.ts

-------------- init-params.ts

-------------- motion-controller.ts

-------------- spring-node.ts

-------------- two-point-spring.ts

-------------- wind-controller.ts

---------- misc

------------ CookieMgr.ts

------------ DayHourOffset.ts

------------ getInvervalsBetweenDays.ts

------------ in-enum.ts

------------ indexOfMax.ts

------------ LocalStorageMgr.ts

------------ iterative-mean.ts

------------ orderedPermutations.ts (Knuth Algorithm L)

------------ toCap.ts

------------ toMsec.ts

------------ uuid.ts

---------- paging

------------ Paging.ts

---------- search

------------ Hierarchy.ts

---------- sorting

------------ CountingSort.ts (counting sort implementation)

------------ quick-select.ts (select k-th smallest element of a numeric array along with index)

------------ SortOn.ts (sort an array of objects based on a collection of properties)

---------- tsmt (Typescript Math Toolkit)

------------ crypto

-------------- core

---------------- Euclid.ts (lcm, gcd, extended Euclid alg.)

------------ dataframe (R-style data frame analysis)

-------------- DataFrame.ts

-------------- FrameStats.ts

-------------- TableAnalysis.ts

------------ datastructures

-------------- ArrayDeque.ts

-------------- AVLTree.ts

-------------- BTreeLight.ts

-------------- BTreeNode.ts

-------------- BTreeUtils.ts

-------------- DisjointSet.ts

-------------- DSNode.ts

-------------- DSNodeImpl.ts

-------------- Graph.ts

-------------- graph-from-list.ts

-------------- GraphArc.ts

-------------- GraphList.ts

-------------- GraphNode.ts

-------------- Heap.ts

-------------- IBTree.ts

-------------- IPrioritizable.ts

-------------- LinkedList.ts

-------------- PriorityQueue.ts

-------------- Queue.ts

-------------- SimpleGraph.ts

-------------- SkipList.ts

-------------- SkipListNode.ts

-------------- SkipListNodeImpl.ts

-------------- Stack.ts

-------------- Tree.ts

-------------- TreeNode.ts

------------ decorators (runtime decorators)

-------------- AbstractLineDecorator.ts

-------------- DashedLineDecorator.ts

-------------- DottedLineDecorator.ts

-------------- IGraphics.ts

-------------- ILineDecorator.ts

------------ drawing

-------------- Axis.ts

-------------- FunctionDrawProperties.ts

-------------- graph-marker.ts

-------------- graph-probe.ts

-------------- GraphAxis.ts

-------------- GraphDrawProperties.ts

-------------- LabelDrawProperties.ts

------------ expression-engine

-------------- ExpressionEngine.ts (parse/eval. expressions for multiple independent variables)

------------ functionparser

-------------- FunctionParser.ts (parse/evaluate functions of one or more independent variables)

------------ geom

-------------- circle-fcns

---------------- circle-utility-functions.ts

-------------- splines

---------------- cubic-bezier

------------------ BezierSplineControl.ts

------------------ CubicBezierSpline.ts

---------------- natural-cubic

------------------ CubicSpline.ts

---------------- BasicCircle.ts

---------------- Circle.ts

---------------- circle-factory.ts

---------------- ConvexHull.ts

---------------- Coordinate.ts

---------------- CubicBezier.ts

---------------- DouglasPeucker.ts

---------------- geom-util-functions.ts

---------------- IPlanarCurve.ts

---------------- Lang.ts

---------------- Layout.ts

---------------- LayoutObject.ts

---------------- LayoutPoint.ts

---------------- LayoutTypeEnum.ts

---------------- Line.ts

---------------- McMaster.ts

---------------- PlanarCurve.ts

---------------- Point.ts

---------------- point-random-walk.ts

---------------- Polygon.ts

---------------- QuadBezier.ts

---------------- Rectangle.ts

---------------- RegularNgon.ts

---------------- TwoPointCurve.ts

---------------- Units.ts

------------ item-allocation (continuous and 0-1 knapsack problem)

-------------- AllocatableItem.ts

-------------- DefaultItemStrategy.ts

-------------- IAllocatableItemProps.ts

-------------- IAllocatableItemStrategy.ts

-------------- ItemAllocation.ts

-------------- Knapsack.ts

-------------- Matrix.ts

------------ math

------------ Derivative.ts

------------ Matrix.ts

------------ Neville.ts

------------ PrimeFactorization.ts

------------ Quaternion.ts

------------ RepeatToFrac.ts

------------ misc

-------------- clock-time-model.ts

-------------- extract-props.ts

-------------- Mixin.ts

-------------- UndoRedo.ts

------------ random

-------------- Binning.ts

-------------- deviates.ts

-------------- RandomIntInRange.ts

-------------- SeededRng.ts

------------ shuffle

------------ fisher-yates.ts

------------ statistics

-------------- bayes

---------------- Bayes.ts

---------------- FrequencyTable.ts

-------------- regression

---------------- Bagging.ts

---------------- Bllsq.ts (linear least squares w/bagging)

---------------- Deviates.ts

---------------- llsq.ts

---------------- Pllsq.ts (polynomial least squares(

-------------- BinomialCoef.ts

-------------- Chi2.ts

-------------- DataStats.ts

-------------- ExtNormal.ts

-------------- Normal.ts

-------------- Poisson.ts

-------------- Spcfcn.ts

------------ utils

-------------- ApproxEqual.ts

-------------- ArrayFunctions.ts

-------------- balancedparens.ts

-------------- Bisect.ts

-------------- CircleUtils.ts

-------------- CompareUtils.ts

-------------- CubicRoots.ts

-------------- Gauss.ts

-------------- GeomUtils.ts

-------------- Halley.ts

-------------- Interp.ts

-------------- LayoutUtils.ts

-------------- Limits.ts

-------------- MathUtils.ts

-------------- Newton.ts

-------------- NumerFormatter.ts

-------------- PackingUtils.ts

-------------- PointUtils.ts

-------------- PolygonUtils.ts

-------------- QuadBezierInterpolate.ts

-------------- Solve2x2.ts

-------------- StringUtils.ts

-------------- TableFilter.ts

-------------- toNumber.ts

-------------- TWBRF.ts

---------- validation

------------- Validation.ts

-------- models

---------- App.ts

---------- graphics.ts

---------- IAddress.ts

---------- IBoundary.ts

---------- IBreadcrumbItem.ts

---------- ICubicBezierParams.ts

---------- IHierarchySearchResult.ts

---------- ILoggingAction.ts

---------- IMenuItem.ts

---------- IOuterGeometry.ts

---------- IPageChange.ts

---------- IPoint.ts

---------- IPolyLayout.ts

---------- IPolyLayoutObject.ts

---------- IQuadBezierParam.ts

---------- IRect.ts

---------- ISimAnneal.ts

---------- IUser.ts

---------- IWordVector.ts

---------- User.ts

---- ui-core (core Angular components/directives/pipes/validators/etc)

------ src/lib

-------- dataviz

---------- functions

------------ Quadrant.ts (single-quadrant graphing engine as Angular Component)

---------- profile-chart

------------ directives

------------ am-stream-plot-directive.ts (AmCharts V3)

------------ interfaces

------------ AmChartOptions.ts

------------ AmTimeSeriesDataProvider.ts

------------ chartHitEvent.ts

------------ ChartRightClickItem.ts

------------ ChartZoom.ts

------------ keyCodes.ts

------------ LegendSelection.ts

------------ libs

-------------- createGraph.ts

-------------- deleteGraph.ts

-------------- format-export-name.ts

-------------- getDataIndex.ts

-------------- modifyChartDataProvider.ts

-------------- modifyGraphs.ts

---------- simple-plot

------------ simple-plot-directive.ts (similar to Python SimplePlot)

-------- directives

---------- checkbox-selector-directive.ts

---------- href.directive.ts

---------- input-selector.directive.ts

---------- make-clickable.ts

---------- media-toggle.directive.ts

-------- drawing

---------- freehand-drawing-directive.ts (Freehand drawing in Angular)

-------- guards

---------- AuthGuard.ts

-------- interceptors

---------- ErrorInterceptor.ts

---------- TokenInterceptor.ts

-------- lazy-load (lazy-load JS and CSS)

---------- extension-enum.ts

---------- get-extension.ts

---------- lazy-load-libs.ts

---------- lazy-load-lite.ts

-------- logging

---------- Log.ts

-------- models

---------- stat-tiles.ts

---------- stat-type-selections.ts

-------- pipes

---------- null-dash (replace nulls with dash)

---------- phoneNumber (format a phone number that is provided as a continuous set of digits)

---------- push (push-pipe similar to that published by Fabian Wiles). Subscribe to observable and run CD on a component behind the scenes.

---------- scientific (display a number in scientific/exponential notation)

-------- profiles

---------- stats

------------ stat-bar

------------ stat-bar-component.html

------------ stat-bar-component.scss

------------ stat-bar-component.ts

-------- services

---------- breadcrumb.service.ts

---------- media.service.ts

---------- window-resize.service.ts

-------- validators

---------- CCTypes.ts (types of credit cards)

---------- CCValidator.ts (validate credit card number)

---------- CreditCardValidator.ts (Angular form validator for credit card numbers)

---------- Email validator (Angular email form validator)

---------- PasswordStrength.ts (evaluate password strength on 1-100 basis)

---------- PasswordValidator.ts (Angular form password validator - baseline function)

---------- patternValidator.ts (Angular form regex pattern validation)

It's difficult to provide a static visual tour of the entire library, so here are a couple screen shots to provide a small glimpse 'under the hood.'

No alt text provided for this image
No alt text provided for this image

If you have any questions about the library or wish to schedule a consultation on your project, please contact me at theAlgorithmist [at] gmail [dot] com.

Thanks and refer back to this link frequently to keep up on changes to the toolkit.

要查看或添加评论,请登录

Jim Armstrong的更多文章

  • Defining Projects

    Defining Projects

    When asked to describe myself, I often like to let my work speak for itself. It is highly impractical to…

    3 条评论
  • Publications

    Publications

    This article contains a list of past publications and white papers. Most of these were from the early part of my career…

    1 条评论
  • Minimizing Worst-Case Complexity

    Minimizing Worst-Case Complexity

    This is a reprint of a blog post I made in 2017 regarding a problem submitted for inclusion in the Typescript…

  • 5-Sided Die Problem

    5-Sided Die Problem

    This is a reprint of a 2018 post from my old algorithmist.net blog that is currently being phased out.

  • Reactive, Data-Driven Finite State Machine

    Reactive, Data-Driven Finite State Machine

    TL;DR – This project is open source and the following description is rather long. It is also largely a repeat of…

  • Typescript Sequencing Engine

    Typescript Sequencing Engine

    This is a follow-up to my article about Decision Trees and the process of replacing complex (and static) logic in…

  • Angular Champion

    Angular Champion

    I was honored to be selected as an Angular ng-conf Champion. It was really cool to be on the floor during my first…

    1 条评论
  • Typescript Decision Tree

    Typescript Decision Tree

    The Angular Dev Toolkit is my client-only Angular/Typescript library. This library of Angular…

  • Typescript Math Toolkit Data Structures

    Typescript Math Toolkit Data Structures

    I am continually working on the core data structures that will be used in the Typescript Math Toolkit. My goal is to…

  • Angular 2 And The Typescript Math Toolkit

    Angular 2 And The Typescript Math Toolkit

    The Angular 2 wave is almost upon us. Google is creating more than just a framework; it will be part of an ecosystem…

    3 条评论

社区洞察

其他会员也浏览了