{"version":3,"file":"ngx-basic-primitives.mjs","sources":["../../../projects/ngx-basic-primitives/src/lib/enums.ts","../../../projects/ngx-basic-primitives/src/lib/structs/rect.ts","../../../projects/ngx-basic-primitives/src/lib/structs/size.ts","../../../projects/ngx-basic-primitives/src/lib/structs/thickness.ts","../../../projects/ngx-basic-primitives/src/lib/structs/point.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/graphics/path.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/graphics/label.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/graphics/template.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/graphics/placeholder.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/graphics/layer.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/graphics/graphics.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/templates/AbstractTemplate.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/templates/AnnotationLabelTemplate.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/templates/ButtonsTemplate.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/templates/CheckBoxTemplate.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/templates/CursorTemplate.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/templates/CustomRenderTemplate.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/templates/DotHighlightTemplate.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/templates/GroupTitleTemplate.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/templates/HighlightTemplate.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/templates/EndPointTemplate.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/templates/ItemTemplate.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/templates/LabelAnnotationTemplate.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/templates/LevelBackgroundTemplate.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/templates/LevelTitleTemplate.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/templates/UserTemplate.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/task-manager-factory.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/rotated-text.component.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/rotated-text.component.html","../../../projects/ngx-basic-primitives/src/lib/configs/org-item-config.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/components/item.component.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/components/item.component.html","../../../projects/ngx-basic-primitives/src/lib/configs/template-config.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/components/cursor.component.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/components/highlight.component.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/components/dot-highlight.component.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/components/checkbox.component.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/components/group-title.component.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/components/group-title.component.html","../../../projects/ngx-basic-primitives/src/lib/configs/connector-annotation-config.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/components/end-point.component.ts","../../../projects/ngx-basic-primitives/src/lib/configs/level-annotation-config.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/components/level-background.component.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/components/level-title.component.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/components/level-title.component.html","../../../projects/ngx-basic-primitives/src/lib/diagrams/base-diagram.component.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/base-diagram.component.html","../../../projects/ngx-basic-primitives/src/lib/events/fam-event-args.ts","../../../projects/ngx-basic-primitives/src/lib/events/org-event-args.ts","../../../projects/ngx-basic-primitives/src/lib/events/render-event-args.ts","../../../projects/ngx-basic-primitives/src/lib/events/selection-event-args.ts","../../../projects/ngx-basic-primitives/src/lib/configs/org-config.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/org-diagram.component.ts","../../../projects/ngx-basic-primitives/src/lib/configs/fam-config.ts","../../../projects/ngx-basic-primitives/src/lib/diagrams/fam-diagram.component.ts","../../../projects/ngx-basic-primitives/src/lib/ngx-basic-primitives.service.ts","../../../projects/ngx-basic-primitives/src/lib/ngx-basic-primitives.module.ts","../../../projects/ngx-basic-primitives/src/lib/configs/fam-item-config.ts","../../../projects/ngx-basic-primitives/src/lib/configs/palette-item-config.ts","../../../projects/ngx-basic-primitives/src/lib/configs/highlight-path-annotation-config.ts","../../../projects/ngx-basic-primitives/src/lib/configs/label-annotation-config.ts","../../../projects/ngx-basic-primitives/src/lib/configs/shape-annotation-config.ts","../../../projects/ngx-basic-primitives/src/lib/configs/background-annotation-config.ts","../../../projects/ngx-basic-primitives/src/public-api.ts","../../../projects/ngx-basic-primitives/src/ngx-basic-primitives.ts"],"sourcesContent":["/**\r\n * The enumeration sets leftward or rightward item placement relative to the referenced item.\r\n * In the case of assistants or advisers, the referenced node is their immediate parent.\r\n * In the case of the family diagram, the referenced node is a sibling. \r\n *  \r\n * @enum {AdviserPlacementType}\r\n */\r\n export enum AdviserPlacementType {\r\n    /**\r\n     * Auto select by layout manager\r\n     */\r\n    Auto = 0,\r\n    /**\r\n     * Left side\r\n     */\r\n    Left = 2,\r\n    /**\r\n     * Right side\r\n     */\r\n    Right = 3\r\n};\r\n\r\n\r\n/**\r\n * Defines type of on-screen and in-layout annotation object. Annotations are geometrical \r\n * figures drawn around or bound to existing nodes of the diagram.\r\n *\r\n * @enum {AnnotationType}\r\n */\r\nexport enum AnnotationType  {\r\n    /**\r\n     * The connector annotation displays a spline between two nodes of the diagram.\r\n     * They are drawn on top and across the existing diagram layout, and they don't affect nodes placement.\r\n     * If available space between nodes is not enough to display connector annotation,\r\n     * then control draws it outside on the side of them.\r\n     */\r\n    Connector = 0,\r\n    /**\r\n     * Shape annotation is a possibility to draw some geometrical shapes over several nodes of the diagram. \r\n     */\r\n    Shape = 1,\r\n    /**\r\n     * Highlight path annotation traces a path between a given sequence of nodes over existing relation lines in the diagram.\r\n     */\r\n    HighlightPath = 2,\r\n    /**\r\n     * The in-layout label annotation display values over relation lines between nodes. \r\n     * The control preserves space for labels in the diagram layout so they don't overlap nodes.\r\n     * Label annotations are designed for auto-placement and bundling of connection lines between nodes when needed.\r\n     */\r\n    Label = 3,\r\n    /**\r\n     * The background annotation highlights nodes via drawing the rectangular shape in the node's background.\r\n     * If the same style annotations of neighboring nodes overlap, control merges them into one continuous polygon geometry. \r\n     */\r\n    Background = 4,\r\n    /**\r\n     * Level annotation highlights same level nodes of the diagram via drawing continuous rectangular shape \r\n     * from side to side in their background. Level has optional title on the side of the diagram view area.\r\n     * Title may be placed inside or outside of the diagram. If it is placed inside, it is drawn in the \r\n     * background and does not occupy space. \r\n     */\r\n    Level = 5\r\n};\r\n\r\n/**\r\n * The enumeration defines the shape of children's formation. By default, control places children in a horizontal \r\n * line below the parent node. On a large scale, this may result in the end-user having to scroll screens \r\n * to view all of them. To compensate, we provide the option of placing all of the children of a parent node\r\n * in a square/matrix formation. That will reduce sideways screen scrolling by compacting the child\r\n * nodes into a much smaller area on the screen.\r\n *  \r\n * @enum {ChildrenPlacementType}\r\n */\r\nexport enum ChildrenPlacementType  {\r\n    /**\r\n     * Auto = This mode lets you set nodes layout at the component level and then redefine it for individual nodes if needed.\r\n     */\r\n    Auto = 0,\r\n    /**\r\n     * Vertical layout\r\n     */\r\n    Vertical = 1,\r\n    /**\r\n     * Horizontal layout\r\n     */\r\n    Horizontal = 2,\r\n    /**\r\n     * Matrix formation of the nodes\r\n     */\r\n    Matrix = 3\r\n};\r\n\r\n/**\r\n * Just a list of named colors.\r\n * \r\n * @ignore\r\n * @enum {Colors}\r\n */\r\nexport enum Colors  {\r\n    AliceBlue = \"#f0f8ff\",\r\n    AntiqueWhite = \"#faebd7\",\r\n    Aqua = \"#00ffff\",\r\n    Aquamarine = \"#7fffd4\",\r\n    Azure = \"#f0ffff\",\r\n  \r\n    Beige = \"#f5f5dc\",\r\n    Bisque = \"#ffe4c4\",\r\n    Black = \"#000000\",\r\n    BlanchedAlmond = \"#ffebcd\",\r\n    Blue = \"#0000ff\",\r\n    BlueViolet = \"#8a2be2\",\r\n    Brown = \"#a52a2a\",\r\n    BurlyWood = \"#deb887\",\r\n    Bronze = \"#cd7f32\",\r\n  \r\n    CadetBlue = \"#5f9ea0\",\r\n    ChartReuse = \"#7fff00\",\r\n    Chocolate = \"#d2691e\",\r\n    Coral = \"#ff7f50\",\r\n    CornflowerBlue = \"#6495ed\",\r\n    Cornsilk = \"#fff8dc\",\r\n    Crimson = \"#dc143c\",\r\n    Cyan = \"#00ffff\",\r\n    DarkBlue = \"#00008b\",\r\n    DarkCyan = \"#008b8b\",\r\n    DarkGoldenrod = \"#b8860b\",\r\n    DarkGray = \"#a9a9a9\",\r\n    DarkGreen = \"#006400\",\r\n    DarkKhaki = \"#bdb76b\",\r\n    DarkMagenta = \"#8b008b\",\r\n    DarkOliveGreen = \"#556b2f\",\r\n    Darkorange = \"#ff8c00\",\r\n    DarkOrchid = \"#9932cc\",\r\n    DarkRed = \"#8b0000\",\r\n    DarkSalmon = \"#e9967a\",\r\n    DarkSeaGreen = \"#8fbc8f\",\r\n    DarkSlateBlue = \"#483d8b\",\r\n    DarkSlateGray = \"#2f4f4f\",\r\n    DarkTurquoise = \"#00ced1\",\r\n    DarkViolet = \"#9400d3\",\r\n    DeepPink = \"#ff1493\",\r\n    DeepSkyBlue = \"#00bfff\",\r\n    DimGray = \"#696969\",\r\n    DodgerBlue = \"#1e90ff\",\r\n  \r\n    FireBrick = \"#b22222\",\r\n    FloralWhite = \"#fffaf0\",\r\n    ForestGreen = \"#228b22\",\r\n    Fuchsia = \"#ff00ff\",\r\n  \r\n    Gainsboro = \"#dcdcdc\",\r\n    GhostWhite = \"#f8f8ff\",\r\n    Gold = \"#ffd700\",\r\n    Goldenrod = \"#daa520\",\r\n    Gray = \"#808080\",\r\n    Green = \"#008000\",\r\n    GreenYellow = \"#adff2f\",\r\n  \r\n    Honeydew = \"#f0fff0\",\r\n    Hotpink = \"#ff69b4\",\r\n  \r\n    IndianRed = \"#cd5c5c\",\r\n    Indigo = \"#4b0082\",\r\n    Ivory = \"#fffff0\",\r\n    Khaki = \"#f0e68c\",\r\n  \r\n    Lavender = \"#e6e6fa\",\r\n    LavenderBlush = \"#fff0f5\",\r\n    Lawngreen = \"#7cfc00\",\r\n    Lemonchiffon = \"#fffacd\",\r\n    LightBlue = \"#add8e6\",\r\n    LightCoral = \"#f08080\",\r\n    LightCyan = \"#e0ffff\",\r\n    LightGoldenrodYellow = \"#fafad2\",\r\n  \r\n    LightGray = \"#d3d3d3\",\r\n    LightGreen = \"#90ee90\",\r\n    LightPink = \"#ffb6c1\",\r\n    LightSalmon = \"#ffa07a\",\r\n    LightSeaGreen = \"#20b2aa\",\r\n    LightSkyBlue = \"#87cefa\",\r\n    LightSlateGray = \"#778899\",\r\n    LightSteelBlue = \"#b0c4de\",\r\n  \r\n    LightYellow = \"#ffffe0\",\r\n    Lime = \"#00ff00\",\r\n    Limegreen = \"#32cd32\",\r\n    Linen = \"#faf0e6\",\r\n  \r\n    Magenta = \"#ff00ff\",\r\n    Maroon = \"#800000\",\r\n    MediumAquamarine = \"#66cdaa\",\r\n    MediumBlue = \"#0000cd\",\r\n    MediumOrchid = \"#ba55d3\",\r\n    MediumPurple = \"#9370d8\",\r\n    MediumSeaGreen = \"#3cb371\",\r\n    MediumSlateBlue = \"#7b68ee\",\r\n  \r\n    MediumSpringGreen = \"#00fa9a\",\r\n    MediumTurquoise = \"#48d1cc\",\r\n    MediumVioletRed = \"#c71585\",\r\n    MidnightBlue = \"#191970\",\r\n    MintCream = \"#f5fffa\",\r\n    MistyRose = \"#ffe4e1\",\r\n    Moccasin = \"#ffe4b5\",\r\n  \r\n    NavajoWhite = \"#ffdead\",\r\n    Navy = \"#000080\",\r\n  \r\n    Oldlace = \"#fdf5e6\",\r\n    Olive = \"#808000\",\r\n    Olivedrab = \"#6b8e23\",\r\n    Orange = \"#ffa500\",\r\n    OrangeRed = \"#ff4500\",\r\n    Orchid = \"#da70d6\",\r\n  \r\n    PaleGoldenRod = \"#eee8aa\",\r\n    PaleGreen = \"#98fb98\",\r\n    PaleTurquoise = \"#afeeee\",\r\n    PaleVioletRed = \"#d87093\",\r\n    Papayawhip = \"#ffefd5\",\r\n    Peachpuff = \"#ffdab9\",\r\n    Peru = \"#cd853f\",\r\n    Pink = \"#ffc0cb\",\r\n    Plum = \"#dda0dd\",\r\n    PowderBlue = \"#b0e0e6\",\r\n    Purple = \"#800080\",\r\n  \r\n    Red = \"#ff0000\",\r\n    RosyBrown = \"#bc8f8f\",\r\n    RoyalBlue = \"#4169e1\",\r\n  \r\n    SaddleBrown = \"#8b4513\",\r\n    Salmon = \"#fa8072\",\r\n    SandyBrown = \"#f4a460\",\r\n    SeaGreen = \"#2e8b57\",\r\n    Seashell = \"#fff5ee\",\r\n    Sienna = \"#a0522d\",\r\n    Silver = \"#c0c0c0\",\r\n    SkyBlue = \"#87ceeb\",\r\n    SlateBlue = \"#6a5acd\",\r\n    SlateGray = \"#708090\",\r\n    Snow = \"#fffafa\",\r\n    SpringGreen = \"#00ff7f\",\r\n    SteelBlue = \"#4682b4\",\r\n  \r\n    Tan = \"#d2b48c\",\r\n    Teal = \"#008080\",\r\n    Thistle = \"#d8bfd8\",\r\n    Tomato = \"#ff6347\",\r\n    Turquoise = \"#40e0d0\",\r\n  \r\n    Violet = \"#ee82ee\",\r\n  \r\n    Wheat = \"#f5deb3\",\r\n    White = \"#ffffff\",\r\n    WhiteSmoke = \"#f5f5f5\",\r\n  \r\n    Yellow = \"#ffff00\",\r\n    YellowGreen = \"#9acd32\"\r\n};\r\n\r\n/**\r\n * Label placement relative to connector annotation. Connector annotation is bound and drawn between two nodes\r\n * defined by two properties = `fromItem` and `toItem`. Label can be placed close to \"start\", \"end\" nodes or in between of them\r\n *  along the connector line. \r\n *\r\n * @enum {ConnectorLabelPlacementType}\r\n */\r\nexport enum ConnectorLabelPlacementType  {\r\n    From = 0,\r\n    Between = 1,\r\n    To = 2\r\n};\r\n\r\n/**\r\n * Connector placement type defines style of connector line drawing over diagram layout. It supports two options = \r\n * the `Straight` is classic direct line connecting two nodes, this is the most expected style of connector annotation\r\n * drawing over diagram, the second style is called `Offbeat` and it design to dynamically adopt to nodes mutual \r\n * location and gap between them. It uses free hand line style drawing going from start to the end nodes. Since every diagram \r\n * is packed with various connection lines, this annotation placement style is deliberately made not straight, so it can be \r\n * noticeable on top of other lines of the diagram.\r\n *\r\n * @enum {ConnectorPlacementType}\r\n */\r\nexport enum ConnectorPlacementType  {\r\n    /**\r\n     * Places connector annotation in the way that it does not overlap underlying diagram connector lines.\r\n     * If nodes are close to each other and gap between them cannot fit annotation, then \r\n     * it will be drawn on the side of the nodes, so it will have enough space for arrow and label.\r\n     */\r\n    Offbeat = 0,\r\n    /**\r\n     * Straight line annotation between nodes. This annotation mode provides basic conflict resolution between annotations\r\n     * overlapping each other. If two or more straight annotations overlap each other then layout engine will \r\n     * add extra offset to them, so they will be drawn in parallel to each other.\r\n     */\r\n    Straight = 1\r\n};\r\n\r\n/**\r\n * Connector shape type defines number of lines and arrows at their ends drawn between nodes of the connector annotation.\r\n * This feature combined with basic conflict resolution, which places overlapping annotations in parallel when they overlap each other,\r\n * gives you full flexibility over variations of possible connector lines between two given nodes of diagram.\r\n *\r\n * @enum {ConnectorShapeType}\r\n */\r\nexport enum ConnectorShapeType  {\r\n    /**\r\n     * Single line with one arrow\r\n     */\r\n    OneWay = 0,\r\n    /**\r\n     * Two parallel lines with single arrows\r\n     */\r\n    TwoWay = 1,\r\n    /**\r\n     * Single line with 2 arrows.\r\n     */\r\n    BothWay = 2\r\n};\r\n\r\nexport enum ConnectorStyleType  {\r\n    Extra = 0,\r\n    Regular = 1,\r\n    Highlight = 2\r\n};\r\n\r\n/**\r\n * Connection lines style. This option is only applicable to nodes minimized to markers or lines.\r\n * Full size nodes are always connected with squared connection lines\r\n *  \r\n * @enum {ConnectorType}\r\n */\r\nexport enum ConnectorType  {\r\n    /**\r\n     * Orthogonal connection lines\r\n     */\r\n    Squared = 0,\r\n    /**\r\n     * Angular direct node to node connection lines\r\n     */\r\n    Angular = 1,\r\n    /**\r\n     * Curved direct node to node connection lines\r\n     */\r\n    Curved = 2\r\n};\r\n\r\n/**\r\n * Elbow style of connection lines\r\n *  \r\n * @enum {ElbowType}\r\n */\r\nexport enum ElbowType  {\r\n    /**\r\n     * No elbow\r\n     */\r\n    None = 0,\r\n    /**\r\n     * Dot marker at the intersection\r\n     */\r\n    Dot = 1,\r\n    /**\r\n     * Bevel elbow\r\n     */\r\n    Bevel = 2,\r\n    /**\r\n     * Round elbow\r\n     */\r\n    Round = 3\r\n};\r\n  \r\n/**\r\n * Defines option state.\r\n * \r\n * @readonly\r\n * @enum {number}\r\n */\r\nexport enum Enabled  {\r\n    /**\r\n     * Option state is auto defined.\r\n     */\r\n    Auto = 0,\r\n    /**\r\n     * Enabled\r\n     */\r\n    True = 1,\r\n    /**\r\n     * Disabled\r\n     */\r\n    False = 2\r\n};\r\n\r\n/**\r\n * This enumeration defines objects gravity in the chart relative to parents and children.\r\n * For example connection lines can be drawn with arrows, so this enumeration controls\r\n * direction of arrows up towards parents or down towards children in the hierarchy.\r\n * The other example is nodes placement close to their immediate parents or immediate children \r\n * in case when parents and children are offset from them by multiple levels in hierarchy.\r\n *  \r\n * @enum {GroupByType}\r\n */\r\nexport enum GroupByType  {\r\n    None = 0,\r\n    Parents = 1,\r\n    Children = 2\r\n};\r\n\r\n/**\r\n * Horizontal alignment\r\n *  \r\n * @enum {HorizontalAlignmentType}\r\n */\r\nexport enum HorizontalAlignmentType  {\r\n    Center = 0,\r\n    Left = 1,\r\n    Right = 2\r\n};\r\n\r\n/**\r\n * The enumeration defines child node placement relative to its parent node.\r\n * By default, the control places all children that belong to the same parent as\r\n * the horizontal line below it. That works for a regular hierarchy of nodes\r\n * having the same type. In the organizational chart, we have a lot of exceptions\r\n * and non-hierarchical relations between nodes. For this purpose, we provide custom\r\n * item types to place nodes around the logical parent, which helps visually\r\n * differentiate nodes logically belonging to the same parent.  These placement\r\n * options give a lot of space for creating roles such as an Assistant, Adviser,\r\n * various Partners, and co-heads in the organization.  Additionally, control allows\r\n * shaping the same type of children into vertical and matrix formations\r\n * and place them into multiple levels.\r\n *  \r\n * @enum {ItemType}\r\n */\r\nexport enum ItemType  {\r\n    /**\r\n     * The regular type places node below parent.\r\n     */\r\n    Regular = 0,\r\n    /**\r\n     * The assistant type places node at the row on the side of the connection line going from parent to its children.\r\n     */\r\n    Assistant = 1,\r\n    /**\r\n     * The sub-assistant node type is a variation of the assistant node type. \r\n     * The sub-assistant places node at the row on the side of the connection line\r\n     * going from parent to its children. The connection line goes out of the top side of the node.\r\n     */\r\n    SubAssistant = 4,\r\n    /**\r\n     * The adviser type places node on the right or left side of the parent.\r\n     */\r\n    Adviser = 2,\r\n    /**\r\n     * The sub-adviser type places node on the right or left side of the parent. \r\n     * The connection line goes out of the top side of the sub-adviser node.\r\n     */\r\n    SubAdviser = 5,\r\n    /**\r\n     * The general partner type is an imitation of multiple inheritances in the organizational chart hierarchy.\r\n     * The general-partner node is drawn side by side with its logical parent, and control places\r\n     * regular children below them, so they visually look like parents. Another layout specifics\r\n     * of the general partner is that it is connected to its logical parent's parent.\r\n     * So visually, it becomes an immediate child of its grandparent.\r\n     */\r\n    GeneralPartner = 6,\r\n    /**\r\n     * The limited partner is a variation of the general partner.\r\n     * The only difference is that it is not connected to its logical grandparent.\r\n     */\r\n    LimitedPartner = 7,\r\n    /**\r\n     * The adviser partner is a variation of the limited partner. \r\n     * The difference is that it has an extra connection line to its logical parent.\r\n     */\r\n    AdviserPartner = 8\r\n};\r\n\r\nexport enum LabelType {\r\n  Regular = 0,\r\n  Dummy = 1,\r\n  Fixed = 2,\r\n  None = 3\r\n};\r\n\r\nexport enum Layers {\r\n  LevelAnnotation = 1,\r\n  BackgroundAnnotation = 2,\r\n  BackgroundAnnotations = 3,\r\n  BackgroundConnectorAnnotation = 4,\r\n  BackgroundHighlightPathAnnotations = 5,\r\n  Connector = 6,\r\n  ForegroundHighlightPathAnnotations = 7,\r\n  Highlight = 8,\r\n  Marker = 9,\r\n  Label = 10,\r\n  Cursor = 11,\r\n  Item = 12,\r\n  ForegroundAnnotations = 13,\r\n  ForegroundConnectorAnnotation = 14,\r\n  Annotation = 15,\r\n  Controls = 16\r\n};\r\n\r\n/**\r\n * Line style of connection lines.\r\n *  \r\n * @enum {LineType}\r\n */\r\nexport enum LineType  {\r\n    Solid = 0,\r\n    Dotted = 1,\r\n    Dashed = 2\r\n};\r\n\r\n/**\r\n * Interactivity mode. Control implements standard behavior of classic desktop UI controls. It supports single selected node - cursor.\r\n * It supports on mouse over node visual feedback - highlight. It supports selection of group of nodes - selected items. \r\n * All that functionality can be disabled depending on your application requirements.\r\n *  \r\n * @enum {NavigationMode}\r\n */\r\nexport enum NavigationMode  {\r\n    /**\r\n     * Everything is on.\r\n     */\r\n    Default = 0,\r\n    /**\r\n     * Cursor selection only without highlight. \r\n     */\r\n    CursorOnly = 1,\r\n    /**\r\n     * Mouse over feedback only\r\n     */\r\n    HighlightOnly = 3,\r\n    /**\r\n     * No interactivity\r\n     */\r\n    Inactive = 2\r\n};\r\n\r\n/**\r\n * Neighbors selection mode. The control supports diagram auto fit into screen view. It is achieved via drawing nodes in form of markers.\r\n * So small nodes make diagram fit into the screen space, but they have no details. Our solution is to show cursor and selected items\r\n * of the diagram in full size and draw all other as markers.\r\n *\r\n * This enumeration controls visibility of neighbors of the cursor node in the auto fit mode. It allows to draw \r\n * them in full size regardless of available space.\r\n *\r\n * @enum {NavigationMode}\r\n */\r\nexport enum NeighboursSelectionMode  {\r\n    /**\r\n     * Selects parents and children of the cursor item\r\n     */\r\n    ParentsAndChildren = 0,\r\n    /**\r\n     * Selects parents, children, and siblings of the cursor item.\r\n     */\r\n    ParentsChildrenSiblingsAndSpouses = 1\r\n};\r\n  \r\n/**\r\n * Controls diagram layout orientation. The control can be rotated in any direction, this is needed for arabic support and various layout.\r\n *  \r\n * @enum {OrientationType}\r\n */\r\nexport enum OrientationType  {\r\n    Top = 0,\r\n    Bottom = 1,\r\n    Left = 2,\r\n    Right = 3,\r\n    None = 4\r\n};\r\n\r\n/**\r\n * Fits diagram into available screen space. When diagram size significantly larger that available screen space, its scrolling and navigation\r\n * becomes problematic, so we support automatic diagram fit into the screen space via rendering some of its nodes in form of small markers.\r\n * Control supports several page fit mode options which can match your requirements depending on diagram layout, orientation and number of nodes.\r\n * \r\n * Autosize - this option is opposite to auto fit. It lets you expand control size to fit all diagram nodes full size without scroll bars.\r\n *  \r\n * @enum {PageFitMode}\r\n */\r\nexport enum PageFitMode  {\r\n    /**\r\n     * Disabled. All nodes are being rendered using their templates.\r\n     */\r\n    None = 0,\r\n    /**\r\n     * Fits diagram into the view width, so it has no horizontal scrollbar.\r\n     */\r\n    PageWidth = 1,\r\n    /**\r\n     * Fits diagram into the view hight, so it has no vertical scrollbar.\r\n     */\r\n    PageHeight = 2,\r\n    /**\r\n     * Fits diagram into the view so it has no scroll bars.\r\n     */\r\n    FitToPage = 3,\r\n    /**\r\n     * This is opposite mode to auto fit. In this mode diagram controls its size, it sets its size to fit all nodes and render them full size using templates.\r\n     */\r\n    AutoSize = 5,\r\n    /**\r\n     * Renders all nodes as markers regardless of available screen space. Control selects and renders full size cursor, its neighbours and selected nodes only.\r\n     * Don't forget to disable selection path as well, so nodes from cursor up to the root are not selected.\r\n     */\r\n    SelectionOnly = 6\r\n};\r\n\r\n/**\r\n * Defines element placement relative to rectangular area it is bound to.\r\n *  \r\n * @enum {PlacementType}\r\n */\r\nexport enum PlacementType  {\r\n    /**\r\n     * Defined by other control options.\r\n     */\r\n    Auto = 0,\r\n    TopLeft = 8,\r\n    Top = 1,\r\n    TopRight = 2,\r\n    RightTop = 11,\r\n    Right = 3,\r\n    RightBottom = 12,\r\n    BottomRight = 4,\r\n    Bottom = 5,\r\n    BottomLeft = 6,\r\n    LeftBottom = 10,\r\n    Left = 7,\r\n    LeftTop = 9\r\n};\r\n\r\n/**\r\n * This enumeration is used to tell rendering callback functions current state of the template.\r\n * It is needed for proper events binding and content updates.\r\n *\r\n * @enum {RenderingMode}\r\n */\r\nexport enum RenderingMode  {\r\n    /**\r\n     * Template is just created.\r\n     */\r\n    Create = 0,\r\n    /**\r\n     * Template is reused and update is needed.\r\n     */\r\n    Update = 1\r\n};\r\n\r\nexport enum SegmentType  {\r\n  Line = 0,\r\n  Move = 1,\r\n  QuadraticArc = 2,\r\n  CubicArc = 3,\r\n  Dot = 4\r\n};\r\n\r\n/**\r\n * Selection path mode. This enumeration controls visibility of nodes between cursor and the root of the diagram in the auto fit mode. It allows to draw \r\n * them in full size regardless of available space and auto fit mode.\r\n * \r\n * The control supports diagram auto fit into screen view. It is achieved via drawing nodes in form of markers.\r\n * So small nodes make diagram fit into the screen space, but they have no details. Our solution is to show cursor and selected items\r\n * of the diagram in full size and draw all other diagram nodes as markers.\r\n *\r\n * @enum {SelectionPathMode}\r\n */\r\nexport enum SelectionPathMode  {\r\n    /**\r\n     * No selection path\r\n     */\r\n    None = 0,\r\n    /**\r\n     * Selects cursor node parents up to the root are renders them full size regardless of available space.\r\n     */\r\n    FullStack = 1\r\n};\r\n\r\n/**\r\n * Shapes\r\n *  \r\n * @enum {ShapeType}\r\n */\r\nexport enum ShapeType  {\r\n    Rectangle = 0,\r\n    Oval = 1,\r\n    Triangle = 2,\r\n    CrossOut = 3,\r\n    Circle = 4,\r\n    Rhombus = 5,\r\n    Wedge = 7,\r\n    FramedOval = 8,\r\n    FramedTriangle = 9,\r\n    FramedWedge = 10,\r\n    FramedRhombus = 11,\r\n    None = 6\r\n};\r\n\r\nexport enum SideFlag  {\r\n  Top = 1,\r\n  Right = 2,\r\n  Bottom = 4,\r\n  Left = 8\r\n};\r\n\r\n/**\r\n * Text rotation\r\n *  \r\n * @enum {TextOrientationType}\r\n */\r\nexport enum TextOrientationType  {\r\n    /**\r\n     * Regular horizontal text\r\n     */\r\n    Horizontal = 0,\r\n    /**\r\n     * Rotate text left for 90 degree.\r\n     */\r\n    RotateLeft = 1,\r\n    /**\r\n     * Rotate text right for 90 degree.\r\n     */\r\n    RotateRight = 2,\r\n    /**\r\n     * Depends on other options.\r\n     */\r\n    Auto = 3\r\n};\r\n\r\n/**\r\n * Controls update of the diagram\r\n *\r\n * @enum {UpdateMode}\r\n */\r\nexport enum UpdateMode  {\r\n    /**\r\n     * Forces control to make a full chart redraw. It is equivalent to initial chart creation. \r\n     * It removes everything from placeholder and renders all elements again.\r\n     */\r\n    Recreate = 0,\r\n    /**\r\n     * Optimized refresh. It only updates visual elements which needs to be updated.\r\n     */\r\n    Refresh = 1,\r\n    /**\r\n     * Updates highlight position only\r\n     */\r\n    PositonHighlight = 2\r\n};\r\n\r\n/**\r\n * Defines relation between two vectors\r\n *\r\n * @enum {VectorRelationType}\r\n */\r\nexport enum VectorRelationType  {\r\n    None = 0,\r\n    Null = 1,\r\n    Collinear = 2,\r\n    Opposite = 3\r\n};\r\n\r\n/**\r\n * Controls nodes vertical alignment inside row of nodes. If row of nodes contains nodes of\r\n * multiple sizes then small nodes are vertically aligned relative to their large neighbours.\r\n *  \r\n * @enum {VerticalAlignmentType}\r\n */\r\nexport enum VerticalAlignmentType  {\r\n    Top = 0,\r\n    Middle = 1,\r\n    Bottom = 2\r\n};\r\n\r\n/**\r\n * Minimal nodes visibility in the diagram. If auto fit of diagram into current page size is enabled, then\r\n * this option controls minimum allowed size of diagram nodes.\r\n *  \r\n * @enum {Visibility}\r\n */\r\nexport enum Visibility  {\r\n    /**\r\n     * Selects best visibility mode.\r\n     */\r\n    Auto = 0,\r\n    /**\r\n     * Regular template based diagram nodes\r\n     */\r\n    Normal = 1,\r\n    /**\r\n     * Diagram draws nodes in form of markers\r\n     */\r\n    Dot = 2,\r\n    /**\r\n     * Diagram only draws connection lines and hides actual nodes.\r\n     */\r\n    Line = 3,\r\n    /**\r\n     * Makes node invisible in layout. If node has no parents then \r\n     * its connection lines are hidden as well.\r\n     * \r\n     * @ignore\r\n     */\r\n    Invisible = 4\r\n};\r\n\r\n/**\r\n * Option to draw annotation in the foreground or in the background of diagram nodes.\r\n *  \r\n * @enum {ZOrderType}\r\n */\r\nexport enum ZOrderType  {\r\n    /**\r\n     * Depends on annotation type.\r\n     */\r\n    Auto = 0,\r\n    /**\r\n     * Background\r\n     */\r\n    Background = 1,\r\n    /**\r\n     * Foreground\r\n     */\r\n    Foreground = 2\r\n};\r\n","export class Rect {\r\n  x: number;\r\n  y: number;\r\n  width: number;\r\n  height: number;\r\n  context: any;\r\n\r\n  constructor(x: number = 0, y: number = 0, width: number = 0, height: number = 0, context: any = null) {\r\n    this.x = x;\r\n    this.y = y;\r\n    this.width = width;\r\n    this.height = height;\r\n  }\r\n\r\n  translate(x: number, y: number) {\r\n    this.x = this.x + x;\r\n    this.y = this.y + y;\r\n  \r\n    return this;\r\n  };  \r\n\r\n  getCSS(units: string = \"px\") {\r\n    var result = {\r\n      left: this.x + units,\r\n      top: this.y + units,\r\n      width: this.width + units,\r\n      height: this.height + units\r\n    };\r\n    return result;\r\n  };\r\n};\r\n","export class Size {\r\n    width: number = 0;\r\n    height: number = 0;\r\n\r\n    constructor(width: number = 0, height: number = 0) {\r\n        this.width = width;\r\n        this.height = height;\r\n    }\r\n\r\n    getCSS?(units: string = \"px\") {\r\n        var result = {\r\n            width: this.width + units,\r\n            height: this.height + units\r\n        };\r\n        return result;\r\n    };\r\n\r\n    space?() {\r\n        return this.width * this.height;\r\n    };\r\n}","export class Thickness {\r\n    left: number = 0;\r\n    top: number = 0;\r\n    right: number = 0;\r\n    bottom: number = 0;\r\n\r\n    constructor(left: number, top: number, right: number, bottom: number) {\r\n        this.left = left;\r\n        this.top = top;\r\n        this.right = right;\r\n        this.bottom = bottom;\r\n    }\r\n}","export class Point {\r\n    x: number = 0;\r\n    y: number = 0;\r\n\r\n    constructor(x: number = 0, y: number = 0) {\r\n        this.x = x;\r\n        this.y = y;\r\n    }\r\n\r\n    getCSS(units: string = \"px\") {\r\n        var result = {\r\n            left: this.x + units,\r\n            top: this.y + units\r\n          };\r\n        return result;\r\n    };\r\n}","export class Path {\r\n  data: string;\r\n  style: Object;\r\n\r\n  constructor(data: string, style: Object) {\r\n    this.data = data;\r\n    this.style = style;\r\n  }\r\n}\r\n","import { HorizontalAlignmentType, TextOrientationType, VerticalAlignmentType } from '../../enums';\r\n\r\nexport class Label {\r\n  width: number;\r\n  height: number;\r\n  orientation: TextOrientationType;\r\n  horizontalAlignment: HorizontalAlignmentType;\r\n  verticalAlignment: VerticalAlignmentType;\r\n  label: string;\r\n  style: Object;\r\n\r\n  constructor(label: string, width: number, height: number, orientation: TextOrientationType, horizontalAlignment: HorizontalAlignmentType, verticalAlignment: VerticalAlignmentType, style: Object) {\r\n    this.label = label;\r\n    this.width = width;\r\n    this.height = height;\r\n    this.orientation = orientation;\r\n    this.horizontalAlignment = horizontalAlignment;\r\n    this.verticalAlignment = verticalAlignment;\r\n    this.style = style;\r\n  }\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\n\r\nexport class Template {\r\n  templateType: string;\r\n  name: string;\r\n  templateRef: TemplateRef<any> | null;\r\n  context: any;\r\n  style: Object;\r\n\r\n  constructor(templateType: string, name: string, templateRef: TemplateRef<any> | null, context: Object, style: Object) {\r\n    this.templateType = templateType;\r\n    this.name = name;\r\n    this.templateRef = templateRef;\r\n    this.context = context;\r\n    this.style = style;\r\n  }\r\n}\r\n","import { Rect, Size } from '../../structs';\r\nimport { Layer } from \"./\";\r\n\r\nexport class Placeholder {\r\n  name: string;\r\n  layers: Array<Layer> = [];\r\n  activeLayer: Layer | null = null;\r\n  size: Size = new Size();\r\n  rect: Rect = new Rect();\r\n  hasGraphics: boolean = true;\r\n  isVisible: boolean = true;\r\n\r\n  constructor(name: string) {\r\n    this.name = name;\r\n    this.layers = [];\r\n    this.activeLayer = null;\r\n  }\r\n}\r\n","import { Path, Label, Template } from './';\r\n\r\nexport class Layer {\r\n  name: string;\r\n  items: Array<Template> = [];\r\n  polylines: Array<Path> = [];\r\n  labels: Array<Label> = [];\r\n\r\n  constructor(name: string) {\r\n    this.name = name;\r\n  }\r\n\r\n  reset() {\r\n    this.items = [];\r\n    this.polylines = [];\r\n    this.labels = [];\r\n  }\r\n}\r\n","import { LineType, Layers, SegmentType } from '../../enums';\r\nimport { Rect, Size } from '../../structs';\r\nimport { HorizontalAlignmentType, TextOrientationType, VerticalAlignmentType } from '../../enums';\r\nimport { Path } from './path';\r\nimport { Label } from './label';\r\nimport { Template } from './template';\r\nimport { Placeholder} from './placeholder';\r\nimport { Layer } from './layer';\r\nimport { TemplateRef } from '@angular/core';\r\n\r\nexport class Graphics {\r\n    placeholders: {[id: string]:Placeholder} = {};\r\n    activePlaceholder: Placeholder | null = null;\r\n    hasGraphics = true;\r\n    names: Array<string> = [];\r\n    size: Size;\r\n\r\n    constructor(size: Size) {\r\n        this.size = size;\r\n        this.names = [];\r\n        for(var layer in Layers) {\r\n            let value:number = parseInt(Layers[layer]);\r\n            this.names[value] = layer;\r\n        };\r\n    }\r\n\r\n  clean() {\r\n    this.placeholders = {};\r\n    this.activePlaceholder = null;\r\n  }\r\n\r\n  resize(name: string, width: number, height: number) {\r\n    this.activatePlaceholder(name);\r\n    this.resizePlaceholder(this.activePlaceholder!, 0, 0, width, height);\r\n  };\r\n\r\n  position(name: string, left: number, top: number, width: number, height: number) {\r\n    this.activatePlaceholder(name);\r\n    this.resizePlaceholder(this.activePlaceholder!, left, top, width, height);\r\n  };\r\n\r\n  show(name: string) {\r\n    var placeholder = this.placeholders[name];\r\n    if (placeholder != null) {\r\n      placeholder.isVisible = true;\r\n    }\r\n  };\r\n\r\n  hide(name: string) {\r\n    var placeholder = this.placeholders[name];\r\n    if (placeholder != null) {\r\n      placeholder.isVisible = false;\r\n    }\r\n  };\r\n\r\n  resizePlaceholder(placeholder: Placeholder, left: number, top: number, width: number, height: number) {\r\n    placeholder.size = new Size(width, height);\r\n    placeholder.rect = new Rect(left, top, width, height);\r\n  };\r\n\r\n  reset(placeholderName: string, layerKey: number) {\r\n    const placeholder = this.placeholders[placeholderName];\r\n    if (placeholder != null) {\r\n      const layer = placeholder.layers[layerKey];\r\n      if (layer != null) {\r\n        layer.reset();\r\n      }\r\n    }\r\n  };\r\n\r\n  activate(placeholderName: string, layerKey: number) {\r\n    this.activatePlaceholder(placeholderName);\r\n    this.activateLayer(layerKey);\r\n    return this.activePlaceholder;\r\n  };\r\n\r\n  activatePlaceholder(name: string) {\r\n    let placeholder = this.placeholders[name];\r\n\r\n    if (placeholder === undefined) {\r\n      placeholder = new Placeholder(name);\r\n      placeholder.size = this.size;\r\n      placeholder.rect = new Rect(0, 0, placeholder.size.width, placeholder.size.height);\r\n      this.placeholders[name] = placeholder;\r\n    }\r\n\r\n    this.activePlaceholder = placeholder;\r\n  };\r\n\r\n  activateLayer(layerKey: number) {\r\n    const name = this.names[layerKey];\r\n    if(!this.activePlaceholder) {\r\n      throw \"No active placeholder\";\r\n    }\r\n    let layer = this.activePlaceholder.layers[layerKey];\r\n\r\n    if (layer === undefined) {\r\n      layer = new Layer(name);\r\n      this.activePlaceholder.layers[layerKey] = layer;\r\n    }\r\n\r\n    this.activePlaceholder.activeLayer = layer;\r\n  };\r\n\r\n  getPlaceholders() {\r\n    return this.placeholders;\r\n  }\r\n\r\n  text(x: number, y: number, width: number, height: number, label: string, orientation: TextOrientationType, horizontalAlignment: HorizontalAlignmentType, verticalAlignment: VerticalAlignmentType, attr: Object) {\r\n    if(!this.activePlaceholder || !this.activePlaceholder.activeLayer) {\r\n      throw \"No active placeholder or layer\"\r\n    }\r\n    this.activePlaceholder.activeLayer.labels.push(\r\n      new Label(label, width, height, orientation, horizontalAlignment, verticalAlignment,\r\n        {\r\n          ...attr,\r\n          top: y + \"px\",\r\n          left: x + \"px\"\r\n        })\r\n    );\r\n  };\r\n\r\n  polyline(polylineData: any) {\r\n    if(!this.activePlaceholder || !this.activePlaceholder.activeLayer) {\r\n      throw \"No active placeholder or layer\"\r\n    }\r\n\r\n    var attr = polylineData.paletteItem.toAttr(),\r\n      step,\r\n      radius,\r\n      cornerRadius,\r\n      style: any = {};\r\n\r\n\r\n    if (attr.fillColor !== undefined) {\r\n      style.fill = attr.fillColor;\r\n      style.fillOpacity = attr.opacity;\r\n    }\r\n    else {\r\n      style.fillOpacity = 0;\r\n    }\r\n\r\n    if (attr.lineWidth !== undefined && attr.borderColor !== undefined) {\r\n      style.stroke = attr.borderColor;\r\n      style.strokeWidth = attr.lineWidth;\r\n\r\n      if (attr.opacity !== undefined) {\r\n        style.strokeOpacity = attr.opacity;\r\n      } else {\r\n        style.strokeOpacity = 1;\r\n      }\r\n    } else {\r\n      style.stroke = \"transparent\";\r\n      style.strokeWidth = 0;\r\n    }\r\n\r\n    if (attr.lineType != null) {\r\n      step = Math.round(attr.lineWidth) || 1;\r\n      switch (attr.lineType) {\r\n        case LineType.Dotted:\r\n          style.strokeDasharray = step + \",\" + step;\r\n          break;\r\n        case LineType.Dashed:\r\n          style.strokeDasharray = (step * 5) + \",\" + (step * 3);\r\n          break;\r\n        case LineType.Solid:\r\n        default:\r\n          style.strokeDasharray = \"\";\r\n          break;\r\n      }\r\n    }\r\n\r\n    let data = \"\";\r\n    polylineData.loop(this, function (segment: any) {\r\n      switch (segment.segmentType) {\r\n        case SegmentType.Move:\r\n          data += \"M\" + (Math.round(segment.x) + 0.5) + \" \" + (Math.round(segment.y) + 0.5);\r\n          break;\r\n        case SegmentType.Line:\r\n          data += \"L\" + (Math.round(segment.x) + 0.5) + \" \" + (Math.round(segment.y) + 0.5);\r\n          break;\r\n        case SegmentType.QuadraticArc:\r\n          data += \"Q\" + (Math.round(segment.cpX) + 0.5) + \" \" + (Math.round(segment.cpY) + 0.5) + \" \" + (Math.round(segment.x) + 0.5) + \" \" + (Math.round(segment.y) + 0.5);\r\n          break;\r\n        case SegmentType.Dot:\r\n          // A rx, ry, x-axis-rotation, large-arc-flag, sweep-flag, x, y\r\n          if (segment.width === segment.height && segment.width / 2.0 <= segment.cornerRadius) {\r\n            // dot\r\n            radius = segment.width / 2.0;\r\n            data += \"M\" + (Math.round(segment.x) + 0.5) + \" \" + (Math.round(segment.y) + segment.height / 2.0 + 0.5);\r\n            data += \"A\" + radius + \" \" + radius + \" 0 0 0 \" + (Math.round(segment.x + segment.width) + 0.5) + \" \" + (Math.round(segment.y) + segment.height / 2.0 + 0.5);\r\n            data += \"A\" + radius + \" \" + radius + \" 0 0 0 \" + (Math.round(segment.x) + 0.5) + \" \" + (Math.round(segment.y) + segment.height / 2.0 + 0.5);\r\n          } else if (segment.cornerRadius === 0) {\r\n            // square\r\n            data += \"M\" + (Math.round(segment.x) + 0.5) + \" \" + (Math.round(segment.y) + 0.5);\r\n            data += \"L\" + (Math.round(segment.x + segment.width) + 0.5) + \" \" + (Math.round(segment.y) + 0.5);\r\n            data += \"L\" + (Math.round(segment.x + segment.width) + 0.5) + \" \" + (Math.round(segment.y + segment.height) + 0.5);\r\n            data += \"L\" + (Math.round(segment.x) + 0.5) + \" \" + (Math.round(segment.y + segment.height) + 0.5);\r\n            data += \"L\" + (Math.round(segment.x) + 0.5) + \" \" + (Math.round(segment.y) + 0.5);\r\n          } else {\r\n            cornerRadius = Math.min(segment.cornerRadius, Math.min(segment.width / 2.0, segment.height / 2.0));\r\n            data += \"M\" + (Math.round(segment.x) + 0.5) + \" \" + (Math.round(segment.y + cornerRadius) + 0.5);\r\n            data += \"A\" + Math.round(cornerRadius) + \" \" + Math.round(cornerRadius) + \" 0 0 1 \" + (Math.round(segment.x + cornerRadius) + 0.5) + \" \" + (Math.round(segment.y) + 0.5);\r\n            data += \"L\" + (Math.round(segment.x + segment.width - cornerRadius) + 0.5) + \" \" + (Math.round(segment.y) + 0.5);\r\n            data += \"A\" + Math.round(cornerRadius) + \" \" + Math.round(cornerRadius) + \" 0 0 1 \" + (Math.round(segment.x + segment.width) + 0.5) + \" \" + (Math.round(segment.y + cornerRadius) + 0.5);\r\n            data += \"L\" + (Math.round(segment.x + segment.width) + 0.5) + \" \" + (Math.round(segment.y + segment.height - cornerRadius) + 0.5);\r\n            data += \"A\" + Math.round(cornerRadius) + \" \" + Math.round(cornerRadius) + \" 0 0 1 \" + (Math.round(segment.x + segment.width - cornerRadius) + 0.5) + \" \" + (Math.round(segment.y + segment.height) + 0.5);\r\n            data += \"L\" + (Math.round(segment.x + cornerRadius) + 0.5) + \" \" + (Math.round(segment.y + segment.height) + 0.5);\r\n            data += \"A\" + Math.round(cornerRadius) + \" \" + Math.round(cornerRadius) + \" 0 0 1 \" + (Math.round(segment.x) + 0.5) + \" \" + (Math.round(segment.y + segment.height - cornerRadius) + 0.5);\r\n            data += \"L\" + (Math.round(segment.x) + 0.5) + \" \" + (Math.round(segment.y + cornerRadius) + 0.5);\r\n          }\r\n          break;\r\n        case SegmentType.CubicArc:\r\n          data += \"C\" + (Math.round(segment.cpX1) + 0.5) + \" \" + (Math.round(segment.cpY1) + 0.5) +\r\n            \" \" + (Math.round(segment.cpX2) + 0.5) + \" \" + (Math.round(segment.cpY2) + 0.5) +\r\n            \" \" + (Math.round(segment.x) + 0.5) + \" \" + (Math.round(segment.y) + 0.5);\r\n          break;\r\n        default:\r\n          break;\r\n      }\r\n    });\r\n    this.activePlaceholder.activeLayer.polylines.push(new Path(data, style));\r\n  };\r\n\r\n  polylinesBuffer(buffer: any) {\r\n    var thisArg = this;\r\n    buffer.loop(this, function (item: any) {\r\n      if (item.length() > 0) {\r\n        thisArg.polyline(item);\r\n      }\r\n    });\r\n  };\r\n\r\n  template(x: number, y: number, width: number, height: number, contentX: number, contentY: number, contentWidth: number, contentHeight: number, options: any, _hashCode: string, onRenderTemplate: (data: any) => TemplateRef<any> | null, uiHash: Object, attr: Object) {\r\n    if(!this.activePlaceholder || !this.activePlaceholder.activeLayer) {\r\n      throw \"No active placeholder or layer\"\r\n    }\r\n    const left = x + contentX,\r\n      top = y + contentY,\r\n      templateWidth = contentWidth,\r\n      templateHeight = contentHeight;\r\n\r\n    let style = {\r\n      \"width\": templateWidth + \"px\",\r\n      \"height\": templateHeight + \"px\",\r\n      \"top\": top + \"px\",\r\n      \"left\": left + \"px\",\r\n      ...attr\r\n    };\r\n\r\n    var context = {\r\n      ...uiHash,\r\n      ...options,\r\n      x: left,\r\n      y: top,\r\n      width: templateWidth,\r\n      height: templateHeight\r\n    }\r\n\r\n    var templateRef: TemplateRef<any> | null = null;\r\n    if (onRenderTemplate !== null) {\r\n      templateRef = onRenderTemplate(context);\r\n    };\r\n    // if(options.templateType == \"labelAnnotationTemplate\") {\r\n    //   console.log(\"template type:\" + options.templateType);\r\n    //   console.log(JSON.stringify(context));\r\n    // }\r\n    this.activePlaceholder.activeLayer.items.push(new Template(options.templateType, options.templateName, templateRef, context, style));\r\n  };\r\n\r\n  getPxSize(value: any, base: number) {\r\n    var result = value;\r\n    if (typeof value === \"string\") {\r\n      if (value.indexOf(\"pt\") > 0) {\r\n        result = parseInt(value, 10) * 96 / 72;\r\n      }\r\n      else if (value.indexOf(\"%\") > 0) {\r\n        result = parseFloat(value) / 100.0 * base;\r\n      }\r\n      else {\r\n        result = parseInt(value, 10);\r\n      }\r\n    }\r\n    return result;\r\n  };\r\n};\r\n","import { TemplateRef } from \"@angular/core\";\r\n\r\nexport default class AbstractTemplate {\r\n  options: Object;\r\n  template(): Object { \r\n    return this.options;\r\n  }\r\n\r\n  getHashCode() { \r\n    return \"\";\r\n  }\r\n  \r\n  render(data: any): TemplateRef<any> | null {\r\n    return null;\r\n  }; \r\n\r\n  constructor(templateType: string, options: Object) {\r\n    this.options = {\r\n      ...options,\r\n      templateType\r\n    }\r\n  }\r\n};\r\n","import AbstractTemplate from './AbstractTemplate';\r\n\r\nexport class AnnotationLabelTemplate extends AbstractTemplate {\r\n  constructor() {\r\n    super(\"annotationLabelTemplate\", {});\r\n  }\r\n};\r\n","import { TemplateRef } from '@angular/core';\r\nimport AbstractTemplate from './AbstractTemplate';\r\n\r\nexport class ButtonsTemplate extends AbstractTemplate {\r\n  constructor() {\r\n    super(\"dummyTemplate\", {})\r\n  };\r\n\r\n  override render(data: any) {\r\n    const { onButtonsRender } = data;\r\n    return onButtonsRender();\r\n  };\r\n};\r\n","import AbstractTemplate from './AbstractTemplate';\r\n\r\nexport class CheckBoxTemplate extends AbstractTemplate {\r\n  constructor(selectCheckBoxLabel: string) {\r\n    super(\"checkboxTemplate\", { selectCheckBoxLabel });\r\n  }\r\n};\r\n","import { TemplateConfig } from '../../configs/template-config';\r\nimport AbstractTemplate from './AbstractTemplate';\r\n\r\nexport class CursorTemplate extends AbstractTemplate {\r\n  constructor(options: Object, templateConfig: TemplateConfig) {\r\n    super(\"cursorTemplate\", { \r\n      ...options,\r\n      templateConfig\r\n    });\r\n  }\r\n};\r\n","import { TemplateRef } from '@angular/core';\r\nimport AbstractTemplate from './AbstractTemplate';\r\n\r\nexport class CustomRenderTemplate extends AbstractTemplate {\r\n  constructor(options: any, onRender: () => TemplateRef<any>) {\r\n    super(\"dummyTemplate\", options);\r\n\r\n    this.render = onRender;\r\n  }\r\n};","import { TemplateConfig } from '../../configs/template-config';\r\nimport AbstractTemplate from './AbstractTemplate';\r\n\r\nexport class DotHighlightTemplate extends AbstractTemplate {\r\n  constructor(options: Object, templateConfig: TemplateConfig) {\r\n    super(\"dotHighlightTemplate\", {\r\n      ...options,\r\n      templateConfig\r\n    });\r\n  }\r\n};\r\n","import AbstractTemplate from './AbstractTemplate';\r\n\r\nexport class GroupTitleTemplate extends AbstractTemplate {\r\n  constructor(options: Object) {\r\n    super(\"groupTitleTemplate\", options);\r\n  }\r\n};\r\n","import { TemplateConfig } from '../../configs/template-config';\r\nimport AbstractTemplate from './AbstractTemplate';\r\n\r\nexport class HighlightTemplate extends AbstractTemplate {\r\n  constructor(options: any, templateConfig: TemplateConfig) {\r\n    super(\"highlightTemplate\", {\r\n      ...options,\r\n      templateConfig\r\n    });\r\n  }\r\n};\r\n","import { TemplateConfig } from '../../configs/template-config';\r\nimport AbstractTemplate from './AbstractTemplate';\r\n\r\nexport class EndPointTemplate extends AbstractTemplate {\r\n  constructor(options: any, templateConfig: TemplateConfig) {\r\n    super(\"endPointTemplate\", {\r\n      ...options,\r\n      templateConfig\r\n    });\r\n  }\r\n};\r\n","import { TemplateConfig } from '../../configs/template-config';\r\nimport AbstractTemplate from './AbstractTemplate';\r\n\r\nexport class ItemTemplate extends AbstractTemplate {\r\n  constructor(options: any, templateConfig: TemplateConfig) {\r\n    super(\"itemTemplate\", {\r\n      ...options,\r\n      templateConfig\r\n    });\r\n  }\r\n};\r\n","import AbstractTemplate from './AbstractTemplate';\r\n\r\nexport class LabelAnnotationTemplate extends AbstractTemplate {\r\n  constructor() {\r\n    super(\"labelAnnotationTemplate\", {})\r\n  }\r\n};\r\n","import AbstractTemplate from './AbstractTemplate';\r\n\r\nexport class LevelBackgroundTemplate extends AbstractTemplate {\r\n  constructor(options: Object) {\r\n    super(\"levelBackgroundTemplate\", options);\r\n  }\r\n};\r\n","import { OrientationType, TextOrientationType } from '../../enums';\r\nimport AbstractTemplate from './AbstractTemplate';\r\n\r\nexport class LevelTitleTemplate extends AbstractTemplate {\r\n  constructor(options: any, orientation: any) {\r\n    var levelTitleOrientation: TextOrientationType = options.levelTitleOrientation;\r\n    if(options.levelTitleOrientation == TextOrientationType.Auto) {\r\n      switch (orientation) {\r\n        case OrientationType.Top:\r\n          levelTitleOrientation = TextOrientationType.RotateRight;\r\n          break;\r\n        case OrientationType.Bottom:\r\n          levelTitleOrientation = TextOrientationType.RotateRight;\r\n          break;\r\n        default:\r\n          break;\r\n      }\r\n    }\r\n    super(\"levelTitleTemplate\", {\r\n      ...options,\r\n      orientation,\r\n      levelTitleOrientation\r\n    });\r\n  }\r\n};","import { TemplateRef } from '@angular/core';\r\nimport AbstractTemplate from './AbstractTemplate';\r\n\r\nexport class UserTemplate extends AbstractTemplate {\r\n  constructor(options: any, itemTemplate: any, onRender: () => TemplateRef<any>) {\r\n    super(\"dummyTemplate\", { \r\n      ...options,\r\n      itemTemplate\r\n    });\r\n\r\n    this.render = onRender;\r\n  }\r\n};\r\n\r\n","export class TaskManagerFactory {\r\n    factory: any | null;\r\n    constructor(factory: any) {\r\n        this.factory = factory;\r\n    }\r\n}","import { Component, Input, OnChanges } from \"@angular/core\";\r\nimport { TextOrientationType, VerticalAlignmentType, HorizontalAlignmentType } from \"../enums\";\r\n\r\n@Component({\r\n    selector: 'rotated-text:not(a)',\r\n    templateUrl: './rotated-text.component.html',\r\n    styleUrls: ['./rotated-text.component.css']\r\n  })\r\nexport class RotatedText implements OnChanges {\r\n    @Input() width: number = 0;\r\n    @Input() height: number = 0;\r\n    @Input() orientation: TextOrientationType = TextOrientationType.RotateRight;\r\n    @Input() horizontalAlignment: HorizontalAlignmentType = HorizontalAlignmentType.Center;\r\n    @Input() verticalAlignment: VerticalAlignmentType = VerticalAlignmentType.Middle;\r\n\r\n    hasVerticalAlignment : Boolean = false;\r\n    tableStyle : Object = {};\r\n    tdStyle : Object = {};\r\n    divStyle : Object = {};\r\n\r\n    ngOnChanges(): void {\r\n      const transform = this.getTransform(this.orientation);\r\n  \r\n      let size = {};\r\n      if (this.orientation === TextOrientationType.Horizontal) {\r\n        size = {\r\n          width: this.width + \"px\",\r\n          height: this.height + \"px\",\r\n          maxWidth: this.width + \"px\",\r\n          maxHeight: this.height + \"px\"\r\n        }\r\n      } else {\r\n        size = {\r\n          width: this.height + \"px\",\r\n          height: this.width + \"px\",\r\n          maxWidth: this.height + \"px\",\r\n          maxHeight: this.width + \"px\",\r\n          left: Math.round(this.width / 2.0 - this.height / 2.0) + \"px\",\r\n          top: Math.round(this.height / 2.0 - this.width / 2.0) + \"px\"\r\n        }\r\n      }\r\n      var style = {\r\n        position: \"absolute\",\r\n        padding: 0,\r\n        margin: 0,\r\n        lineHeight: 1,\r\n        textAlign: this.getHorizontalAlignment(this.horizontalAlignment),\r\n        WebkitTransformOrigin: \"center center\",\r\n        MozTransformOrigin: \"center center\",\r\n        OTransformOrigin: \"center center\",\r\n        msTransformOrigin: \"center center\",\r\n        WebkitTransform: transform,\r\n        MozTransform: transform,\r\n        OTransform: transform,\r\n        msTransform: transform,\r\n        transform: transform,\r\n        textOverflow: \"ellipsis\",\r\n        whiteSpace: \"nowrap\",\r\n        overflow: \"hidden\",\r\n        tableLayout: \"fixed\",\r\n        ...size\r\n      };\r\n\r\n      this.hasVerticalAlignment = this.verticalAlignment !== VerticalAlignmentType.Top;\r\n      this.tdStyle = {\r\n        'verticalAlign': this.getVerticalAlignment(this.verticalAlignment),\r\n        'padding': 0,\r\n        'textOverflow': 'ellipsis',\r\n        'whiteSpace': 'nowrap',\r\n        'overflow': 'hidden'\r\n      };\r\n      this.tableStyle = { \r\n        ...style, \r\n        borderCollapse: \"collapse\" \r\n      };\r\n      this.divStyle = style;\r\n    }\r\n\r\n    getTransform(orientation: TextOrientationType) {\r\n      let result = \"\";\r\n      switch (orientation) {\r\n        case TextOrientationType.RotateLeft:\r\n          result = \"rotate(-90deg)\";\r\n          break;\r\n        case TextOrientationType.RotateRight:\r\n          result = \"rotate(90deg)\";\r\n          break;\r\n        default:\r\n          break;\r\n      }\r\n      return result;\r\n  }\r\n  \r\n  getHorizontalAlignment(horizontalAlignment: HorizontalAlignmentType) {\r\n      let result = \"\";\r\n      switch(horizontalAlignment) {\r\n          case HorizontalAlignmentType.Center:\r\n              result = 'center';\r\n              break;\r\n          case HorizontalAlignmentType.Left:\r\n              result = 'left';\r\n              break;\r\n          case HorizontalAlignmentType.Right:\r\n              result = 'right';\r\n              break;\r\n      }\r\n      return result;\r\n  }\r\n  \r\n  getVerticalAlignment(verticalAlignment: VerticalAlignmentType) {\r\n      let result = \"\";\r\n      switch(verticalAlignment) {\r\n          case VerticalAlignmentType.Bottom:\r\n              result = 'bottom';\r\n              break;\r\n          case VerticalAlignmentType.Middle:\r\n              result = 'middle';\r\n              break;\r\n          case VerticalAlignmentType.Top:\r\n              result = 'top';\r\n              break;\r\n      }\r\n      return result;\r\n  }\r\n}\r\n","<div *ngIf=\"hasVerticalAlignment; then tableTemplate; else divTemplate\"></div>\r\n<ng-template #tableTemplate>\r\n  <table [ngStyle]=\"tableStyle\">\r\n    <tbody>\r\n      <tr>\r\n        <td [ngStyle]=\"tdStyle\">\r\n          <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n        </td>\r\n      </tr>\r\n    </tbody>\r\n  </table>\r\n</ng-template>\r\n<ng-template #divTemplate>\r\n  <div [ngStyle]=\"divStyle\">\r\n    <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n  </div>\r\n</ng-template>\r\n<ng-template #content><ng-content></ng-content></ng-template>","import { ShapeType, Enabled, ItemType, AdviserPlacementType, ChildrenPlacementType, TextOrientationType } from '../enums';\r\nimport { Size } from '../structs';\r\n\r\nexport class OrgItemConfig {\r\n  id: number | string | null = null;\r\n  parent: number | string | null = null;\r\n  title: string | null = null;\r\n  description: string | null = null;\r\n  image: string | null = null;\r\n  context: any | null = null;\r\n  itemTitleColor: string = \"#4169e1\";\r\n  minimizedItemShapeType: ShapeType | null = null;\r\n  groupTitle: string | null = null;\r\n  groupTitleColor: string = \"#4169e1\";\r\n  isVisible: Boolean = true;\r\n  isActive: Boolean = true;\r\n  hasSelectorCheckbox: Enabled = Enabled.Auto;\r\n  hasButtons: Enabled = Enabled.Auto;\r\n  itemType: ItemType = ItemType.Regular;\r\n  adviserPlacementType: AdviserPlacementType = AdviserPlacementType.Auto;\r\n  childrenPlacementType: ChildrenPlacementType = ChildrenPlacementType.Auto;\r\n  levelOffset: number | null = null;\r\n  placeAssistantsAboveChildren: Enabled = Enabled.Auto;\r\n  placeAdvisersAboveChildren: Enabled = Enabled.Auto;\r\n  templateName: string | null = null;\r\n  showCallout: Enabled = Enabled.Auto;\r\n  calloutTemplateName: string | null = null;\r\n  label: string | null = null;\r\n  showLabel: Enabled = Enabled.Auto;\r\n  labelSize: Size | null = null;\r\n  labelOrientation: TextOrientationType = TextOrientationType.Auto;\r\n\r\n  constructor(config: Partial<OrgItemConfig> = {}) {\r\n    Object.assign(this, config);\r\n  }\r\n};\r\n","import { Component, Input, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { OrgItemConfig } from \"../../configs/org-item-config\";\r\n// @ts-ignore\r\nimport { highestContrast } from \"basicprimitives\";\r\n\r\n@Component({\r\n    selector: 'bp-item:not(a)',\r\n    templateUrl: './item.component.html',\r\n    styleUrls: ['./item.component.css']\r\n  })\r\nexport class ItemComponent implements OnChanges {\r\n    private royalBlue: string = \"#000080\";\r\n\r\n    @Input()\r\n    itemTitleFirstFontColor: string = \"#ffffff\";\r\n\r\n    @Input()\r\n    itemTitleSecondFontColor: string = \"#000080\";\r\n\r\n    @Input()\r\n    itemConfig: OrgItemConfig = new OrgItemConfig();\r\n\r\n    ngOnChanges(changes: SimpleChanges) {\r\n        this.backgroundColor = this.itemConfig.itemTitleColor || this.royalBlue;\r\n        this.color = highestContrast(this.backgroundColor, this.itemTitleSecondFontColor, this.itemTitleFirstFontColor);\r\n    }\r\n\r\n    backgroundColor: string = \"#4169e1\";\r\n    color: string = \"#ffffff\";\r\n};\r\n","<div class=\"item corner-all item-frame default-template\">\r\n  <div class=\"title-background item corner-all item-frame\" [ngStyle]=\"{backgroundColor}\">\r\n    <div class=\"item item-title\" [ngStyle]=\"{color}\">{{itemConfig.title}}</div>\r\n  </div>\r\n  <div class=\"photo-frame item\">\r\n    <img class=\"photo\" [src]=\"itemConfig.image\" [alt]=\"itemConfig.title\" />\r\n  </div>\r\n  <div class=\"item description\">{{itemConfig.description}}</div>\r\n</div>","import { TemplateRef } from '@angular/core';\r\nimport { ShapeType, LineType } from '../enums';\r\nimport { Size, Thickness } from '../structs';\r\n\r\nexport class TemplateConfig {\r\n  name: string | null = null;\r\n  isActive?: Boolean = true;\r\n  itemSize?: Size = new Size(120, 100);\r\n  itemBorderWidth?: number = 1;\r\n  itemTemplate?: TemplateRef<any> | null = null;\r\n  minimizedItemShapeType?:ShapeType | null = null;\r\n  minimizedItemSize?: Size = new Size(4, 4);\r\n  minimizedItemCornerRadius?: number | null = null;\r\n  minimizedItemLineWidth?: number = 1;\r\n  minimizedItemBorderColor?: string | null = null;\r\n  minimizedItemLineType?: LineType = LineType.Solid;\r\n  minimizedItemFillColor?: string | null = null;\r\n  minimizedItemOpacity?: number = 1;\r\n  highlightPadding?: Thickness = new Thickness(2, 2, 2, 2);\r\n  highlightBorderWidth?: number = 1;\r\n  highlightTemplate?: TemplateRef<any> | null = null;\r\n  cursorPadding?: Thickness = new Thickness(3, 3, 3, 3);\r\n  cursorBorderWidth?: number = 2;\r\n  cursorTemplate?: TemplateRef<any> | null = null;\r\n  buttonsTemplate?: TemplateRef<any> | null = null;\r\n\r\n  constructor(config: Partial<TemplateConfig> = {}) {\r\n    Object.assign(this, config);\r\n  }\r\n};\r\n\r\n","import { Component, Input, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { TemplateConfig } from \"../../configs/template-config\";\r\n\r\n@Component({\r\n    selector: 'bp-cursor:not(a)',\r\n    template: '<div class=\"cursor\" [ngStyle]=\"{width, height, borderWidth}\"></div>',\r\n    styleUrls: ['./cursor.component.css']\r\n  })\r\nexport class CursorComponent implements OnChanges {\r\n    @Input()\r\n    templateConfig: TemplateConfig = new TemplateConfig();\r\n\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n      const { cursorPadding, itemSize, cursorBorderWidth } = this.templateConfig;\r\n      this.width = (itemSize!.width + cursorPadding!.left + cursorPadding!.right) + \"px\",\r\n      this.height = (itemSize!.height + cursorPadding!.top + cursorPadding!.bottom) + \"px\",\r\n      this.borderWidth = cursorBorderWidth + \"px\";\r\n    }\r\n\r\n    borderWidth: string = \"1px\";\r\n    width: string = \"0px\";\r\n    height: string = \"0px\";\r\n};\r\n","import { Component, Input, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { TemplateConfig } from \"../../configs/template-config\";\r\n\r\n@Component({\r\n    selector: 'bp-highlight:not(a)',\r\n    template: '<div class=\"highlight\" [ngStyle]=\"{borderWidth}\"></div>',\r\n    styleUrls: ['./highlight.component.css']\r\n  })\r\nexport class HighlightComponent implements OnChanges {\r\n  @Input()\r\n  templateConfig: TemplateConfig = new TemplateConfig();\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const { highlightBorderWidth } = this.templateConfig;\r\n    this.borderWidth = highlightBorderWidth + \"px\";\r\n  }\r\n\r\n  borderWidth: string = \"1px\";\r\n};\r\n","import { Component, Input, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { TemplateConfig } from \"../../configs/template-config\";\r\n\r\n@Component({\r\n    selector: 'bp-dot-highlight:not(a)',\r\n    template: '<div class=\"dot-highlight\" [ngStyle]=\"divStyle\"></div>',\r\n    styleUrls: ['./dot-highlight.component.css']\r\n  })\r\nexport class DotHighlightComponent implements OnChanges {\r\n  @Input()\r\n  templateConfig: TemplateConfig = new TemplateConfig();\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const { minimizedItemCornerRadius, highlightPadding, highlightBorderWidth, minimizedItemSize } = this.templateConfig;\r\n    let radius = 0;\r\n    if (minimizedItemCornerRadius === null) {\r\n      radius = Math.max(minimizedItemSize!.width / 2, minimizedItemSize!.height / 2) + highlightPadding!.left;\r\n    } else {\r\n      radius = minimizedItemCornerRadius! + highlightPadding!.left;\r\n    }\r\n    this.divStyle = {\r\n      borderWidth: highlightBorderWidth + \"px\",\r\n      left: - highlightBorderWidth! + \"px\",\r\n      top: - highlightBorderWidth! + \"px\",\r\n      \"-moz-border-radius\": radius + \"px\",\r\n      \"-webkit-border-radius\": radius + \"px\",\r\n      \"-khtml-border-radius\": radius + \"px\",\r\n      \"border-radius\": radius + \"px\"\r\n    }\r\n  }\r\n\r\n  divStyle: Object = {};\r\n};\r\n","import { Component, Input, OnChanges, SimpleChanges } from \"@angular/core\";\r\n\r\n@Component({\r\n    selector: 'bp-checkbox:not(a)',\r\n    template: `<div class=\"checkbox-div\">\r\n    <input type=\"checkbox\" name=\"checkbox\" class=\"checkbox-input\" [checked]=\"isSelected\" (change)=\"onChange()\" [attr.data-id]=\"id\" />\r\n      <span name=\"selectiontext\" class=\"checkbox-span\" [attr.data-id]=\"id\" >\r\n        {{label}}\r\n      </span>\r\n    </div>`,\r\n    styleUrls: ['./checkbox.component.css']\r\n  })\r\nexport class CheckboxComponent {\r\n  @Input()\r\n  id: string | null = null;\r\n\r\n  @Input()\r\n  label: string = \"Selected\";\r\n\r\n  @Input()\r\n  isSelected: boolean = false;\r\n\r\n  onChange = () => null;\r\n\r\n  borderWidth: string = \"1px\";\r\n};\r\n","import { Component, Input, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { OrgItemConfig } from \"../../configs/org-item-config\";\r\n// @ts-ignore\r\nimport { highestContrast } from \"basicprimitives\";\r\nimport { HorizontalAlignmentType, TextOrientationType, VerticalAlignmentType } from \"../../enums\";\r\n\r\nclass GroupTitleOptions {\r\n    groupTitleFontSize: string = \"12px\";\r\n    groupTitleFontFamily: string = \"Arial\";\r\n    groupTitleFontWeight: string = \"normal\";\r\n    groupTitleFontStyle: string = \"normal\";\r\n    itemTitleSecondFontColor: string = \"#000080\";\r\n    itemTitleFirstFontColor: string = \"#ffffff\";\r\n    groupTitleOrientation: TextOrientationType = TextOrientationType.RotateRight;\r\n    groupTitleHorizontalAlignment: HorizontalAlignmentType = HorizontalAlignmentType.Center;\r\n    groupTitleVerticalAlignment: VerticalAlignmentType = VerticalAlignmentType.Middle;\r\n    groupTitleColor: string =\"#4169e1\";\r\n\r\n    constructor(config: Partial<GroupTitleOptions> = {}) {\r\n        Object.assign(this, config);\r\n    }\r\n}\r\n\r\n@Component({\r\n    selector: 'bp-group-title:not(a)',\r\n    templateUrl: './group-title.component.html',\r\n    styleUrls: ['./group-title.component.css']\r\n  })\r\nexport class GroupTitleComponent implements OnChanges {\r\n    @Input()\r\n    options: GroupTitleOptions = new GroupTitleOptions();\r\n\r\n    @Input()\r\n    itemConfig: OrgItemConfig = new OrgItemConfig();\r\n\r\n    @Input()\r\n    width: number = 0;\r\n\r\n    @Input()\r\n    height: number = 0;\r\n        \r\n    ngOnChanges(changes: SimpleChanges) {\r\n        const backgroundColor = this.itemConfig.groupTitleColor || this.options.groupTitleColor;\r\n        const color = highestContrast(backgroundColor, this.options.itemTitleSecondFontColor, this.options.itemTitleFirstFontColor);\r\n\r\n        this.divStyle = {\r\n            backgroundColor,\r\n            color,\r\n            fontSize: this.options.groupTitleFontSize,\r\n            fontFamily: this.options.groupTitleFontFamily,\r\n            fontWeight: this.options.groupTitleFontWeight,\r\n            fontStyle: this.options.groupTitleFontStyle\r\n        }\r\n        this.label = (this.itemConfig.groupTitle || \"\").replace(\"\\n\", \"<br/>\");\r\n    }\r\n\r\n    divStyle: Object | null = null;\r\n    label: string = \"\";\r\n};\r\n","<div class=\"group-title\" [ngStyle]=\"divStyle\">\r\n  <rotated-text\r\n    [width]=\"width\"\r\n    [height]=\"height\"\r\n    [orientation]=\"options.groupTitleOrientation\"\r\n    [horizontalAlignment]=\"options.groupTitleHorizontalAlignment\"\r\n    [verticalAlignment]=\"options.groupTitleVerticalAlignment\"\r\n  >{{label}}</rotated-text>\r\n</div>\r\n","import { ConnectorLabelPlacementType, ConnectorPlacementType, \r\n  ConnectorShapeType, ZOrderType, AnnotationType, LineType,\r\n  Enabled} from '../enums';\r\nimport { Size, Thickness } from '../structs';\r\n\r\n\r\nexport class ConnectorAnnotationConfig {\r\n  annotationType: AnnotationType = AnnotationType.Connector;\r\n  zOrderType: ZOrderType = ZOrderType.Foreground;\r\n  fromItem: number | string | null = null;\r\n  toItem: number | string | null = null;\r\n  connectorShapeType: ConnectorShapeType = ConnectorShapeType.OneWay;\r\n  connectorPlacementType: ConnectorPlacementType = ConnectorPlacementType.Offbeat;\r\n  labelPlacementType: ConnectorLabelPlacementType = ConnectorLabelPlacementType.Between;\r\n  offset: number | Thickness = new Thickness(0, 0, 0, 0);\r\n  lineWidth: number = 2;\r\n  color: string = \"#000000\";\r\n  lineType: LineType = LineType.Solid;\r\n  selectItems: Boolean = true;\r\n  label:string | null = null;\r\n  size: Size = new Size(60, 30);\r\n  showFromEndpoint: Enabled = Enabled.Auto;\r\n  showToEndpoint: Enabled = Enabled.Auto;\r\n  context: any = null\r\n\r\n  constructor(config: Partial<ConnectorAnnotationConfig> = {}) {\r\n    Object.assign(this, config);\r\n  }\r\n};\r\n","import { Component, Input, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { Enabled } from \"../../enums\";\r\nimport { Size } from \"../../structs\";\r\nimport { ConnectorAnnotationConfig } from \"../../configs/connector-annotation-config\";\r\n\r\nclass EndPointOptions {\r\n  showEndPoints: Enabled = Enabled.False;\r\n  endPointSize: Size = new Size(8, 8);\r\n  endPointCornerRadius: number = 4;\r\n  endPointFillColor: string = \"#000080\";\r\n  endPointOpacity: number = 0.5;\r\n\r\n    constructor(config: Partial<EndPointOptions> = {}) {\r\n        Object.assign(this, config);\r\n    }\r\n}\r\n\r\n@Component({\r\n    selector: 'bp-end-point:not(a)',\r\n    template: '<div class=\"end-point\" [ngStyle]=\"divStyle\"></div>',\r\n    styleUrls: ['./end-point.component.css']\r\n  })\r\nexport class EndPointComponent implements OnChanges {\r\n  @Input()\r\n  options: EndPointOptions = new EndPointOptions();\r\n\r\n  @Input()\r\n  annotationConfig: ConnectorAnnotationConfig = new ConnectorAnnotationConfig();\r\n\r\n  @Input()\r\n  isFromEndPoint: boolean = true;\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const { endPointCornerRadius, endPointFillColor, endPointOpacity } = this.options;\r\n    this.divStyle = {\r\n      \"-moz-border-radius\": endPointCornerRadius + \"px\",\r\n      \"-webkit-border-radius\": endPointCornerRadius + \"px\",\r\n      \"-khtml-border-radius\": endPointCornerRadius + \"px\",\r\n      \"border-radius\": endPointCornerRadius + \"px\",\r\n      \"background\": endPointFillColor,\r\n      \"opacity\": endPointOpacity,\r\n      \"border\": \"0px\"\r\n    }\r\n  }\r\n\r\n  divStyle: Object = {};\r\n};\r\n","import { AnnotationType, LineType } from '../enums';\r\nimport { Thickness } from '../structs';\r\n\r\nexport class LevelAnnotationConfig {\r\n  annotationType: AnnotationType = AnnotationType.Level;\r\n  levels: Array<number | String> = [];\r\n  title: string | null = null;\r\n  titleFontColor: string | null = null;\r\n  titleColor: string | null = null;\r\n  offset: Thickness = new Thickness(0, 0, 0, 0);\r\n  lineWidth: Thickness = new Thickness(0, 0, 0, 0);\r\n  opacity: number = 1;\r\n  borderColor: string | null = null;\r\n  fillColor: String = \"#D4D4D4\";\r\n  lineType: LineType = LineType.Solid;\r\n\r\n  constructor(config: Partial<LevelAnnotationConfig> = {}) {\r\n    Object.assign(this, config);\r\n  }\r\n};\r\n","import { Component, Input, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { LevelAnnotationConfig } from \"../../configs/level-annotation-config\";\r\nimport { LineType } from \"../../enums\";\r\n\r\nfunction getBorderStyle(lineType: LineType) {\r\n  var result = null;\r\n  switch (lineType) {\r\n    case LineType.Dotted:\r\n      result = \"dotted\";\r\n      break;\r\n    case LineType.Dashed:\r\n      result = \"dashed\";\r\n      break;\r\n    default:\r\n      result = \"solid\";\r\n      break;\r\n  }\r\n  return result;\r\n}\r\n\r\n@Component({\r\n    selector: 'bp-level-background:not(a)',\r\n    template: '<div class=\"level-background\" [ngStyle]=\"divStyle\"></div>',\r\n    styleUrls: ['./level-background.component.css']\r\n  })\r\nexport class LevelBackgroundComponent implements OnChanges {\r\n  @Input()\r\n  annotationConfig: LevelAnnotationConfig = new LevelAnnotationConfig();\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    this.divStyle = {\r\n      opacity: this.annotationConfig.opacity,\r\n      borderColor: this.annotationConfig.borderColor,\r\n      backgroundColor: this.annotationConfig.fillColor,\r\n      borderWidth: this.annotationConfig.lineWidth.toString(),\r\n      borderStyle: getBorderStyle(this.annotationConfig.lineType),\r\n    }\r\n  }\r\n\r\n  divStyle: Object = {};\r\n};\r\n","import { Component, Input, OnChanges, SimpleChanges } from \"@angular/core\";\r\n// @ts-ignore\r\nimport { HorizontalAlignmentType, TextOrientationType, VerticalAlignmentType } from \"../../enums\";\r\nimport { LevelAnnotationConfig } from \"../../configs/level-annotation-config\";\r\n\r\nclass LevelTitleOptions {\r\n    levelTitleFontSize: string = \"12px\";\r\n    levelTitleFontFamily: string = \"Arial\";\r\n    levelTitleFontWeight: string = \"normal\";\r\n    levelTitleFontStyle: string = \"normal\";\r\n    levelTitleFontColor: string = \"#ffffff\";\r\n    levelTitleOrientation: TextOrientationType = TextOrientationType.Auto;\r\n    levelTitleHorizontalAlignment: HorizontalAlignmentType = HorizontalAlignmentType.Center;\r\n    levelTitleVerticalAlignment: VerticalAlignmentType = VerticalAlignmentType.Middle;\r\n    levelTitleColor: string = \"#4169e1\";\r\n\r\n    constructor(config: Partial<LevelTitleOptions> = {}) {\r\n        Object.assign(this, config);\r\n    }\r\n}\r\n\r\n@Component({\r\n    selector: 'bp-level-title:not(a)',\r\n    templateUrl: './level-title.component.html',\r\n    styleUrls: ['./level-title.component.css']\r\n  })\r\nexport class LevelTitleComponent implements OnChanges {\r\n    @Input()\r\n    options: LevelTitleOptions = new LevelTitleOptions();\r\n\r\n    @Input()\r\n    annotationConfig: LevelAnnotationConfig = new LevelAnnotationConfig();\r\n\r\n    @Input()\r\n    width: number = 0;\r\n\r\n    @Input()\r\n    height: number = 0;\r\n        \r\n    ngOnChanges(changes: SimpleChanges) {\r\n        const backgroundColor = this.annotationConfig.titleColor || this.options.levelTitleColor;\r\n        const color = this.annotationConfig.titleFontColor || this.options.levelTitleFontColor;\r\n    \r\n        this.divStyle = {\r\n          backgroundColor,\r\n          color,\r\n          fontSize: this.options.levelTitleFontSize,\r\n          fontFamily: this.options.levelTitleFontFamily,\r\n          fontWeight: this.options.levelTitleFontWeight,\r\n          fontStyle: this.options.levelTitleFontStyle\r\n        }\r\n\r\n        this.label = (this.annotationConfig.title || \"\").replace(\"\\n\", \"<br/>\");\r\n    }\r\n\r\n\r\n    divStyle: Object | null = null;\r\n    label: string = \"\";\r\n};\r\n","<div class=\"level-title\" [ngStyle]=\"divStyle\">\r\n  <rotated-text\r\n    [width]=\"width\"\r\n    [height]=\"height\"\r\n    [orientation]=\"options.levelTitleOrientation\"\r\n    [horizontalAlignment]=\"options.levelTitleHorizontalAlignment\"\r\n    [verticalAlignment]=\"options.levelTitleVerticalAlignment\"\r\n  >{{label}}</rotated-text>\r\n</div>","import { AfterViewInit, Component, ElementRef, Input, NgZone, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { OrientationType } from '../enums';\r\nimport { Placeholder, Graphics } from './graphics';\r\nimport { Rect, Size, Point } from '../structs';\r\n// @ts-ignore\r\nimport { getFixOfPixelAlignment, getInnerSize, getElementOffset } from 'basicprimitives';\r\nimport { TaskManagerFactory } from './task-manager-factory';\r\nimport {\r\n  AnnotationLabelTemplate,\r\n  ButtonsTemplate,\r\n  CheckBoxTemplate,\r\n  CursorTemplate,\r\n  DotHighlightTemplate,\r\n  GroupTitleTemplate,\r\n  HighlightTemplate,\r\n  ItemTemplate,\r\n  UserTemplate,\r\n  CustomRenderTemplate,\r\n  LabelAnnotationTemplate,\r\n  LevelTitleTemplate,\r\n  LevelBackgroundTemplate,\r\n  EndPointTemplate\r\n} from './templates';\r\nimport { TemplateConfig } from '../configs/template-config';\r\n\r\nclass LayoutOptions {\r\n  autoSize: boolean = false;\r\n  controlSize: Size = new Size();\r\n  scale: number = 1;\r\n  frameMousePanelRect: Rect = new Rect();\r\n  framePlaceholderSize: Size = new Size();\r\n\r\n  titlesMousePanelRect: Rect = new Rect();\r\n  titlesPlaceholderSize: Size = new Size();\r\n\r\n  scrollPanelRect: Rect = new Rect();\r\n  mousePanelSize: Size = new Size();\r\n  placeholderSize: Size = new Size();\r\n\r\n  constructor(config: Partial<LayoutOptions> = {}) {\r\n    Object.assign(this, config);\r\n  }\r\n}\r\n\r\nclass BaseDiagramState {\r\n  config: any;\r\n  viewportSize: Size = new Size(0, 0);\r\n  contentPosition: Point = new Point(0, 0);\r\n  centerOnCursor: boolean = true;\r\n  highlightItem: number | string | null = null;\r\n  cursorItem: number | string | null = null;\r\n  selectedItems: Array<string|number> = [];\r\n};\r\n\r\n@Component({\r\n  selector: 'base-diagram',\r\n  templateUrl: './base-diagram.component.html',\r\n  styleUrls: ['./base-diagram.component.css']\r\n})\r\nexport class BaseDiagramComponent implements OnInit, AfterViewInit, OnDestroy {\r\n \r\n  ngAfterViewInit(): void {\r\n    var onSizeChanged =  this.onSizeChanged.bind(this);\r\n    this.observer = new ResizeObserver(() => this.zone.run(() => onSizeChanged()));\r\n    this.observer.observe(this.controlPanelRef!.nativeElement);\r\n\r\n    this.fixPixelAlignment();\r\n  }\r\n\r\n  @ViewChild('frameMousePanelRef') frameMousePanelRef: ElementRef<HTMLDivElement> | undefined;  \r\n  @ViewChild('framePlaceholderRef') framePlaceholderRef: ElementRef<HTMLDivElement> | undefined;  \r\n  @ViewChild('titlesMousePanelRef') titlesMousePanelRef: ElementRef<HTMLDivElement> | undefined;\r\n  @ViewChild('titlesPlaceholderRef') titlesPlaceholderRef: ElementRef<HTMLDivElement> | undefined;\r\n  @ViewChild('scrollPanelRef') scrollPanelRef: ElementRef<HTMLDivElement> | undefined;\r\n  @ViewChild('mousePanelRef') mousePanelRef: ElementRef<HTMLDivElement> | undefined;\r\n  @ViewChild('placeholderRef') placeholderRef: ElementRef<HTMLDivElement> | undefined;\r\n  @ViewChild('calloutPlaceholderRef') calloutPlaceholderRef: ElementRef<HTMLDivElement> | undefined;\r\n  @ViewChild('controlPanelRef') controlPanelRef: ElementRef<HTMLDivElement> | undefined;\r\n  \r\n  @Input() centerOnCursor: boolean = true;\r\n\r\n  _onHighlightChanging (event: Event, itemId: number | string | null, newItemId: number | string | null): any {};\r\n  _onHighlightChanged (eventArgs: any) {};\r\n  _onCursorChanging (event: Event, itemId: number | string | null, newItemId: number | string | null): any {};\r\n  _onCursorChanged (eventArgs: any) {};\r\n  _onSelectionChanging (event: Event, selectedItems: Array<string|number>, newSelectedItems: Array<string|number>): any {};\r\n  _onSelectionChanged (eventArgs: any) {};\r\n\r\n  private taskManagerFactory: TaskManagerFactory;\r\n  private tasks: any;\r\n  protected state: BaseDiagramState = new BaseDiagramState();\r\n  private graphics: Graphics;\r\n  private layoutOptions: LayoutOptions = new LayoutOptions();\r\n  private timer: any | null = null;\r\n  private observer: any;\r\n\r\n  constructor(private host: ElementRef, private zone: NgZone, taskManagerFactory: TaskManagerFactory) { \r\n    this.taskManagerFactory = taskManagerFactory;\r\n    this.graphics = new Graphics(new Size(0,0));\r\n\r\n    var templates = {\r\n      AnnotationLabelTemplate,\r\n      ButtonsTemplate,\r\n      CheckBoxTemplate,\r\n      CursorTemplate,\r\n      DotHighlightTemplate,\r\n      GroupTitleTemplate,\r\n      HighlightTemplate,\r\n      ItemTemplate,\r\n      UserTemplate,\r\n      CustomRenderTemplate,\r\n      LabelAnnotationTemplate,\r\n      LevelTitleTemplate,\r\n      LevelBackgroundTemplate,\r\n      EndPointTemplate\r\n    }\r\n    this.tasks = taskManagerFactory.factory(this.getOptions.bind(this), this.getGraphics.bind(this), this.getLayout.bind(this), this.setLayout.bind(this), templates);\r\n\r\n    this.layoutOptions = new LayoutOptions();\r\n  }\r\n\r\n  onItemRender(data: any) {\r\n    const { templateName } = data;\r\n    const template = this.templatesHash[templateName];\r\n    return template.itemTemplate;\r\n  }\r\n\r\n  onHighlightRender(data: any) {\r\n    const { templateName } = data;\r\n    const template = this.templatesHash[templateName];\r\n    return template.highlightTemplate;\r\n  }\r\n\r\n  onCursorRender(data: any) {\r\n    const { templateName } = data;\r\n    const template = this.templatesHash[templateName];\r\n    return template.cursorTemplate;\r\n  }\r\n\r\n  templatesHash: {[id: string]:TemplateConfig} = {};\r\n  getOptions() {\r\n    const { config } = this.state;\r\n    const templates: Array<TemplateConfig> = config.templates || [];\r\n\r\n    this.templatesHash = {};\r\n    templates.forEach(template => {\r\n      this.templatesHash[template.name!] = template;\r\n    });\r\n\r\n    const effectiveTemplates = templates.map(template => {\r\n      const { buttonsTemplate } = template;\r\n      return {\r\n        ...template,\r\n        onButtonsRender: !buttonsTemplate ? null : () => buttonsTemplate\r\n      };\r\n    });\r\n\r\n    const { highlightItem, cursorItem, selectedItems } = this.state;\r\n    return {\r\n      ...config,\r\n      templates: effectiveTemplates,\r\n      highlightItem,\r\n      cursorItem,\r\n      selectedItems,\r\n      onItemRender: this.onItemRender.bind(this),\r\n      onCursorRender: this.onCursorRender.bind(this),\r\n      onHighlightRender: this.onHighlightRender.bind(this),\r\n      onGroupTitleRender: !config.groupTitleTemplate ? null : () => config.groupTitleTemplate,\r\n      onLevelBackgroundRender: !config.levelBackgroundTemplate ? null : () => config.levelBackgroundTemplate,\r\n      onLevelTitleRender: !config.levelTitleTemplate ? null : () => config.levelTitleTemplate,\r\n      onButtonsRender: !config.buttonsTemplate ? null : () => config.buttonsTemplate,\r\n      onEndPointRender: !config.endPointTemplate ? null : () => config.endPointTemplate,\r\n    };\r\n  }\r\n\r\n  getGraphics() {\r\n    return this.graphics;\r\n  }\r\n\r\n  getLayout() {\r\n    var centerOnCursor = this.state.centerOnCursor;\r\n    var viewportSize = this.state.viewportSize;\r\n    var contentPosition = this.state.contentPosition;\r\n    // var { centerOnCursor, viewportSize, contentPosition } = this.state;\r\n    return {\r\n      forceCenterOnCursor: centerOnCursor,\r\n      scrollPanelSize: new Size(viewportSize.width, viewportSize.height),\r\n      placeholderOffset: new Point(contentPosition.x, contentPosition.y)\r\n    }\r\n  }\r\n\r\n  setLayout(layoutOptions: any) {\r\n    const { \r\n        autoSize, // resize control if true\r\n        controlSize, // Sets control Size in auto scale mode\r\n        scale, // scale is needed for scale transform CSS creation\r\n        frameMousePanelRect,\r\n        framePlaceholderSize, // the frame content size before CSS Scale Transform applied\r\n        titlesMousePanelRect,\r\n        titlesPlaceholderSize, // Titles size before CSS Scale Transform applied\r\n        scrollPanelRect,\r\n        mousePanelSize, // Content mouse panel size\r\n        placeholderSize // Content size before CSS Scale Transform applied\r\n    } = layoutOptions;\r\n\r\n    this.layoutOptions = new LayoutOptions({\r\n      autoSize,\r\n      controlSize: new Size(controlSize.width, controlSize.height),\r\n      scale,\r\n      frameMousePanelRect: new Rect(frameMousePanelRect.x, frameMousePanelRect.y, frameMousePanelRect.width, frameMousePanelRect.height),\r\n      framePlaceholderSize: new Size(framePlaceholderSize.width, framePlaceholderSize.height),\r\n\r\n      titlesMousePanelRect: new Rect(titlesMousePanelRect.x, titlesMousePanelRect.y, titlesMousePanelRect.width, titlesMousePanelRect.height),\r\n      titlesPlaceholderSize: new Size(titlesPlaceholderSize.width, titlesPlaceholderSize.height),\r\n\r\n      scrollPanelRect: new Rect(scrollPanelRect.x, scrollPanelRect.y, scrollPanelRect.width, scrollPanelRect.height),\r\n      mousePanelSize: new Size(mousePanelSize.width, mousePanelSize.height),\r\n      placeholderSize: new Size(placeholderSize.width, placeholderSize.height)\r\n    });\r\n  }\r\n\r\n  fixPixelAlignment() {\r\n    const { nativeElement } = this.controlPanelRef!;\r\n    var pixelAlignmentFix = getFixOfPixelAlignment(nativeElement);\r\n    nativeElement.style.marginLeft = pixelAlignmentFix.width + \"px\";\r\n    nativeElement.style.marginTop = pixelAlignmentFix.height + \"px\";\r\n  }\r\n\r\n  onSizeChanged() {\r\n    const { width, height } = getInnerSize(this.controlPanelRef!.nativeElement)\r\n    this.setState({\r\n      viewportSize: new Size(width, height),\r\n      centerOnCursor: true\r\n    });\r\n  }\r\n\r\n  onScroll(event: Event) {\r\n    if (this.timer == null) {\r\n      this.timer = window.setTimeout(this.onRefreshViewport.bind(this), 100);\r\n    }\r\n  }\r\n\r\n  onRefreshViewport() {\r\n    window.clearTimeout(this.timer!);\r\n    this.timer = null;\r\n\r\n    const { scrollTop, scrollLeft } = this.scrollPanelRef!.nativeElement;\r\n    this.setState({\r\n      contentPosition: new Point(Math.floor(scrollLeft), Math.floor(scrollTop)),\r\n      centerOnCursor: false\r\n    });\r\n  }\r\n\r\n  onFrameMouseMove(event: MouseEvent) {const placeholderOffset = getElementOffset(this.frameMousePanelRef!.nativeElement),\r\n      x = event.pageX - placeholderOffset.left,\r\n      y = event.pageY - placeholderOffset.top,\r\n      projectItemsToFrameTask = this.tasks.getTask(\"ProjectItemsToFrameTask\"),\r\n      highlightItemOptionTask = this.tasks.getTask(\"HighlightItemOptionTask\");\r\n\r\n    if (highlightItemOptionTask.hasHighlightEnabled()) {\r\n      const itemId = projectItemsToFrameTask.getTreeItemForMousePosition(x, y, highlightItemOptionTask.getGravityRadius());\r\n      this.setHighlightItem(event, itemId);\r\n    }\r\n  }\r\n\r\n  onFrameClick(event: MouseEvent) {\r\n    const placeholderOffset = getElementOffset(this.frameMousePanelRef!.nativeElement),\r\n      x = event.pageX - placeholderOffset.left,\r\n      y = event.pageY - placeholderOffset.top,\r\n      projectItemsToFrameTask = this.tasks.getTask(\"ProjectItemsToFrameTask\"),\r\n      cursorItemOptionTask = this.tasks.getTask(\"CursorItemOptionTask\"),\r\n      highlightItemOptionTask = this.tasks.getTask(\"HighlightItemOptionTask\"),\r\n      newCursorItemId = projectItemsToFrameTask.getTreeItemForMousePosition(x, y, highlightItemOptionTask.getGravityRadius());\r\n    if (newCursorItemId !== null) {\r\n      if (cursorItemOptionTask.hasCursorEnabled()) {\r\n        this.setCursorItem(event, newCursorItemId);\r\n        this.controlPanelRef!.nativeElement.focus();\r\n      }\r\n    }\r\n  }\r\n\r\n  onMouseMove(event: MouseEvent) {\r\n    const placeholderOffset = getElementOffset(this.mousePanelRef!.nativeElement),\r\n      x = event.pageX - placeholderOffset.left,\r\n      y = event.pageY - placeholderOffset.top,\r\n      createTransformTask = this.tasks.getTask(\"CreateTransformTask\"),\r\n      highlightItemOptionTask = this.tasks.getTask(\"HighlightItemOptionTask\");\r\n\r\n    if (highlightItemOptionTask.hasHighlightEnabled()) {\r\n      const itemId = createTransformTask.getTreeItemForMousePosition(x, y, highlightItemOptionTask.getGravityRadius());\r\n      this.setHighlightItem(event, itemId);\r\n    }\r\n  }\r\n\r\n  getEventArgs(oldTreeItemId: string | number | null, newTreeItemId: string | number | null, name: string | null = null) {\r\n    var result: any = {},\r\n      combinedContextsTask = this.tasks.getTask(\"CombinedContextsTask\"),\r\n      alignDiagramTask = this.tasks.getTask(\"AlignDiagramTask\"),\r\n      oldItemConfig = combinedContextsTask.getConfig(oldTreeItemId),\r\n      newItemConfig = combinedContextsTask.getConfig(newTreeItemId),\r\n      itemPosition,\r\n      offset,\r\n      panelOffset;\r\n\r\n    if (oldItemConfig && oldItemConfig.id != null) {\r\n      result.oldContext = oldItemConfig;\r\n    }\r\n\r\n    if (newItemConfig && newItemConfig.id != null) {\r\n      result.context = newItemConfig;\r\n\r\n      if (newItemConfig.parent !== null) {\r\n        result.parentItem = combinedContextsTask.getConfig(newItemConfig.parent);\r\n      }\r\n\r\n      panelOffset = getElementOffset(this.mousePanelRef!.nativeElement);\r\n      offset = getElementOffset(this.scrollPanelRef!.nativeElement);\r\n      itemPosition = alignDiagramTask.getItemPosition(newTreeItemId);\r\n      result.position = new Rect(itemPosition.actualPosition)\r\n        .translate(panelOffset.left, panelOffset.top)\r\n        .translate(-offset.left, -offset.top);\r\n    }\r\n\r\n    if (name != null) {\r\n      result.name = name;\r\n    }\r\n\r\n    return result;\r\n  }\r\n\r\n  setHighlightItem(event: any, newHighlightItemId: string | number | null) {\r\n    let eventArgs, cancel = false;\r\n    const { highlightItem } = this.state;\r\n    if (newHighlightItemId !== highlightItem) {\r\n      eventArgs = this._onHighlightChanging(event, highlightItem, newHighlightItemId);\r\n      if (!eventArgs.cancel) {\r\n        this.setState({\r\n          highlightItem: newHighlightItemId\r\n        });\r\n        this._onHighlightChanged(eventArgs);\r\n      }\r\n    }\r\n  }\r\n\r\n  setCursorItem(event: any, newCursorItemId: string | number | null) {\r\n    let eventArgs, cancel = false;\r\n    const { cursorItem } = this.state;\r\n    if (newCursorItemId !== cursorItem) {\r\n      eventArgs = this._onCursorChanging(event, cursorItem, newCursorItemId);\r\n      if (!eventArgs.cancel) {\r\n        this.setState({\r\n          cursorItem: newCursorItemId,\r\n          centerOnCursor: true\r\n        });\r\n        this._onCursorChanged(eventArgs);\r\n      }\r\n    }\r\n  }\r\n\r\n  onClick(event: MouseEvent) {\r\n    var placeholderOffset = getElementOffset(this.mousePanelRef!.nativeElement),\r\n      x = event.pageX - placeholderOffset.left,\r\n      y = event.pageY - placeholderOffset.top,\r\n      createTransformTask = this.tasks.getTask(\"CreateTransformTask\"),\r\n      cursorItemOptionTask = this.tasks.getTask(\"CursorItemOptionTask\"),\r\n      highlightItemOptionTask = this.tasks.getTask(\"HighlightItemOptionTask\"),\r\n      newCursorItemId = createTransformTask.getTreeItemForMousePosition(x, y, highlightItemOptionTask.getGravityRadius());\r\n    var target: HTMLElement | null = event.target as HTMLElement;\r\n    if (newCursorItemId !== null) {\r\n      if (target.getAttribute(\"name\") === \"checkbox\" || target.getAttribute(\"name\") === \"selectiontext\") { //ignore jslint\r\n\r\n      }\r\n      else {\r\n        if (cursorItemOptionTask.hasCursorEnabled()) {\r\n          this.setCursorItem(event, newCursorItemId);\r\n          this.controlPanelRef!.nativeElement.focus();\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  onCheckboxChange(event: Event) {\r\n    let { selectedItems } = this.state;\r\n    let newSelectedItems = [];\r\n    const target = event.target as HTMLInputElement;\r\n    var itemId = target.getAttribute(\"data-id\");\r\n    const checked = target.checked\r\n    let cancel = false;\r\n    if (itemId != null) {\r\n      if (checked) {\r\n        newSelectedItems = [...selectedItems, itemId];\r\n      }\r\n      else {\r\n        // eslint-disable-next-line\r\n        newSelectedItems = selectedItems.filter(id => id != itemId); // User type may not mach string value in data attribute\r\n      }\r\n      var eventArgs = this._onSelectionChanging(event, selectedItems, newSelectedItems);\r\n      if (!eventArgs.cancel) {\r\n        this.setState({\r\n          selectedItems: newSelectedItems\r\n        })\r\n        this._onSelectionChanged(eventArgs);\r\n      }\r\n    }\r\n  }\r\n\r\n  onKeyDown(event: KeyboardEvent) {\r\n    var highlightItemTask = this.tasks.getTask(\"HighlightItemTask\"),\r\n      highlightItemOptionTask = this.tasks.getTask(\"HighlightItemOptionTask\"),\r\n      cursorItemTask = this.tasks.getTask(\"CursorItemTask\"),\r\n      cursorItemOptionTask = this.tasks.getTask(\"CursorItemOptionTask\"),\r\n      alignDiagramTask = this.tasks.getTask('AlignDiagramTask'),\r\n      createTransformTask = this.tasks.getTask('CreateTransformTask'),\r\n      transform = createTransformTask.getTransform(),\r\n      navigationItem = null,\r\n      newNavigationItem,\r\n      direction = null,\r\n      accepted;\r\n\r\n    if (highlightItemOptionTask.hasHighlightEnabled() && cursorItemOptionTask.hasCursorEnabled()) {\r\n      navigationItem = highlightItemTask.getHighlightTreeItem();\r\n      if (navigationItem === null) {\r\n        navigationItem = cursorItemTask.getCursorTreeItem();\r\n      }\r\n    } else if (highlightItemOptionTask.hasHighlightEnabled()) {\r\n      navigationItem = highlightItemTask.getHighlightTreeItem();\r\n    } else if (cursorItemOptionTask.hasCursorEnabled()) {\r\n      navigationItem = cursorItemTask.getCursorTreeItem();\r\n    }\r\n\r\n\r\n    if (navigationItem != null) {\r\n      switch (event.which) {\r\n        case 13: /*Enter*/\r\n          if (cursorItemOptionTask.hasCursorEnabled()) {\r\n            this.setCursorItem(event, navigationItem);\r\n            event.preventDefault();\r\n            this.controlPanelRef!.nativeElement.focus();\r\n          }\r\n          break;\r\n        case 40: /*Down*/\r\n          direction = OrientationType.Bottom;\r\n          break;\r\n        case 38: /*Up*/\r\n          direction = OrientationType.Top;\r\n          break;\r\n        case 37: /*Left*/\r\n          direction = OrientationType.Left;\r\n          break;\r\n        case 39: /*Right*/\r\n          direction = OrientationType.Right;\r\n          break;\r\n        default:\r\n          break;\r\n      }\r\n\r\n      if (direction != null) {\r\n\r\n        accepted = false;\r\n\r\n        while (!accepted) {\r\n          accepted = true;\r\n\r\n          direction = transform.getOrientation(direction);\r\n          newNavigationItem = alignDiagramTask.getNextItem(navigationItem, direction);\r\n\r\n          if (newNavigationItem != null) {\r\n            event.preventDefault();\r\n            if (highlightItemOptionTask.hasHighlightEnabled()) {\r\n              this.setHighlightItem(event, newNavigationItem);\r\n            } else if (cursorItemOptionTask.hasCursorEnabled()) {\r\n              this.setCursorItem(event, newNavigationItem);\r\n            }\r\n\r\n          }\r\n        }\r\n        this.controlPanelRef!.nativeElement.focus();\r\n      }\r\n    }\r\n  }\r\n\r\n  setState(newState: Partial<BaseDiagramState> = {}) {\r\n    this.state = {\r\n      ...this.state,\r\n      ...newState\r\n    };\r\n    this.render();\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.render();\r\n  }\r\n\r\n  render() {\r\n    this.tasks.process('OptionsTask', null, false);\r\n\r\n    const { \r\n      placeholder, \r\n      calloutplaceholder: calloutPlaceholder,\r\n      frameplaceholder: framePlaceholder, \r\n      titlesplaceholder: titlesPlaceholder\r\n    } = this.graphics.placeholders;\r\n\r\n    this.placeholder = placeholder;\r\n    this.titlesPlaceholder = titlesPlaceholder;\r\n    this.framePlaceholder = framePlaceholder;\r\n    this.calloutPlaceholder = calloutPlaceholder;\r\n\r\n    const { \r\n      autoSize, // resize control if true\r\n      controlSize, // Sets control Size in auto scale mode\r\n      scale, // scale is needed for scale transform CSS creation\r\n      frameMousePanelRect,\r\n      titlesMousePanelRect,\r\n      scrollPanelRect,\r\n      mousePanelSize // Content mouse panel size\r\n    } = this.layoutOptions;\r\n\r\n    var scaleText = \"scale(\" + scale + \",\" + scale + \")\";\r\n\r\n    this.controlPanelStyle = autoSize ? controlSize.getCSS!() : {};\r\n    this.frameMousePanelStyle = frameMousePanelRect.getCSS();\r\n\r\n    if(framePlaceholder) {\r\n    this.framePlaceholderStyle = {\r\n        ...(framePlaceholder.rect!.getCSS()),\r\n        \"transform\": scaleText,\r\n        \"msTransform\": scaleText,\r\n        \"WebkitTransform\": scaleText,\r\n        \"OTransform\": scaleText,\r\n        \"MozTransform\": scaleText\r\n      };\r\n    }\r\n    this.titlesMousePanelStyle = {\r\n      ...titlesMousePanelRect.getCSS()\r\n    };\r\n\r\n    \r\n    if(titlesPlaceholder) {\r\n      this.titlesPlaceholderStyle = {\r\n        ...(titlesPlaceholder.rect.getCSS()),\r\n        \"transformOrigin\": \"0 0\",\r\n        \"transform\": scaleText,\r\n        \"msTransform\": scaleText,\r\n        \"WebkitTransform\": scaleText, \r\n        \"OTransform\": scaleText, \r\n        \"MozTransform\": scaleText\r\n      };\r\n    }\r\n\r\n    this.scrollPanelStyle = {\r\n      ...(scrollPanelRect.getCSS()),\r\n      border: (scrollPanelRect.x > 0 ? \"1px dotted #dddddd\" : \"\")\r\n    };\r\n\r\n    this.mousePanelStyle = {\r\n      ...(mousePanelSize.getCSS!())\r\n    };\r\n\r\n    this.placeholderStyle = {\r\n      ...(placeholder.rect.getCSS()),\r\n      \"transform\": scaleText,\r\n      \"msTransform\": scaleText,\r\n      \"WebkitTransform\": scaleText,\r\n      \"OTransform\": scaleText,\r\n      \"MozTransform\": scaleText \r\n    }\r\n    if(calloutPlaceholder) {\r\n      this.calloutPlaceholderStyle = {\r\n        left: calloutPlaceholder.rect.x + \"px\",\r\n        top: calloutPlaceholder.rect.y + \"px\"\r\n      };\r\n    }\r\n\r\n    const { centerOnCursor } = this.state;\r\n    if (centerOnCursor) {\r\n      const centerOnCursorTask = this.tasks.getTask(\"CenterOnCursorTask\");\r\n      this.placeholderOffset = centerOnCursorTask.getPlaceholderOffset();\r\n    }\r\n  }\r\n\r\n  /* Component template properties */\r\n\r\n  placeholder: Placeholder | null = null;\r\n  framePlaceholder: Placeholder | null = null;\r\n  titlesPlaceholder: Placeholder | null = null;\r\n  calloutPlaceholder: Placeholder | null = null;\r\n\r\n  controlPanelStyle: Record<string, string | undefined | null> = {};\r\n  frameMousePanelStyle: Record<string, string | undefined | null> = {};\r\n  framePlaceholderStyle: Record<string, string | undefined | null> = {};\r\n  titlesMousePanelStyle: Record<string, string | undefined | null> = {};\r\n  titlesPlaceholderStyle: Record<string, string | undefined | null> = {};\r\n  scrollPanelStyle: Record<string, string | undefined | null> = {};\r\n  placeholderOffset: Point | undefined = undefined;\r\n  mousePanelStyle: Record<string, string | undefined | null> = {};\r\n  placeholderStyle: Record<string, string | undefined | null> = {};\r\n  calloutPlaceholderStyle: Record<string, string | undefined | null> = {};\r\n\r\n  ngOnDestroy() {\r\n    // destroy timer\r\n    if(this.timer) {\r\n      clearTimeout(this.timer);\r\n      this.timer = null;\r\n    }\r\n    // destroy observer\r\n    this.observer.disconnect();\r\n  }\r\n}\r\n","<!-- root control panel -->\r\n<div #controlPanelRef\r\n  class=\"control-panel\"\r\n  [ngStyle]=\"controlPanelStyle\"\r\n  (keydown)=\"onKeyDown($event)\"\r\n  tabIndex=\"0\"\r\n>\r\n  <div *ngIf=\"framePlaceholder\"\r\n    #frameMousePanelRef\r\n    class=\"frame-mouse-panel\"\r\n    [ngStyle]=\"frameMousePanelStyle\"\r\n    (click)=\"onFrameClick($event)\"\r\n    (mousemove)=\"onFrameMouseMove($event)\"\r\n  >\r\n    <div #framePlaceholderRef\r\n      class=\"frame-placeholder\" \r\n      [ngStyle]=\"framePlaceholderStyle\"\r\n    >\r\n      <ng-container *ngTemplateOutlet=\"layerTemplate; context: {$implicit: framePlaceholder}\"></ng-container>\r\n    </div>\r\n  </div>\r\n  <div *ngIf=\"titlesPlaceholder\"\r\n    #titlesMousePanelRef\r\n    class=\"titles-mouse-panel\"\r\n    [ngStyle]=\"titlesMousePanelStyle\"\r\n    (mousemove)=\"onFrameMouseMove($event)\"\r\n    (click)=\"onFrameClick($event)\"\r\n  >\r\n    <div #titlesPlaceholderRef\r\n      [ngStyle]=\"titlesPlaceholderStyle\"\r\n      class=\"titles-placeholder\"\r\n     >\r\n      <ng-container *ngTemplateOutlet=\"layerTemplate; context: {$implicit: titlesPlaceholder}\"></ng-container>\r\n    </div>\r\n  </div>\r\n  <div\r\n    #scrollPanelRef\r\n    class=\"scroll-panel\"\r\n    [ngStyle]=\"scrollPanelStyle\"\r\n    (scroll)=\"onScroll($event)\"\r\n    [scrollLeft]=\"placeholderOffset ? placeholderOffset.x : undefined\"\r\n    [scrollTop]=\"placeholderOffset ? placeholderOffset.y : undefined\"\r\n  >\r\n    <div #mousePanelRef\r\n      class=\"mouse-panel\"\r\n      [ngStyle]=\"mousePanelStyle\"\r\n      (mousemove)=\"onMouseMove($event)\"\r\n      (click)=\"onClick($event)\"\r\n      (change)=\"onCheckboxChange($event)\"\r\n    >\r\n      <div #placeholderRef\r\n        class=\"placeholder\"\r\n        [ngStyle]=\"placeholderStyle\"\r\n      >\r\n        <ng-container *ngTemplateOutlet=\"layerTemplate; context: {$implicit: placeholder}\"></ng-container>\r\n        <div *ngIf=\"calloutPlaceholder\"\r\n          #calloutPlaceholderRef\r\n          class=\"callout-placeholder\"\r\n          [ngStyle]=\"calloutPlaceholderStyle\"\r\n        >\r\n          <ng-container *ngTemplateOutlet=\"layerTemplate; context: {$implicit: calloutPlaceholder}\"></ng-container>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n\r\n<!--Templates: -->\r\n<ng-template #layerTemplate let-placeholder>\r\n  <div *ngFor=\"let layer of placeholder.layers\" class=\"layer\">\r\n    <ng-container *ngIf=\"layer\">\r\n      <div *ngFor=\"let label of layer.labels\" class=\"label\" [ngStyle]= \"label.style\">\r\n        <rotated-text\r\n          [width]=\"label.width\"\r\n          [height]=\"label.height\"\r\n          [orientation]=\"label.orientation\"\r\n          [horizontalAlignment]=\"label.horizontalAlignment\"\r\n          [verticalAlignment]=\"label.verticalAlignment\"\r\n        >{{label.label}}</rotated-text>\r\n      </div>\r\n      <svg \r\n        *ngIf=\"layer.polylines.length > 0\"\r\n        attr.height=\"{{placeholder.size.height}}px\"\r\n        attr.width=\"{{placeholder.size.width}}px\"\r\n        xmlns=\"http://www.w3.org/2000/svg\"\r\n        xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n        [ngStyle]=\"{width: placeholder.size.width + 'px', height: placeholder.size.height + 'px'}\"\r\n      >\r\n        <path *ngFor=\"let path of layer.polylines\" [attr.d]=\"path.data\" [ngStyle]=\"path.style\"></path>\r\n      </svg>\r\n      <div *ngFor=\"let item of layer.items;\" class=\"template\" [ngStyle]=\"item.style\">\r\n        <ng-container [ngSwitch]=\"item.templateType\">\r\n          <ng-container *ngSwitchCase=\"'itemTemplate'\">\r\n            <bp-item [itemConfig]=\"item.context.context\" [itemTitleFirstFontColor]=\"item.context.itemTitleFirstFontColor\" [itemTitleSecondFontColor]=\"item.context.itemTitleSecondFontColor\"></bp-item>\r\n          </ng-container>\r\n          <ng-container *ngSwitchCase=\"'checkboxTemplate'\">\r\n            <bp-checkbox [id]=\"item.context.id\" [isSelected]=\"item.context.isSelected\" [label]=\"item.context.selectCheckBoxLabel\"></bp-checkbox>\r\n          </ng-container>\r\n          <ng-container *ngSwitchCase=\"'groupTitleTemplate'\">\r\n            <bp-group-title [options]=\"item.context\" [itemConfig]=\"item.context.context\" [width]=\"item.context.width\" [height]=\"item.context.height\"></bp-group-title>\r\n          </ng-container>\r\n          <ng-container *ngSwitchCase=\"'endPointTemplate'\">\r\n            <bp-end-point [options]=\"item.context\" [annotationConfig]=\"item.context.context\" [isFromEndPoint]=\"item.context.context.isFromEndPoint\"></bp-end-point>\r\n          </ng-container>\r\n          <ng-container *ngSwitchCase=\"'cursorTemplate'\">\r\n            <bp-cursor [templateConfig]=\"item.context.templateConfig\"></bp-cursor>\r\n          </ng-container>\r\n          <ng-container *ngSwitchCase=\"'highlightTemplate'\">\r\n            <bp-highlight [templateConfig]=\"item.context.templateConfig\"></bp-highlight>\r\n          </ng-container>\r\n          <ng-container *ngSwitchCase=\"'dotHighlightTemplate'\">\r\n            <bp-dot-highlight [templateConfig]=\"item.context.templateConfig\"></bp-dot-highlight>\r\n          </ng-container>\r\n          <ng-container *ngSwitchCase=\"'levelTitleTemplate'\">\r\n            <bp-level-title [options]=\"item.context\" [annotationConfig]=\"item.context.context\" [width]=\"item.context.width\" [height]=\"item.context.height\"></bp-level-title>\r\n          </ng-container>\r\n          <ng-container *ngSwitchCase=\"'levelBackgroundTemplate'\">\r\n            <bp-level-background [annotationConfig]=\"item.context.context\"></bp-level-background>\r\n          </ng-container>\r\n          <ng-container *ngSwitchCase=\"'labelAnnotationTemplate'\">\r\n            <div class=\"label-annotation\">{{item.context.context.title}}</div>\r\n          </ng-container>\r\n          <ng-container *ngSwitchCase=\"'annotationLabelTemplate'\">\r\n            <div class=\"label-annotation\">{{item.context.context.label}}</div>\r\n          </ng-container>\r\n          <ng-container *ngSwitchDefault>\r\n            <ng-container *ngTemplateOutlet=\"item.templateRef; context: item.context\"></ng-container>\r\n          </ng-container>\r\n        </ng-container>\r\n      </div>\r\n    </ng-container>\r\n  </div>\r\n</ng-template>\r\n","import { Rect } from \"../structs/rect\";\r\n\r\nexport class FamEventArgs {\r\n    oldContext: any | null = null;\r\n    context: any | null = null;\r\n    parentItems : Array<number | string> = [];\r\n    childrenItems : Array<number | string> = [];\r\n    position : Rect | null = null;\r\n    name : string | null = null;\r\n    cancel : boolean = false;\r\n    event: Event | undefined;\r\n\r\n    constructor(config: Partial<FamEventArgs> = {}) {\r\n        Object.assign(this, config);\r\n    }\r\n};","import { Rect } from \"../structs/rect\";\r\n\r\nexport class OrgEventArgs {\r\n    oldContext: any | null = null;\r\n    context: any | null = null;\r\n    parentItem : number | string | null = null;\r\n    position : Rect | null = null;\r\n    name : string | null = null;\r\n    cancel : boolean = false;\r\n    event: Event | undefined;\r\n\r\n    constructor(config: Partial<OrgEventArgs> = {}) {\r\n        Object.assign(this, config);\r\n    }\r\n};","import { RenderingMode } from \"../enums\";\r\n\r\nexport class RenderEventArgs {\r\n    id: number | string | null = null;\r\n    element: any | null = null;\r\n    context: any | null = null;\r\n    templateName: string | null = null;\r\n    renderingMode: RenderingMode = RenderingMode.Create;\r\n    isCursor: boolean = false;\r\n    isSelected: boolean = false;\r\n\r\n    constructor(config: Partial<RenderEventArgs> = {}) {\r\n        Object.assign(this, config);\r\n    }\r\n};","export class SelectionEventArgs {\r\n    selectedItems: Array<string|number> = [];\r\n    newSelectedItems: Array<string|number> = [];\r\n    cancel : boolean = false;\r\n    event: Event | undefined;\r\n\r\n    constructor(config: Partial<SelectionEventArgs> = {}) {\r\n        Object.assign(this, config);\r\n    }\r\n};","import { TemplateRef } from '@angular/core';\r\nimport { ConnectorType, NavigationMode, PageFitMode, Visibility, OrientationType,\r\nHorizontalAlignmentType, VerticalAlignmentType, GroupByType, ElbowType, Enabled, SelectionPathMode,\r\nShapeType, LineType, ChildrenPlacementType, AdviserPlacementType, TextOrientationType,\r\nPlacementType } from '../enums';\r\nimport { BackgroundAnnotationConfig } from './background-annotation-config';\r\nimport { ConnectorAnnotationConfig } from './connector-annotation-config';\r\nimport { HighlightPathAnnotationConfig } from './highlight-path-annotation-config';\r\nimport { LevelAnnotationConfig } from './level-annotation-config';\r\nimport { OrgItemConfig } from './org-item-config';\r\nimport { ShapeAnnotationConfig } from './shape-annotation-config';\r\nimport { Size, Thickness } from '../structs';\r\nimport { TemplateConfig } from './template-config';\r\n\r\nexport class OrgConfig {\r\n  navigationMode: NavigationMode = NavigationMode.Default;\r\n  pageFitMode: PageFitMode = PageFitMode.FitToPage;\r\n  alignBranches: Boolean = false;\r\n  minimalVisibility: Visibility = Visibility.Dot;\r\n  minimumVisibleLevels: number = 1;\r\n  orientationType: OrientationType = OrientationType.Top;\r\n  horizontalAlignment: HorizontalAlignmentType = HorizontalAlignmentType.Center;\r\n  verticalAlignment: VerticalAlignmentType = VerticalAlignmentType.Middle;\r\n  arrowsDirection: GroupByType = GroupByType.None;\r\n  showExtraArrows: Boolean = false;\r\n  extraArrowsMinimumSpace: number = 30;\r\n  connectorType: ConnectorType = ConnectorType.Squared;\r\n  bevelSize: number = 4;\r\n  elbowType: ElbowType = ElbowType.None;\r\n  elbowDotSize: number = 4;\r\n  emptyDiagramMessage: string = \"Diagram is empty.\";\r\n  items: Array<OrgItemConfig> = [];\r\n  annotations: Array<BackgroundAnnotationConfig|ConnectorAnnotationConfig|HighlightPathAnnotationConfig|ShapeAnnotationConfig|LevelAnnotationConfig> = [];\r\n  cursorItem: number | string | null = null;\r\n  highlightItem: number | string | null = null;\r\n  highlightGravityRadius: number = 40;\r\n  selectedItems: Array<number|string> = [];\r\n  hasSelectorCheckbox: Enabled = Enabled.Auto;\r\n  selectCheckBoxLabel: string = \"Selected\";\r\n  selectionPathMode: SelectionPathMode = SelectionPathMode.FullStack;\r\n  templates: Array<TemplateConfig> = [];\r\n  defaultTemplateName: string | null = null;\r\n  hasButtons: Enabled = Enabled.Auto;\r\n  buttonsTemplate: TemplateRef<any> | null = null;\r\n\r\n  normalLevelShift: number = 20;\r\n  dotLevelShift: number = 20;\r\n  lineLevelShift: number = 10;\r\n  normalItemsInterval: number = 10;\r\n  dotItemsInterval: number = 1;\r\n  lineItemsInterval: number = 2;\r\n  cousinsIntervalMultiplier: number = 5;\r\n  itemTitleFirstFontColor: string = \"#ffffff\";\r\n  itemTitleSecondFontColor: string = \"#000080\";\r\n\r\n  minimizedItemShapeType: ShapeType = ShapeType.None;\r\n  linesColor: string = \"#c0c0c0\";\r\n  linesWidth: number = 1;\r\n  linesType: LineType = LineType.Solid;\r\n  highlightLinesColor: string = \"#ff0000\";\r\n  highlightLinesWidth: number = 1;\r\n  highlightLinesType: LineType = LineType.Solid;\r\n  calloutMaximumVisibility: Visibility = Visibility.Dot;\r\n  showCallout: Boolean = true;\r\n  calloutPlacementOffset: number = 100;\r\n  defaultCalloutTemplateName: string | null = null;\r\n  calloutfillColor: string = \"#000000\";\r\n  calloutBorderColor: string | null = null;\r\n  calloutOffset: number = 4;\r\n  calloutCornerRadius: number = 4;\r\n  calloutPointerWidth: string = \"10%\";\r\n  calloutLineWidth: number = 1;\r\n  calloutOpacity: number = 0.2;\r\n  childrenPlacementType: ChildrenPlacementType = ChildrenPlacementType.Horizontal;\r\n  leavesPlacementType: ChildrenPlacementType = ChildrenPlacementType.Horizontal;\r\n  placeAssistantsAboveChildren: Boolean = true;\r\n  placeAdvisersAboveChildren: Boolean = true;\r\n  maximumColumnsInMatrix: number = 6;\r\n  buttonsPanelSize: number = 28;\r\n  groupTitlePanelSize: number = 24;\r\n  checkBoxPanelSize: number = 24;\r\n  groupTitlePlacementType: AdviserPlacementType = AdviserPlacementType.Left;\r\n  groupTitleOrientation: TextOrientationType = TextOrientationType.RotateRight;\r\n  groupTitleVerticalAlignment: VerticalAlignmentType = VerticalAlignmentType.Middle;\r\n  groupTitleHorizontalAlignment: HorizontalAlignmentType = HorizontalAlignmentType.Center;\r\n  groupTitleFontSize: string = \"12px\";\r\n  groupTitleFontFamily: string = \"Arial\";\r\n  groupTitleColor: string = \"#4169e1\";\r\n  groupTitleFontWeight: string = \"normal\";\r\n  groupTitleFontStyle: string = \"normal\";\r\n  groupTitleTemplate: TemplateRef<any> | null = null;\r\n  levelTitlePanelSize: number = 24;\r\n  levelTitlePlacementType: AdviserPlacementType = AdviserPlacementType.Left;\r\n  levelTitlePlaceInside: Boolean = false;\r\n  levelTitleOrientation: TextOrientationType = TextOrientationType.Auto;\r\n  levelTitleVerticalAlignment: VerticalAlignmentType = VerticalAlignmentType.Middle;\r\n  levelTitleHorizontalAlignment: HorizontalAlignmentType = HorizontalAlignmentType.Center;\r\n  levelTitleFontSize: string = \"12px\";\r\n  levelTitleFontFamily: string = \"Arial\";\r\n  levelTitleFontColor: string = \"#ffffff\"\r\n  levelTitleColor: string = \"#4169e1\";\r\n  levelTitleFontWeight: string = \"normal\";\r\n  levelTitleFontStyle: string = \"normal\";\r\n  levelTitleTemplate: TemplateRef<any> | null = null;\r\n  levelBackgroundTemplate: TemplateRef<any> | null = null;\r\n  endPointTemplate: TemplateRef<any> | null = null;\r\n  showEndPoints: Enabled = Enabled.False;\r\n  endPointSize: Size = new Size(8, 8);\r\n  endPointCornerRadius: number = 4;\r\n  endPointFillColor: string = \"#000080\";\r\n  endPointOpacity: number = 0.5;\r\n  distance: number = 3;\r\n  scale: number = 1;\r\n  minimumScale: number = 0.5;\r\n  maximumScale: number = 2;\r\n  showLabels: Enabled = Enabled.Auto;\r\n  labelSize: Size = new Size(80, 24);\r\n  labelOffset: number = 1;\r\n  labelOrientation: TextOrientationType = TextOrientationType.Horizontal;\r\n  labelPlacement: PlacementType = PlacementType.Top;\r\n  labelFontSize: string = \"10px\";\r\n  labelFontFamily: string = \"Arial\";\r\n  labelColor: string = \"#000000\";\r\n  labelFontWeight: string = \"normal\";\r\n  labelFontStyle: string = \"normal\";\r\n  enablePanning: Boolean = true;\r\n  autoSizeMinimum: Size = new Size(800, 600);\r\n  autoSizeMaximum: Size = new Size(1024, 768);\r\n  showFrame: Boolean = false;\r\n  frameInnerPadding: Thickness = new Thickness(2, 2, 2, 2);\r\n  frameOuterPadding: Thickness = new Thickness(2, 2, 2, 2);\r\n  padding: Thickness = new Thickness(10, 10, 10, 10);\r\n\r\n  constructor(config: Partial<OrgConfig> = {}) {\r\n    Object.assign(this, config);\r\n  }\r\n};\r\n","import { Component, ElementRef, EventEmitter, Input, NgZone, Output, SimpleChanges } from '@angular/core';\r\nimport { TemplateRef } from '@angular/core';\r\nimport { ConnectorType, NavigationMode, PageFitMode, Visibility, OrientationType,\r\nHorizontalAlignmentType, VerticalAlignmentType, GroupByType, ElbowType, Enabled, SelectionPathMode,\r\nShapeType, LineType, ChildrenPlacementType, AdviserPlacementType, TextOrientationType,\r\nPlacementType } from '../enums';\r\nimport { BackgroundAnnotationConfig } from '../configs/background-annotation-config';\r\nimport { ConnectorAnnotationConfig } from '../configs/connector-annotation-config';\r\nimport { HighlightPathAnnotationConfig } from '../configs/highlight-path-annotation-config';\r\nimport { LevelAnnotationConfig } from '../configs/level-annotation-config';\r\nimport { OrgItemConfig } from '../configs/org-item-config';\r\nimport { ShapeAnnotationConfig } from '../configs/shape-annotation-config';\r\nimport { Size, Thickness } from '../structs';\r\nimport { TemplateConfig } from '../configs/template-config';\r\nimport { BaseDiagramComponent } from './base-diagram.component';\r\nimport { TaskManagerFactory } from './task-manager-factory';\r\nimport { OrgEventArgs, SelectionEventArgs } from '../events/';\r\n// @ts-ignore\r\nimport { OrgTaskManagerFactory } from 'basicprimitives';\r\nimport { OrgConfig } from '../configs/org-config';\r\n\r\n@Component({\r\n  selector: 'org-diagram:not(a)',\r\n  templateUrl: './base-diagram.component.html',\r\n  styleUrls: ['./base-diagram.component.css']\r\n})\r\nexport class OrgDiagramComponent extends BaseDiagramComponent implements OrgConfig {\r\n  @Input() navigationMode: NavigationMode = NavigationMode.Default;\r\n  @Input() pageFitMode: PageFitMode = PageFitMode.FitToPage;\r\n  @Input() alignBranches: Boolean = false;\r\n  @Input() minimalVisibility: Visibility = Visibility.Dot;\r\n  @Input() minimumVisibleLevels: number = 1;\r\n  @Input() orientationType: OrientationType = OrientationType.Top;\r\n  @Input() horizontalAlignment: HorizontalAlignmentType = HorizontalAlignmentType.Center;\r\n  @Input() verticalAlignment: VerticalAlignmentType = VerticalAlignmentType.Middle;\r\n  @Input() arrowsDirection: GroupByType = GroupByType.None;\r\n  @Input() showExtraArrows: Boolean = false;\r\n  @Input() extraArrowsMinimumSpace: number = 30;\r\n  @Input() connectorType: ConnectorType = ConnectorType.Squared;\r\n  @Input() bevelSize: number = 4;\r\n  @Input() elbowType: ElbowType = ElbowType.None;\r\n  @Input() elbowDotSize: number = 4;\r\n  @Input() emptyDiagramMessage: string = \"Diagram is empty.\";\r\n  @Input() items: Array<OrgItemConfig> = [];\r\n  @Input() annotations: Array<BackgroundAnnotationConfig|ConnectorAnnotationConfig|HighlightPathAnnotationConfig|ShapeAnnotationConfig|LevelAnnotationConfig> = [];\r\n  @Input() cursorItem: number | string | null = null;\r\n  @Input() highlightItem: number | string | null = null;\r\n  @Input() highlightGravityRadius: number = 40;\r\n  @Input() selectedItems: Array<number|string> = [];\r\n  @Input() hasSelectorCheckbox: Enabled = Enabled.Auto;\r\n  @Input() selectCheckBoxLabel: string = \"Selected\";\r\n  @Input() selectionPathMode: SelectionPathMode = SelectionPathMode.FullStack;\r\n  @Input() templates: Array<TemplateConfig> = [];\r\n  @Input() defaultTemplateName: string | null = null;\r\n  @Input() hasButtons: Enabled = Enabled.Auto;\r\n  @Input() buttonsTemplate: TemplateRef<any> | null = null;\r\n\r\n  @Input() normalLevelShift: number = 20;\r\n  @Input() dotLevelShift: number = 20;\r\n  @Input() lineLevelShift: number = 10;\r\n  @Input() normalItemsInterval: number = 10;\r\n  @Input() dotItemsInterval: number = 1;\r\n  @Input() lineItemsInterval: number = 2;\r\n  @Input() cousinsIntervalMultiplier: number = 5;\r\n  @Input() itemTitleFirstFontColor: string = \"#ffffff\";\r\n  @Input() itemTitleSecondFontColor: string = \"#000080\";\r\n\r\n  @Input() minimizedItemShapeType: ShapeType = ShapeType.None;\r\n  @Input() linesColor: string = \"#c0c0c0\";\r\n  @Input() linesWidth: number = 1;\r\n  @Input() linesType: LineType = LineType.Solid;\r\n  @Input() highlightLinesColor: string = \"#ff0000\";\r\n  @Input() highlightLinesWidth: number = 1;\r\n  @Input() highlightLinesType: LineType = LineType.Solid;\r\n  @Input() calloutMaximumVisibility: Visibility = Visibility.Dot;\r\n  @Input() showCallout: Boolean = true;\r\n  @Input() calloutPlacementOffset: number = 100;\r\n  @Input() defaultCalloutTemplateName: string | null = null;\r\n  @Input() calloutfillColor: string = \"#000000\";\r\n  @Input() calloutBorderColor: string | null = null;\r\n  @Input() calloutOffset: number = 4;\r\n  @Input() calloutCornerRadius: number = 4;\r\n  @Input() calloutPointerWidth: string = \"10%\";\r\n  @Input() calloutLineWidth: number = 1;\r\n  @Input() calloutOpacity: number = 0.2;\r\n  @Input() childrenPlacementType: ChildrenPlacementType = ChildrenPlacementType.Horizontal;\r\n  @Input() leavesPlacementType: ChildrenPlacementType = ChildrenPlacementType.Horizontal;\r\n  @Input() placeAssistantsAboveChildren: Boolean = true;\r\n  @Input() placeAdvisersAboveChildren: Boolean = true;\r\n  @Input() maximumColumnsInMatrix: number = 6;\r\n  @Input() buttonsPanelSize: number = 28;\r\n  @Input() groupTitlePanelSize: number = 24;\r\n  @Input() checkBoxPanelSize: number = 24;\r\n  @Input() groupTitlePlacementType: AdviserPlacementType = AdviserPlacementType.Left;\r\n  @Input() groupTitleOrientation: TextOrientationType = TextOrientationType.RotateRight;\r\n  @Input() groupTitleVerticalAlignment: VerticalAlignmentType = VerticalAlignmentType.Middle;\r\n  @Input() groupTitleHorizontalAlignment: HorizontalAlignmentType = HorizontalAlignmentType.Center;\r\n  @Input() groupTitleFontSize: string = \"12px\";\r\n  @Input() groupTitleFontFamily: string = \"Arial\";\r\n  @Input() groupTitleColor: string = \"#4169e1\";\r\n  @Input() groupTitleFontWeight: string = \"normal\";\r\n  @Input() groupTitleFontStyle: string = \"normal\";\r\n  @Input() groupTitleTemplate: TemplateRef<any> | null = null;\r\n  @Input() levelTitlePanelSize: number = 24;\r\n  @Input() levelTitlePlacementType: AdviserPlacementType = AdviserPlacementType.Left;\r\n  @Input() levelTitlePlaceInside: Boolean = false;\r\n  @Input() levelTitleOrientation: TextOrientationType = TextOrientationType.Auto;\r\n  @Input() levelTitleVerticalAlignment: VerticalAlignmentType = VerticalAlignmentType.Middle;\r\n  @Input() levelTitleHorizontalAlignment: HorizontalAlignmentType = HorizontalAlignmentType.Center;\r\n  @Input() levelTitleFontSize: string = \"12px\";\r\n  @Input() levelTitleFontFamily: string = \"Arial\";\r\n  @Input() levelTitleFontColor: string = \"#ffffff\"\r\n  @Input() levelTitleColor: string = \"#4169e1\";\r\n  @Input() levelTitleFontWeight: string = \"normal\";\r\n  @Input() levelTitleFontStyle: string = \"normal\";\r\n  @Input() levelTitleTemplate: TemplateRef<any> | null = null;\r\n  @Input() levelBackgroundTemplate: TemplateRef<any> | null = null;\r\n  @Input() endPointTemplate: TemplateRef<any> | null = null;\r\n  @Input() showEndPoints: Enabled = Enabled.False;\r\n  @Input() endPointSize: Size = new Size(8, 8);\r\n  @Input() endPointCornerRadius: number = 4;\r\n  @Input() endPointFillColor: string = \"#000080\";\r\n  @Input() endPointOpacity: number = 0.5;\r\n  @Input() distance: number = 3;\r\n  @Input() scale: number = 1;\r\n  @Input() minimumScale: number = 0.5;\r\n  @Input() maximumScale: number = 2;\r\n  @Input() showLabels: Enabled = Enabled.Auto;\r\n  @Input() labelSize: Size = new Size(80, 24);\r\n  @Input() labelOffset: number = 1;\r\n  @Input() labelOrientation: TextOrientationType = TextOrientationType.Horizontal;\r\n  @Input() labelPlacement: PlacementType = PlacementType.Top;\r\n  @Input() labelFontSize: string = \"10px\";\r\n  @Input() labelFontFamily: string = \"Arial\";\r\n  @Input() labelColor: string = \"#000000\";\r\n  @Input() labelFontWeight: string = \"normal\";\r\n  @Input() labelFontStyle: string = \"normal\";\r\n  @Input() enablePanning: Boolean = true;\r\n  @Input() autoSizeMinimum: Size = new Size(800, 600);\r\n  @Input() autoSizeMaximum: Size = new Size(1024, 768);\r\n  @Input() showFrame: Boolean = false;\r\n  @Input() frameInnerPadding: Thickness = new Thickness(2, 2, 2, 2);\r\n  @Input() frameOuterPadding: Thickness = new Thickness(2, 2, 2, 2);\r\n  @Input() padding: Thickness = new Thickness(10, 10, 10, 10);\r\n\r\n  @Output() onHighlightChanging = new EventEmitter<OrgEventArgs>(false);\r\n  @Output() onHighlightChanged = new EventEmitter<OrgEventArgs>();\r\n  @Output() onCursorChanging = new EventEmitter<OrgEventArgs>(false);\r\n  @Output() onCursorChanged = new EventEmitter<OrgEventArgs>();\r\n  @Output() onSelectionChanging = new EventEmitter<SelectionEventArgs>(false);\r\n  @Output() onSelectionChanged = new EventEmitter<SelectionEventArgs>();\r\n\r\n\r\n  constructor(host: ElementRef, zone: NgZone) {\r\n    super(host, zone, new TaskManagerFactory(OrgTaskManagerFactory))\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    var config = new OrgConfig(this);\r\n    const { highlightItem, cursorItem, selectedItems } = config;\r\n    this.state = {\r\n      ...this.state,\r\n      config,\r\n      highlightItem,\r\n      cursorItem,\r\n      selectedItems,\r\n      centerOnCursor: this.centerOnCursor\r\n    };\r\n    this.render();\r\n  }\r\n\r\n  override _onHighlightChanging (event: Event, itemId: number | string | null, newItemId: number | string | null): OrgEventArgs {\r\n    var newEvent = new OrgEventArgs(\r\n      {\r\n        ...(this.getEventArgs(itemId, newItemId)),\r\n        event\r\n      }\r\n    )\r\n    this.onHighlightChanging.emit(newEvent);\r\n    return newEvent; \r\n  };\r\n\r\n  override _onHighlightChanged (eventArgs: any) {\r\n    this.onHighlightChanged.emit(eventArgs);\r\n  };\r\n\r\n  override _onCursorChanging (event: Event, itemId: number | string | null, newItemId: number | string | null): OrgEventArgs { \r\n    var newEvent = new OrgEventArgs(\r\n      {\r\n        ...(this.getEventArgs(itemId, newItemId)),\r\n        event\r\n      }\r\n    )\r\n    this.onCursorChanging.emit(newEvent);\r\n    return newEvent; \r\n  };\r\n\r\n  override _onCursorChanged (eventArgs: any) {\r\n    this.onCursorChanged.emit(eventArgs);\r\n  };\r\n\r\n  override _onSelectionChanging (event: Event, selectedItems: Array<string|number>, newSelectedItems: Array<string|number>): SelectionEventArgs { \r\n    var newEvent = new SelectionEventArgs(\r\n      {\r\n        selectedItems,\r\n        newSelectedItems,\r\n        event\r\n      }\r\n    )\r\n    this.onSelectionChanging.emit(newEvent);\r\n    return newEvent; \r\n  };\r\n\r\n  override _onSelectionChanged (eventArgs: any) {\r\n    this.onSelectionChanged.emit(eventArgs);\r\n  };\r\n  \r\n}\r\n","import { Visibility, OrientationType, VerticalAlignmentType, ElbowType,\r\n  NeighboursSelectionMode, ShapeType, TextOrientationType, HorizontalAlignmentType, \r\n  PlacementType, NavigationMode, PageFitMode, GroupByType,\r\n  Enabled, LineType, AdviserPlacementType, SelectionPathMode } from '../enums';\r\nimport { BackgroundAnnotationConfig } from './background-annotation-config';\r\nimport { ConnectorAnnotationConfig } from './connector-annotation-config';\r\nimport { HighlightPathAnnotationConfig } from './highlight-path-annotation-config';\r\nimport { LevelAnnotationConfig } from './level-annotation-config';\r\nimport { ShapeAnnotationConfig } from './shape-annotation-config';\r\nimport { FamItemConfig } from './fam-item-config';\r\nimport { LabelAnnotationConfig } from './label-annotation-config';\r\nimport { TemplateConfig } from './template-config';\r\nimport { TemplateRef } from '@angular/core';\r\nimport { PaletteItemConfig } from './palette-item-config';\r\nimport { Size, Thickness } from '../structs';\r\n\r\nexport class FamConfig {\r\n  navigationMode: NavigationMode = NavigationMode.Default;\r\n  pageFitMode: PageFitMode = PageFitMode.FitToPage;\r\n  minimalVisibility: Visibility = Visibility.Dot;\r\n  minimumVisibleLevels: number = 0;\r\n  orientationType: OrientationType = OrientationType.Top;\r\n  verticalAlignment: VerticalAlignmentType = VerticalAlignmentType.Middle;\r\n  arrowsDirection: GroupByType = GroupByType.None;\r\n  showExtraArrows: Boolean = true;\r\n  extraArrowsMinimumSpace: number = 30;\r\n  groupByType: GroupByType = GroupByType.Children;\r\n  alignBylevels: Boolean = true;\r\n  enableMatrixLayout: Boolean = false;\r\n  minimumMatrixSize: number = 4;\r\n  maximumColumnsInMatrix: number = 6;\r\n  hideGrandParentsConnectors: Boolean = false;\r\n  bevelSize: number = 4;\r\n  elbowType: ElbowType = ElbowType.Round;\r\n  elbowDotSize: number = 4;\r\n  emptyDiagramMessage: string = \"Diagram is empty.\";\r\n  items: Array<FamItemConfig> = [];\r\n  annotations: Array<BackgroundAnnotationConfig|ConnectorAnnotationConfig|HighlightPathAnnotationConfig|ShapeAnnotationConfig|LabelAnnotationConfig|LevelAnnotationConfig> = [];\r\n  cursorItem: number|string|null = null;\r\n  highlightItem: number|string|null = null;\r\n  highlightGravityRadius: number = 40;\r\n  selectedItems: Array<number|string> = [];\r\n  hasSelectorCheckbox: Enabled = Enabled.Auto;\r\n  selectCheckBoxLabel: string = \"Selected\";\r\n  selectionPathMode: SelectionPathMode = SelectionPathMode.None;\r\n  neighboursSelectionMode: NeighboursSelectionMode = NeighboursSelectionMode.ParentsAndChildren;\r\n  templates:Array<TemplateConfig> = [];\r\n  defaultTemplateName: string | null = null;\r\n  defaultLabelAnnotationTemplate: string | null = null;\r\n  hasButtons: Enabled = Enabled.Auto;\r\n  buttonsTemplate: TemplateRef<any> | null = null;\r\n  normalLevelShift: number = 20;\r\n  dotLevelShift: number = 20;\r\n  lineLevelShift: number = 10;\r\n  normalItemsInterval: number = 10;\r\n  dotItemsInterval: number = 1;\r\n  lineItemsInterval: number = 2;\r\n  cousinsIntervalMultiplier: number = 5;\r\n  itemTitleFirstFontColor: string = \"#ffffff\";\r\n  itemTitleSecondFontColor: string = \"#000080\";\r\n  minimizedItemShapeType: ShapeType = ShapeType.None;\r\n  linesColor: string = \"#c0c0c0\";\r\n  linesWidth: number = 1;\r\n  linesType: LineType = LineType.Solid;\r\n  showNeigboursConnectorsHighlighted: Boolean = false;\r\n  highlightLinesColor: string = \"#ff0000\";\r\n  highlightLinesWidth: number = 1;\r\n  highlightLinesType: LineType = LineType.Solid;\r\n  linesPalette: Array<PaletteItemConfig> = [];\r\n  calloutMaximumVisibility: Visibility = Visibility.Dot;\r\n  showCallout: Boolean = true;\r\n  calloutPlacementOffset: number = 100;\r\n  defaultCalloutTemplateName: string | null = null;\r\n  calloutfillColor: string = \"#000000\";\r\n  calloutBorderColor: string | null = null;\r\n  calloutOffset: number = 4;\r\n  calloutCornerRadius: number = 4;\r\n  calloutPointerWidth: string = \"10%\";\r\n  calloutLineWidth: number = 1;\r\n  calloutOpacity: number = 0.2;\r\n  buttonsPanelSize: number = 28;\r\n  groupTitlePanelSize: number = 24;\r\n  checkBoxPanelSize: number = 24;\r\n  groupTitlePlacementType: AdviserPlacementType = AdviserPlacementType.Left;\r\n  groupTitleOrientation: TextOrientationType = TextOrientationType.RotateRight;\r\n  groupTitleVerticalAlignment: VerticalAlignmentType = VerticalAlignmentType.Middle;\r\n  groupTitleHorizontalAlignment: HorizontalAlignmentType = HorizontalAlignmentType.Center;\r\n  groupTitleFontSize: string = \"12px\";\r\n  groupTitleFontFamily: string = \"Arial\";\r\n  groupTitleColor: string = \"#4169e1\";\r\n  groupTitleFontWeight: string = \"normal\";\r\n  groupTitleFontStyle: string = \"normal\";\r\n  groupTitleTemplate: TemplateRef<any> | null = null;\r\n  levelTitlePanelSize: number = 24;\r\n  levelTitlePlacementType: AdviserPlacementType = AdviserPlacementType.Left;\r\n  levelTitlePlaceInside: Boolean = false;\r\n  levelTitleOrientation: TextOrientationType = TextOrientationType.Auto;\r\n  levelTitleVerticalAlignment: VerticalAlignmentType = VerticalAlignmentType.Middle;\r\n  levelTitleHorizontalAlignment: HorizontalAlignmentType = HorizontalAlignmentType.Center;\r\n  levelTitleFontSize: string = \"12px\";\r\n  levelTitleFontFamily: string = \"Arial\";\r\n  levelTitleFontColor: string = \"#ffffff\";\r\n  levelTitleColor: string = \"#4169e1\";\r\n  levelTitleFontWeight: string = \"normal\";\r\n  levelTitleFontStyle: string = \"normal\";\r\n  levelTitleTemplate: TemplateRef<any> | null = null;\r\n  levelBackgroundTemplate: TemplateRef<any> | null = null;\r\n  endPointTemplate: TemplateRef<any> | null = null;\r\n  showEndPoints: Enabled = Enabled.False;\r\n  endPointSize: Size = new Size(8, 8);\r\n  endPointCornerRadius: number = 4;\r\n  endPointFillColor: string = \"#000080\";\r\n  endPointOpacity: number = 0.5;\r\n  distance: number = 3;\r\n  scale: number = 1;\r\n  minimumScale: number = 0.5;\r\n  maximumScale: number = 1;\r\n  showLabels: Enabled = Enabled.Auto;\r\n  labelSize: Size = new Size(80, 24);\r\n  labelOffset: number = 1;\r\n  labelOrientation: TextOrientationType = TextOrientationType.Horizontal;\r\n  labelPlacement: PlacementType = PlacementType.Top;\r\n  labelFontSize: string = \"10px\";\r\n  labelFontFamily: string = \"Arial\";\r\n  labelColor: string = \"#000000\";\r\n  labelFontWeight: string = \"normal\";\r\n  labelFontStyle: string = \"normal\";\r\n  enablePanning: Boolean = true;\r\n  autoSizeMinimum: Size = new Size(800, 600);\r\n  autoSizeMaximum: Size = new Size(1024, 768);\r\n  showFrame: Boolean = false;\r\n  frameInnerPadding: Thickness = new Thickness(2, 2, 2, 2);\r\n  frameOuterPadding: Thickness = new Thickness(2, 2, 2, 2);\r\n  padding: Thickness = new Thickness(10, 10, 10, 10);\r\n\r\n  constructor(config: Partial<FamConfig> = {}) {\r\n    Object.assign(this, config);\r\n  }\r\n};\r\n","import { Component, ElementRef, EventEmitter, Input, NgZone, Output, SimpleChanges, TemplateRef } from '@angular/core';\r\nimport { BaseDiagramComponent } from './base-diagram.component';\r\nimport { TaskManagerFactory } from './task-manager-factory';\r\nimport { FamEventArgs, SelectionEventArgs } from '../events/';\r\n// @ts-ignore\r\nimport { FamTaskManagerFactory } from 'basicprimitives';\r\n\r\nimport { FamConfig } from '../configs/fam-config';\r\nimport { FamItemConfig } from '../configs/fam-item-config';\r\nimport { TemplateConfig } from '../configs/template-config';\r\nimport { PaletteItemConfig } from '../configs/palette-item-config';\r\nimport { BackgroundAnnotationConfig } from '../configs/background-annotation-config';\r\nimport { ConnectorAnnotationConfig } from '../configs/connector-annotation-config';\r\nimport { HighlightPathAnnotationConfig } from '../configs/highlight-path-annotation-config';\r\nimport { LevelAnnotationConfig } from '../configs/level-annotation-config';\r\nimport { ShapeAnnotationConfig } from '../configs/shape-annotation-config';\r\nimport { LabelAnnotationConfig } from '../configs/label-annotation-config';\r\n\r\nimport { NavigationMode, PageFitMode, Visibility, OrientationType,\r\n  HorizontalAlignmentType, VerticalAlignmentType, GroupByType, ElbowType, Enabled, SelectionPathMode,\r\n  ShapeType, LineType, AdviserPlacementType, TextOrientationType,\r\n  PlacementType, \r\n  NeighboursSelectionMode} from '../enums';\r\nimport { Size, Thickness } from '../structs';\r\n\r\n\r\n@Component({\r\n  selector: 'fam-diagram:not(a)',\r\n  templateUrl: './base-diagram.component.html',\r\n  styleUrls: ['./base-diagram.component.css']\r\n})\r\nexport class FamDiagramComponent extends BaseDiagramComponent implements FamConfig {\r\n  @Input() navigationMode: NavigationMode = NavigationMode.Default;\r\n  @Input() pageFitMode: PageFitMode = PageFitMode.FitToPage;\r\n  @Input() minimalVisibility: Visibility = Visibility.Dot;\r\n  @Input() minimumVisibleLevels: number = 0;\r\n  @Input() orientationType: OrientationType = OrientationType.Top;\r\n  @Input() verticalAlignment: VerticalAlignmentType = VerticalAlignmentType.Middle;\r\n  @Input() arrowsDirection: GroupByType = GroupByType.None;\r\n  @Input() showExtraArrows: Boolean = true;\r\n  @Input() extraArrowsMinimumSpace: number = 30;\r\n  @Input() groupByType: GroupByType = GroupByType.Children;\r\n  @Input() alignBylevels: Boolean = true;\r\n  @Input() enableMatrixLayout: Boolean = false;\r\n  @Input() minimumMatrixSize: number = 4;\r\n  @Input() maximumColumnsInMatrix: number = 6;\r\n  @Input() hideGrandParentsConnectors: Boolean = false;\r\n  @Input() bevelSize: number = 4;\r\n  @Input() elbowType: ElbowType = ElbowType.Round;\r\n  @Input() elbowDotSize: number = 4;\r\n  @Input() emptyDiagramMessage: string = \"Diagram is empty.\";\r\n  @Input() items: Array<FamItemConfig> = [];\r\n  @Input() annotations: Array<BackgroundAnnotationConfig|ConnectorAnnotationConfig|HighlightPathAnnotationConfig|ShapeAnnotationConfig|LabelAnnotationConfig|LevelAnnotationConfig> = [];\r\n  @Input() cursorItem: number|string|null = null;\r\n  @Input() highlightItem: number|string|null = null;\r\n  @Input() highlightGravityRadius: number = 40;\r\n  @Input() selectedItems: Array<number|string> = [];\r\n  @Input() hasSelectorCheckbox: Enabled = Enabled.Auto;\r\n  @Input() selectCheckBoxLabel: string = \"Selected\";\r\n  @Input() selectionPathMode: SelectionPathMode = SelectionPathMode.None;\r\n  @Input() neighboursSelectionMode: NeighboursSelectionMode = NeighboursSelectionMode.ParentsAndChildren;\r\n  @Input() templates:Array<TemplateConfig> = [];\r\n  @Input() defaultTemplateName: string | null = null;\r\n  @Input() defaultLabelAnnotationTemplate: string | null = null;\r\n  @Input() hasButtons: Enabled = Enabled.Auto;\r\n  @Input() buttonsTemplate: TemplateRef<any> | null = null;\r\n  @Input() normalLevelShift: number = 20;\r\n  @Input() dotLevelShift: number = 20;\r\n  @Input() lineLevelShift: number = 10;\r\n  @Input() normalItemsInterval: number = 10;\r\n  @Input() dotItemsInterval: number = 1;\r\n  @Input() lineItemsInterval: number = 2;\r\n  @Input() cousinsIntervalMultiplier: number = 5;\r\n  @Input() itemTitleFirstFontColor: string = \"#ffffff\";\r\n  @Input() itemTitleSecondFontColor: string = \"#000080\";\r\n  @Input() minimizedItemShapeType: ShapeType = ShapeType.None;\r\n  @Input() linesColor: string = \"#c0c0c0\";\r\n  @Input() linesWidth: number = 1;\r\n  @Input() linesType: LineType = LineType.Solid;\r\n  @Input() showNeigboursConnectorsHighlighted: Boolean = false;\r\n  @Input() highlightLinesColor: string = \"#ff0000\";\r\n  @Input() highlightLinesWidth: number = 1;\r\n  @Input() highlightLinesType: LineType = LineType.Solid;\r\n  @Input() linesPalette: Array<PaletteItemConfig> = [];\r\n  @Input() calloutMaximumVisibility: Visibility = Visibility.Dot;\r\n  @Input() showCallout: Boolean = true;\r\n  @Input() calloutPlacementOffset: number = 100;\r\n  @Input() defaultCalloutTemplateName: string | null = null;\r\n  @Input() calloutfillColor: string = \"#000000\";\r\n  @Input() calloutBorderColor: string | null = null;\r\n  @Input() calloutOffset: number = 4;\r\n  @Input() calloutCornerRadius: number = 4;\r\n  @Input() calloutPointerWidth: string = \"10%\";\r\n  @Input() calloutLineWidth: number = 1;\r\n  @Input() calloutOpacity: number = 0.2;\r\n  @Input() buttonsPanelSize: number = 28;\r\n  @Input() groupTitlePanelSize: number = 24;\r\n  @Input() checkBoxPanelSize: number = 24;\r\n  @Input() groupTitlePlacementType: AdviserPlacementType = AdviserPlacementType.Left;\r\n  @Input() groupTitleOrientation: TextOrientationType = TextOrientationType.RotateRight;\r\n  @Input() groupTitleVerticalAlignment: VerticalAlignmentType = VerticalAlignmentType.Middle;\r\n  @Input() groupTitleHorizontalAlignment: HorizontalAlignmentType = HorizontalAlignmentType.Center;\r\n  @Input() groupTitleFontSize: string = \"12px\";\r\n  @Input() groupTitleFontFamily: string = \"Arial\";\r\n  @Input() groupTitleColor: string = \"#4169e1\";\r\n  @Input() groupTitleFontWeight: string = \"normal\";\r\n  @Input() groupTitleFontStyle: string = \"normal\";\r\n  @Input() groupTitleTemplate: TemplateRef<any> | null = null;\r\n  @Input() levelTitlePanelSize: number = 24;\r\n  @Input() levelTitlePlacementType: AdviserPlacementType = AdviserPlacementType.Left;\r\n  @Input() levelTitlePlaceInside: Boolean = false;\r\n  @Input() levelTitleOrientation: TextOrientationType = TextOrientationType.Auto;\r\n  @Input() levelTitleVerticalAlignment: VerticalAlignmentType = VerticalAlignmentType.Middle;\r\n  @Input() levelTitleHorizontalAlignment: HorizontalAlignmentType = HorizontalAlignmentType.Center;\r\n  @Input() levelTitleFontSize: string = \"12px\";\r\n  @Input() levelTitleFontFamily: string = \"Arial\";\r\n  @Input() levelTitleFontColor: string = \"#ffffff\";\r\n  @Input() levelTitleColor: string = \"#4169e1\";\r\n  @Input() levelTitleFontWeight: string = \"normal\";\r\n  @Input() levelTitleFontStyle: string = \"normal\";\r\n  @Input() levelTitleTemplate: TemplateRef<any> | null = null;\r\n  @Input() levelBackgroundTemplate: TemplateRef<any> | null = null;\r\n  @Input() endPointTemplate: TemplateRef<any> | null = null;\r\n  @Input() showEndPoints: Enabled = Enabled.False;\r\n  @Input() endPointSize: Size = new Size(8, 8);\r\n  @Input() endPointCornerRadius: number = 4;\r\n  @Input() endPointFillColor: string = \"#000080\";\r\n  @Input() endPointOpacity: number = 0.5;\r\n  @Input() distance: number = 3;\r\n  @Input() scale: number = 1;\r\n  @Input() minimumScale: number = 0.5;\r\n  @Input() maximumScale: number = 1;\r\n  @Input() showLabels: Enabled = Enabled.Auto;\r\n  @Input() labelSize: Size = new Size(80, 24);\r\n  @Input() labelOffset: number = 1;\r\n  @Input() labelOrientation: TextOrientationType = TextOrientationType.Horizontal;\r\n  @Input() labelPlacement: PlacementType = PlacementType.Top;\r\n  @Input() labelFontSize: string = \"10px\";\r\n  @Input() labelFontFamily: string = \"Arial\";\r\n  @Input() labelColor: string = \"#000000\";\r\n  @Input() labelFontWeight: string = \"normal\";\r\n  @Input() labelFontStyle: string = \"normal\";\r\n  @Input() enablePanning: Boolean = true;\r\n  @Input() autoSizeMinimum: Size = new Size(800, 600);\r\n  @Input() autoSizeMaximum: Size = new Size(1024, 768);\r\n  @Input() showFrame: Boolean = false;\r\n  @Input() frameInnerPadding: Thickness = new Thickness(2, 2, 2, 2);\r\n  @Input() frameOuterPadding: Thickness = new Thickness(2, 2, 2, 2);\r\n  @Input() padding: Thickness = new Thickness(10, 10, 10, 10);\r\n\r\n  @Output() onHighlightChanging = new EventEmitter<FamEventArgs>(false);\r\n  @Output() onHighlightChanged = new EventEmitter<FamEventArgs>();\r\n  @Output() onCursorChanging = new EventEmitter<FamEventArgs>(false);\r\n  @Output() onCursorChanged = new EventEmitter<FamEventArgs>();\r\n  @Output() onSelectionChanging = new EventEmitter<SelectionEventArgs>(false);\r\n  @Output() onSelectionChanged = new EventEmitter<SelectionEventArgs>();\r\n\r\n  constructor(host: ElementRef, zone: NgZone) {\r\n    super(host, zone, new TaskManagerFactory(FamTaskManagerFactory))\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    var config = new FamConfig(this);\r\n    const { highlightItem, cursorItem, selectedItems } = config;\r\n    this.state = {\r\n      ...this.state,\r\n      config,\r\n      highlightItem,\r\n      cursorItem,\r\n      selectedItems,\r\n      centerOnCursor: this.centerOnCursor\r\n    };\r\n    this.render();\r\n  }\r\n\r\n  override _onHighlightChanging (event: Event, itemId: number | string | null, newItemId: number | string | null): FamEventArgs {\r\n    var newEvent = new FamEventArgs(\r\n      {\r\n        ...(this.getEventArgs(itemId, newItemId)),\r\n        event\r\n      }\r\n    )\r\n    this.onHighlightChanging.emit(newEvent);\r\n    return newEvent; \r\n  };\r\n\r\n  override _onHighlightChanged (eventArgs: any) {\r\n    this.onHighlightChanged.emit(eventArgs);\r\n  };\r\n\r\n  override _onCursorChanging (event: Event, itemId: number | string | null, newItemId: number | string | null): FamEventArgs { \r\n    var newEvent = new FamEventArgs(\r\n      {\r\n        ...(this.getEventArgs(itemId, newItemId)),\r\n        event\r\n      }\r\n    )\r\n    this.onCursorChanging.emit(newEvent);\r\n    return newEvent; \r\n  };\r\n\r\n  override _onCursorChanged (eventArgs: any) {\r\n    this.onCursorChanged.emit(eventArgs);\r\n  };\r\n\r\n  override _onSelectionChanging (event: Event, selectedItems: Array<string|number>, newSelectedItems: Array<string|number>): SelectionEventArgs { \r\n    var newEvent = new SelectionEventArgs(\r\n      {\r\n        selectedItems,\r\n        newSelectedItems,\r\n        event\r\n      }\r\n    )\r\n    this.onSelectionChanging.emit(newEvent);\r\n    return newEvent; \r\n  };\r\n\r\n  override _onSelectionChanged (eventArgs: any) {\r\n    this.onSelectionChanged.emit(eventArgs);\r\n  };\r\n  \r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class BasicPrimitivesService {\r\n\r\n  constructor() { }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { OrgDiagramComponent } from './diagrams/org-diagram.component';\r\nimport { FamDiagramComponent } from './diagrams/fam-diagram.component';\r\nimport { RotatedText } from './diagrams/rotated-text.component';\r\nimport { ItemComponent } from './diagrams/components/item.component';\r\nimport { HighlightComponent } from './diagrams/components/highlight.component';\r\nimport { BaseDiagramComponent } from './diagrams/base-diagram.component';\r\nimport { CursorComponent } from './diagrams/components/cursor.component';\r\nimport { CheckboxComponent } from './diagrams/components/checkbox.component';\r\nimport { GroupTitleComponent } from './diagrams/components/group-title.component';\r\nimport { DotHighlightComponent } from './diagrams/components/dot-highlight.component';\r\nimport { LevelBackgroundComponent } from './diagrams/components/level-background.component';\r\nimport { LevelTitleComponent } from './diagrams/components/level-title.component';\r\nimport { EndPointComponent } from './diagrams/components/end-point.component';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    BaseDiagramComponent,\r\n    OrgDiagramComponent,\r\n    FamDiagramComponent,\r\n    RotatedText,\r\n    ItemComponent,\r\n    CursorComponent,\r\n    HighlightComponent,\r\n    DotHighlightComponent,\r\n    CheckboxComponent,\r\n    GroupTitleComponent,\r\n    EndPointComponent,\r\n    LevelBackgroundComponent,\r\n    LevelTitleComponent\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    OrgDiagramComponent,\r\n    FamDiagramComponent,\r\n    RotatedText\r\n  ]\r\n})\r\nexport class BasicPrimitivesModule { }\r\n","import { ShapeType, Enabled, TextOrientationType, PlacementType, AdviserPlacementType } from '../enums';\r\nimport { Size } from '../structs';\r\n\r\nexport class FamItemConfig {\r\n  id: number|String|null = null;\r\n  parents: Array<number|String> = [];\r\n  title: string | null = null;\r\n  description: string | null = null;\r\n  image: string | null = null;\r\n  context: any | null = null;\r\n  itemTitleColor: String = \"#4169e1\";\r\n  minimizedItemShapeType: ShapeType | null = null;\r\n  groupTitle: string | null = null;\r\n  groupTitleColor: String = \"#4169e1\";\r\n  isActive: Boolean = true;\r\n  hasSelectorCheckbox: Enabled = Enabled.Auto;\r\n  hasButtons: Enabled = Enabled.Auto;\r\n  templateName: string | null = null;\r\n  showCallout: Enabled = Enabled.Auto;\r\n  calloutTemplateName: string | null = null;\r\n  label: string | null = null;\r\n  showLabel: Enabled = Enabled.Auto;\r\n  labelSize: Size | null = null;\r\n  labelOrientation: TextOrientationType = TextOrientationType.Auto;\r\n  labelPlacement: PlacementType = PlacementType.Auto;\r\n  primaryParent: number|String|null = null;\r\n  relativeItem: number|String|null = null;\r\n  position: number|null = null;\r\n  placementType: AdviserPlacementType = AdviserPlacementType.Right;\r\n  matrixId: string | null = null;\r\n  addToMatrix: Boolean = true;\r\n\r\n  constructor(config: Partial<FamItemConfig> = {}) {\r\n    Object.assign(this, config);\r\n  }\r\n};","import { LineType } from '../enums';\r\n\r\nexport class PaletteItemConfig {\r\n  lineColor: String = \"#c0c0c0\";\r\n  lineWidth: number = 1;\r\n  lineType: LineType = LineType.Solid;\r\n\r\n  constructor(config: Partial<PaletteItemConfig> = {}) {\r\n    Object.assign(this, config);\r\n  }\r\n};\r\n","import { AnnotationType, ZOrderType, LineType } from '../enums';\r\n\r\nexport class HighlightPathAnnotationConfig {\r\n  annotationType: AnnotationType = AnnotationType.HighlightPath;\r\n  zOrderType: ZOrderType = ZOrderType.Foreground;\r\n  items: Array<number|String> = [];\r\n  lineWidth: number = 2;\r\n  color: String = \"#ff0000\";\r\n  lineType: LineType = LineType.Solid;\r\n  opacity: number = 1;\r\n  showArrows: Boolean = true;\r\n  selectItems: Boolean = false;\r\n\r\n  constructor(config: Partial<HighlightPathAnnotationConfig> = {}) {\r\n    Object.assign(this, config);\r\n  }\r\n};\r\n","import { AnnotationType } from '../enums';\r\n\r\nexport class LabelAnnotationConfig {\r\n  annotationType: AnnotationType = AnnotationType.Label;\r\n  fromItem: number|string | null = null;\r\n  toItems: Array<number|string> = [];\r\n  title: string | null = null;\r\n  itemTitleColor: string = \"#4169e1\";\r\n  templateName: string | null = null;\r\n\r\n  constructor(config: Partial<LabelAnnotationConfig> = {}) {\r\n    Object.assign(this, config);\r\n  }\r\n};\r\n","import { AnnotationType, ZOrderType, ShapeType, LineType, PlacementType } from '../enums';\r\nimport { Size, Thickness } from '../structs';\r\n\r\nexport class ShapeAnnotationConfig {\r\n  annotationType: AnnotationType = AnnotationType.Shape;\r\n  zOrderType: ZOrderType = ZOrderType.Auto;\r\n  items: Array<number|String> = [];\r\n  shapeType: ShapeType = ShapeType.Rectangle;\r\n  offset: Thickness = new Thickness(0, 0, 0, 0);\r\n  lineWidth: number = 2;\r\n  cornerRadius: String | number = \"10%\";\r\n  opacity: number = 1;\r\n  borderColor: string | null = null;\r\n  fillColor: string | null = null;\r\n  lineType: LineType = LineType.Solid;\r\n  selectItems: Boolean = false;\r\n  label: string | null = null;\r\n  labelSize: Size = new Size(60, 30);\r\n  labelPlacement: PlacementType = PlacementType.Auto;\r\n  labelOffset: number = 4;\r\n\r\n  constructor(config: Partial<ShapeAnnotationConfig> = {}) {\r\n    Object.assign(this, config);\r\n  }\r\n};\r\n","import {AnnotationType, ZOrderType, LineType} from '../enums';\r\nimport { Thickness } from '../structs';\r\n\r\nexport class BackgroundAnnotationConfig {\r\n  annotationType: AnnotationType = AnnotationType.Background;\r\n  items: Array<number|String> = [];\r\n  includeChildren: Boolean = false;\r\n  zOrderType: ZOrderType = ZOrderType.Auto;\r\n  offset: Thickness = new Thickness(18, 18, 18, 18);\r\n  lineWidth: number = 2;\r\n  opacity: number = 1;\r\n  borderColor: string | null = null;\r\n  fillColor: string | null = null;\r\n  lineType: LineType = LineType.Solid;\r\n  selectItems: Boolean = false;\r\n  \r\n  constructor(config: Partial<BackgroundAnnotationConfig> = {}) {\r\n    Object.assign(this, config);\r\n  }\r\n};\r\n\r\n","/*\r\n * Public API Surface of ngx-basic-primitives\r\n */\r\n\r\nexport * from './lib/diagrams/org-diagram.component';\r\nexport * from './lib/diagrams/fam-diagram.component';\r\nexport * from './lib/diagrams/rotated-text.component';\r\nexport * from './lib/ngx-basic-primitives.service';\r\nexport * from './lib/ngx-basic-primitives.module';\r\nexport * from './lib/configs/org-item-config';\r\nexport * from './lib/configs/fam-item-config';\r\nexport * from './lib/configs/template-config';\r\nexport * from './lib/configs/palette-item-config';\r\nexport * from './lib/configs/connector-annotation-config';\r\nexport * from './lib/configs/highlight-path-annotation-config';\r\nexport * from './lib/configs/label-annotation-config';\r\nexport * from './lib/configs/level-annotation-config';\r\nexport * from './lib/configs/shape-annotation-config';\r\nexport * from './lib/configs/background-annotation-config';\r\nexport * from './lib/structs/size';\r\nexport * from './lib/structs/rect';\r\nexport * from './lib/structs/thickness';\r\nexport * from './lib/enums';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.RotatedText","i1.TaskManagerFactory","i2","i3.RotatedText","i4.ItemComponent","i5.CursorComponent","i6.HighlightComponent","i7.DotHighlightComponent","i8.CheckboxComponent","i9.GroupTitleComponent","i10.EndPointComponent","i11.LevelBackgroundComponent","i12.LevelTitleComponent","i3.ItemComponent","i4.CursorComponent","i5.HighlightComponent","i6.DotHighlightComponent","i7.CheckboxComponent","i8.GroupTitleComponent","i9.EndPointComponent","i10.LevelBackgroundComponent","i11.LevelTitleComponent"],"mappings":"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"}