github.com/kotovmak/go-admin@v1.1.1/template/chartjs/chart.go (about) 1 package chartjs 2 3 import ( 4 "html/template" 5 6 template2 "github.com/kotovmak/go-admin/template" 7 ) 8 9 type Chart struct { 10 *template2.BaseComponent 11 12 ID string 13 Title template.HTML 14 Js template.JS 15 Height int 16 17 JsContentOptions *Options 18 19 dataSetIndex int 20 } 21 22 func (c *Chart) SetID(id string) *Chart { 23 c.ID = id 24 return c 25 } 26 27 func (c *Chart) SetTitle(title template.HTML) *Chart { 28 c.Title = title 29 return c 30 } 31 32 func (c *Chart) SetHeight(height int) *Chart { 33 c.Height = height 34 return c 35 } 36 37 func (c *Chart) SetOptionAnimationDuration(duration int) { 38 if c.JsContentOptions == nil { 39 c.JsContentOptions = new(Options) 40 } 41 if c.JsContentOptions.Animation == nil { 42 c.JsContentOptions.Animation = new(OptionAnimation) 43 } 44 c.JsContentOptions.Animation.Duration = duration 45 } 46 47 func (c *Chart) SetOptionAnimationEasing(easing string) { 48 if c.JsContentOptions == nil { 49 c.JsContentOptions = new(Options) 50 } 51 if c.JsContentOptions.Animation == nil { 52 c.JsContentOptions.Animation = new(OptionAnimation) 53 } 54 c.JsContentOptions.Animation.Easing = easing 55 } 56 57 func (c *Chart) SetOptionLayoutPaddingLeft(left int) { 58 if c.JsContentOptions == nil { 59 c.JsContentOptions = new(Options) 60 } 61 if c.JsContentOptions.Layout == nil { 62 c.JsContentOptions.Layout = new(OptionLayout) 63 } 64 c.JsContentOptions.Layout.Padding.Left = left 65 } 66 67 func (c *Chart) SetOptionLayoutPaddingRight(right int) { 68 if c.JsContentOptions == nil { 69 c.JsContentOptions = new(Options) 70 } 71 if c.JsContentOptions.Layout == nil { 72 c.JsContentOptions.Layout = new(OptionLayout) 73 } 74 c.JsContentOptions.Layout.Padding.Right = right 75 } 76 77 func (c *Chart) SetOptionLayoutPaddingTop(top int) { 78 if c.JsContentOptions == nil { 79 c.JsContentOptions = new(Options) 80 } 81 if c.JsContentOptions.Layout == nil { 82 c.JsContentOptions.Layout = new(OptionLayout) 83 } 84 c.JsContentOptions.Layout.Padding.Top = top 85 } 86 87 func (c *Chart) SetOptionLayoutPaddingBottom(bottom int) { 88 if c.JsContentOptions == nil { 89 c.JsContentOptions = new(Options) 90 } 91 if c.JsContentOptions.Layout == nil { 92 c.JsContentOptions.Layout = new(OptionLayout) 93 } 94 c.JsContentOptions.Layout.Padding.Bottom = bottom 95 } 96 97 func (c *Chart) SetOptionLegendDisplay(display bool) { 98 if c.JsContentOptions == nil { 99 c.JsContentOptions = new(Options) 100 } 101 if c.JsContentOptions.Legend == nil { 102 c.JsContentOptions.Legend = new(OptionLegend) 103 } 104 c.JsContentOptions.Legend.Display = display 105 } 106 107 func (c *Chart) SetOptionLegendPosition(position string) { 108 if c.JsContentOptions == nil { 109 c.JsContentOptions = new(Options) 110 } 111 if c.JsContentOptions.Legend == nil { 112 c.JsContentOptions.Legend = new(OptionLegend) 113 } 114 c.JsContentOptions.Legend.Position = position 115 } 116 117 func (c *Chart) SetOptionLegendAlign(align string) { 118 if c.JsContentOptions == nil { 119 c.JsContentOptions = new(Options) 120 } 121 if c.JsContentOptions.Legend == nil { 122 c.JsContentOptions.Legend = new(OptionLegend) 123 } 124 c.JsContentOptions.Legend.Align = align 125 } 126 127 func (c *Chart) SetOptionLegendFullWidt(fullWidth bool) { 128 if c.JsContentOptions == nil { 129 c.JsContentOptions = new(Options) 130 } 131 if c.JsContentOptions.Legend == nil { 132 c.JsContentOptions.Legend = new(OptionLegend) 133 } 134 c.JsContentOptions.Legend.FullWidth = fullWidth 135 } 136 137 func (c *Chart) SetOptionLegendRevers(reverse bool) { 138 if c.JsContentOptions == nil { 139 c.JsContentOptions = new(Options) 140 } 141 if c.JsContentOptions.Legend == nil { 142 c.JsContentOptions.Legend = new(OptionLegend) 143 } 144 c.JsContentOptions.Legend.Reverse = reverse 145 } 146 147 func (c *Chart) SetOptionLegendRt(rtl bool) { 148 if c.JsContentOptions == nil { 149 c.JsContentOptions = new(Options) 150 } 151 if c.JsContentOptions.Legend == nil { 152 c.JsContentOptions.Legend = new(OptionLegend) 153 } 154 c.JsContentOptions.Legend.Rtl = rtl 155 } 156 157 func (c *Chart) SetOptionLegendTextDirection(textDirection string) { 158 if c.JsContentOptions == nil { 159 c.JsContentOptions = new(Options) 160 } 161 if c.JsContentOptions.Legend == nil { 162 c.JsContentOptions.Legend = new(OptionLegend) 163 } 164 c.JsContentOptions.Legend.TextDirection = textDirection 165 } 166 167 func (c *Chart) SetOptionLegendLabels(labels *OptionLegendLabel) { 168 if c.JsContentOptions == nil { 169 c.JsContentOptions = new(Options) 170 } 171 if c.JsContentOptions.Legend == nil { 172 c.JsContentOptions.Legend = new(OptionLegend) 173 } 174 c.JsContentOptions.Legend.Labels = labels 175 } 176 177 func (c *Chart) SetOptionTitleDisplay(display bool) { 178 if c.JsContentOptions == nil { 179 c.JsContentOptions = new(Options) 180 } 181 if c.JsContentOptions.Title == nil { 182 c.JsContentOptions.Title = new(OptionTitle) 183 } 184 c.JsContentOptions.Title.Display = display 185 } 186 187 func (c *Chart) SetOptionTitleFontSize(fontSize int) { 188 if c.JsContentOptions == nil { 189 c.JsContentOptions = new(Options) 190 } 191 if c.JsContentOptions.Title == nil { 192 c.JsContentOptions.Title = new(OptionTitle) 193 } 194 c.JsContentOptions.Title.FontSize = fontSize 195 } 196 197 func (c *Chart) SetOptionTitlePosition(position string) { 198 if c.JsContentOptions == nil { 199 c.JsContentOptions = new(Options) 200 } 201 if c.JsContentOptions.Title == nil { 202 c.JsContentOptions.Title = new(OptionTitle) 203 } 204 c.JsContentOptions.Title.Position = position 205 } 206 207 func (c *Chart) SetOptionTitleFontFamily(fontFamily string) { 208 if c.JsContentOptions == nil { 209 c.JsContentOptions = new(Options) 210 } 211 if c.JsContentOptions.Title == nil { 212 c.JsContentOptions.Title = new(OptionTitle) 213 } 214 c.JsContentOptions.Title.FontFamily = fontFamily 215 } 216 217 func (c *Chart) SetOptionTitleFontColor(fontColor Color) { 218 if c.JsContentOptions == nil { 219 c.JsContentOptions = new(Options) 220 } 221 if c.JsContentOptions.Title == nil { 222 c.JsContentOptions.Title = new(OptionTitle) 223 } 224 c.JsContentOptions.Title.FontColor = fontColor 225 } 226 227 func (c *Chart) SetOptionTitleFontStyle(fontStyle string) { 228 if c.JsContentOptions == nil { 229 c.JsContentOptions = new(Options) 230 } 231 if c.JsContentOptions.Title == nil { 232 c.JsContentOptions.Title = new(OptionTitle) 233 } 234 c.JsContentOptions.Title.FontStyle = fontStyle 235 } 236 237 func (c *Chart) SetOptionTitlePadding(padding int) { 238 if c.JsContentOptions == nil { 239 c.JsContentOptions = new(Options) 240 } 241 if c.JsContentOptions.Title == nil { 242 c.JsContentOptions.Title = new(OptionTitle) 243 } 244 c.JsContentOptions.Title.Padding = padding 245 } 246 247 func (c *Chart) SetOptionTitleLineHeight(lineHeight int) { 248 if c.JsContentOptions == nil { 249 c.JsContentOptions = new(Options) 250 } 251 if c.JsContentOptions.Title == nil { 252 c.JsContentOptions.Title = new(OptionTitle) 253 } 254 c.JsContentOptions.Title.LineHeight = lineHeight 255 } 256 257 func (c *Chart) SetOptionTitleText(text string) { 258 if c.JsContentOptions == nil { 259 c.JsContentOptions = new(Options) 260 } 261 if c.JsContentOptions.Title == nil { 262 c.JsContentOptions.Title = new(OptionTitle) 263 } 264 c.JsContentOptions.Title.Text = text 265 } 266 267 func (c *Chart) SetOptionTooltipsEnabled(enabled bool) { 268 if c.JsContentOptions == nil { 269 c.JsContentOptions = new(Options) 270 } 271 if c.JsContentOptions.Tooltips == nil { 272 c.JsContentOptions.Tooltips = new(OptionTooltips) 273 } 274 c.JsContentOptions.Tooltips.Enabled = enabled 275 } 276 277 func (c *Chart) SetOptionTooltipsMode(mode string) { 278 if c.JsContentOptions == nil { 279 c.JsContentOptions = new(Options) 280 } 281 if c.JsContentOptions.Tooltips == nil { 282 c.JsContentOptions.Tooltips = new(OptionTooltips) 283 } 284 c.JsContentOptions.Tooltips.Mode = mode 285 } 286 287 func (c *Chart) SetOptionTooltipsIntersect(intersect bool) { 288 if c.JsContentOptions == nil { 289 c.JsContentOptions = new(Options) 290 } 291 if c.JsContentOptions.Tooltips == nil { 292 c.JsContentOptions.Tooltips = new(OptionTooltips) 293 } 294 c.JsContentOptions.Tooltips.Intersect = intersect 295 } 296 297 func (c *Chart) SetOptionTooltipsPosition(position string) { 298 if c.JsContentOptions == nil { 299 c.JsContentOptions = new(Options) 300 } 301 if c.JsContentOptions.Tooltips == nil { 302 c.JsContentOptions.Tooltips = new(OptionTooltips) 303 } 304 c.JsContentOptions.Tooltips.Position = position 305 } 306 307 func (c *Chart) SetOptionTooltipsBackgroundColor(backgroundColor Color) { 308 if c.JsContentOptions == nil { 309 c.JsContentOptions = new(Options) 310 } 311 if c.JsContentOptions.Tooltips == nil { 312 c.JsContentOptions.Tooltips = new(OptionTooltips) 313 } 314 c.JsContentOptions.Tooltips.BackgroundColor = backgroundColor 315 } 316 317 func (c *Chart) SetOptionTooltipsTitleFontFamily(titleFontFamily string) { 318 if c.JsContentOptions == nil { 319 c.JsContentOptions = new(Options) 320 } 321 if c.JsContentOptions.Tooltips == nil { 322 c.JsContentOptions.Tooltips = new(OptionTooltips) 323 } 324 c.JsContentOptions.Tooltips.TitleFontFamily = titleFontFamily 325 } 326 327 func (c *Chart) SetOptionTooltipsTitleFontSize(titleFontSize int) { 328 if c.JsContentOptions == nil { 329 c.JsContentOptions = new(Options) 330 } 331 if c.JsContentOptions.Tooltips == nil { 332 c.JsContentOptions.Tooltips = new(OptionTooltips) 333 } 334 c.JsContentOptions.Tooltips.TitleFontSize = titleFontSize 335 } 336 337 func (c *Chart) SetOptionTooltipsTitleFontStyle(titleFontStyle string) { 338 if c.JsContentOptions == nil { 339 c.JsContentOptions = new(Options) 340 } 341 if c.JsContentOptions.Tooltips == nil { 342 c.JsContentOptions.Tooltips = new(OptionTooltips) 343 } 344 c.JsContentOptions.Tooltips.TitleFontStyle = titleFontStyle 345 } 346 347 func (c *Chart) SetOptionTooltipsTitleFontColor(titleFontColor Color) { 348 if c.JsContentOptions == nil { 349 c.JsContentOptions = new(Options) 350 } 351 if c.JsContentOptions.Tooltips == nil { 352 c.JsContentOptions.Tooltips = new(OptionTooltips) 353 } 354 c.JsContentOptions.Tooltips.TitleFontColor = titleFontColor 355 } 356 357 func (c *Chart) SetOptionTooltipsTitleAlign(titleAlign string) { 358 if c.JsContentOptions == nil { 359 c.JsContentOptions = new(Options) 360 } 361 if c.JsContentOptions.Tooltips == nil { 362 c.JsContentOptions.Tooltips = new(OptionTooltips) 363 } 364 c.JsContentOptions.Tooltips.TitleAlign = titleAlign 365 } 366 367 func (c *Chart) SetOptionTooltipsTitleSpacing(titleSpacing int) { 368 if c.JsContentOptions == nil { 369 c.JsContentOptions = new(Options) 370 } 371 if c.JsContentOptions.Tooltips == nil { 372 c.JsContentOptions.Tooltips = new(OptionTooltips) 373 } 374 c.JsContentOptions.Tooltips.TitleSpacing = titleSpacing 375 } 376 377 func (c *Chart) SetOptionTooltipsTitleMarginBottom(titleMarginBottom int) { 378 if c.JsContentOptions == nil { 379 c.JsContentOptions = new(Options) 380 } 381 if c.JsContentOptions.Tooltips == nil { 382 c.JsContentOptions.Tooltips = new(OptionTooltips) 383 } 384 c.JsContentOptions.Tooltips.TitleMarginBottom = titleMarginBottom 385 } 386 387 func (c *Chart) SetOptionTooltipsBodyFontFamily(bodyFontFamily string) { 388 if c.JsContentOptions == nil { 389 c.JsContentOptions = new(Options) 390 } 391 if c.JsContentOptions.Tooltips == nil { 392 c.JsContentOptions.Tooltips = new(OptionTooltips) 393 } 394 c.JsContentOptions.Tooltips.BodyFontFamily = bodyFontFamily 395 } 396 397 func (c *Chart) SetOptionTooltipsBodyFontSize(bodyFontSize int) { 398 if c.JsContentOptions == nil { 399 c.JsContentOptions = new(Options) 400 } 401 if c.JsContentOptions.Tooltips == nil { 402 c.JsContentOptions.Tooltips = new(OptionTooltips) 403 } 404 c.JsContentOptions.Tooltips.BodyFontSize = bodyFontSize 405 } 406 407 func (c *Chart) SetOptionTooltipsBodyFontStyle(bodyFontStyle string) { 408 if c.JsContentOptions == nil { 409 c.JsContentOptions = new(Options) 410 } 411 if c.JsContentOptions.Tooltips == nil { 412 c.JsContentOptions.Tooltips = new(OptionTooltips) 413 } 414 c.JsContentOptions.Tooltips.BodyFontStyle = bodyFontStyle 415 } 416 417 func (c *Chart) SetOptionTooltipsBodyFontColor(bodyFontColor Color) { 418 if c.JsContentOptions == nil { 419 c.JsContentOptions = new(Options) 420 } 421 if c.JsContentOptions.Tooltips == nil { 422 c.JsContentOptions.Tooltips = new(OptionTooltips) 423 } 424 c.JsContentOptions.Tooltips.BodyFontColor = bodyFontColor 425 } 426 427 func (c *Chart) SetOptionTooltipsBodyAlign(bodyAlign string) { 428 if c.JsContentOptions == nil { 429 c.JsContentOptions = new(Options) 430 } 431 if c.JsContentOptions.Tooltips == nil { 432 c.JsContentOptions.Tooltips = new(OptionTooltips) 433 } 434 c.JsContentOptions.Tooltips.BodyAlign = bodyAlign 435 } 436 437 func (c *Chart) SetOptionTooltipsBodySpacing(bodySpacing int) { 438 if c.JsContentOptions == nil { 439 c.JsContentOptions = new(Options) 440 } 441 if c.JsContentOptions.Tooltips == nil { 442 c.JsContentOptions.Tooltips = new(OptionTooltips) 443 } 444 c.JsContentOptions.Tooltips.BodySpacing = bodySpacing 445 } 446 447 func (c *Chart) SetOptionTooltipsFooterFontFamily(footerFontFamily string) { 448 if c.JsContentOptions == nil { 449 c.JsContentOptions = new(Options) 450 } 451 if c.JsContentOptions.Tooltips == nil { 452 c.JsContentOptions.Tooltips = new(OptionTooltips) 453 } 454 c.JsContentOptions.Tooltips.FooterFontFamily = footerFontFamily 455 } 456 457 func (c *Chart) SetOptionTooltipsFooterFontSize(footerFontSize int) { 458 if c.JsContentOptions == nil { 459 c.JsContentOptions = new(Options) 460 } 461 if c.JsContentOptions.Tooltips == nil { 462 c.JsContentOptions.Tooltips = new(OptionTooltips) 463 } 464 c.JsContentOptions.Tooltips.FooterFontSize = footerFontSize 465 } 466 467 func (c *Chart) SetOptionTooltipsFooterFontStyle(footerFontStyle string) { 468 if c.JsContentOptions == nil { 469 c.JsContentOptions = new(Options) 470 } 471 if c.JsContentOptions.Tooltips == nil { 472 c.JsContentOptions.Tooltips = new(OptionTooltips) 473 } 474 c.JsContentOptions.Tooltips.FooterFontStyle = footerFontStyle 475 } 476 477 func (c *Chart) SetOptionTooltipsFooterFontColor(footerFontColor Color) { 478 if c.JsContentOptions == nil { 479 c.JsContentOptions = new(Options) 480 } 481 if c.JsContentOptions.Tooltips == nil { 482 c.JsContentOptions.Tooltips = new(OptionTooltips) 483 } 484 c.JsContentOptions.Tooltips.FooterFontColor = footerFontColor 485 } 486 487 func (c *Chart) SetOptionTooltipsFooterAlign(footerAlign string) { 488 if c.JsContentOptions == nil { 489 c.JsContentOptions = new(Options) 490 } 491 if c.JsContentOptions.Tooltips == nil { 492 c.JsContentOptions.Tooltips = new(OptionTooltips) 493 } 494 c.JsContentOptions.Tooltips.FooterAlign = footerAlign 495 } 496 497 func (c *Chart) SetOptionTooltipsFooterSpacing(footerSpacing int) { 498 if c.JsContentOptions == nil { 499 c.JsContentOptions = new(Options) 500 } 501 if c.JsContentOptions.Tooltips == nil { 502 c.JsContentOptions.Tooltips = new(OptionTooltips) 503 } 504 c.JsContentOptions.Tooltips.FooterSpacing = footerSpacing 505 } 506 507 func (c *Chart) SetOptionTooltipsFooterMarginTop(footerMarginTop int) { 508 if c.JsContentOptions == nil { 509 c.JsContentOptions = new(Options) 510 } 511 if c.JsContentOptions.Tooltips == nil { 512 c.JsContentOptions.Tooltips = new(OptionTooltips) 513 } 514 c.JsContentOptions.Tooltips.FooterMarginTop = footerMarginTop 515 } 516 517 func (c *Chart) SetOptionTooltipsXPadding(xPadding int) { 518 if c.JsContentOptions == nil { 519 c.JsContentOptions = new(Options) 520 } 521 if c.JsContentOptions.Tooltips == nil { 522 c.JsContentOptions.Tooltips = new(OptionTooltips) 523 } 524 c.JsContentOptions.Tooltips.XPadding = xPadding 525 } 526 527 func (c *Chart) SetOptionTooltipsYPadding(yPadding int) { 528 if c.JsContentOptions == nil { 529 c.JsContentOptions = new(Options) 530 } 531 if c.JsContentOptions.Tooltips == nil { 532 c.JsContentOptions.Tooltips = new(OptionTooltips) 533 } 534 c.JsContentOptions.Tooltips.YPadding = yPadding 535 } 536 537 func (c *Chart) SetOptionTooltipsCaretPadding(caretPadding int) { 538 if c.JsContentOptions == nil { 539 c.JsContentOptions = new(Options) 540 } 541 if c.JsContentOptions.Tooltips == nil { 542 c.JsContentOptions.Tooltips = new(OptionTooltips) 543 } 544 c.JsContentOptions.Tooltips.CaretPadding = caretPadding 545 } 546 547 func (c *Chart) SetOptionTooltipsCaretSize(caretSize int) { 548 if c.JsContentOptions == nil { 549 c.JsContentOptions = new(Options) 550 } 551 if c.JsContentOptions.Tooltips == nil { 552 c.JsContentOptions.Tooltips = new(OptionTooltips) 553 } 554 c.JsContentOptions.Tooltips.CaretSize = caretSize 555 } 556 557 func (c *Chart) SetOptionTooltipsCornerRadius(cornerRadius int) { 558 if c.JsContentOptions == nil { 559 c.JsContentOptions = new(Options) 560 } 561 if c.JsContentOptions.Tooltips == nil { 562 c.JsContentOptions.Tooltips = new(OptionTooltips) 563 } 564 c.JsContentOptions.Tooltips.CornerRadius = cornerRadius 565 } 566 567 func (c *Chart) SetOptionTooltipsMultiKeyBackground(multiKeyBackground Color) { 568 if c.JsContentOptions == nil { 569 c.JsContentOptions = new(Options) 570 } 571 if c.JsContentOptions.Tooltips == nil { 572 c.JsContentOptions.Tooltips = new(OptionTooltips) 573 } 574 c.JsContentOptions.Tooltips.MultiKeyBackground = multiKeyBackground 575 } 576 577 func (c *Chart) SetOptionTooltipsDisplayColors(displayColors bool) { 578 if c.JsContentOptions == nil { 579 c.JsContentOptions = new(Options) 580 } 581 if c.JsContentOptions.Tooltips == nil { 582 c.JsContentOptions.Tooltips = new(OptionTooltips) 583 } 584 c.JsContentOptions.Tooltips.DisplayColors = displayColors 585 } 586 587 func (c *Chart) SetOptionTooltipsBorderColor(borderColor Color) { 588 if c.JsContentOptions == nil { 589 c.JsContentOptions = new(Options) 590 } 591 if c.JsContentOptions.Tooltips == nil { 592 c.JsContentOptions.Tooltips = new(OptionTooltips) 593 } 594 c.JsContentOptions.Tooltips.BorderColor = borderColor 595 } 596 597 func (c *Chart) SetOptionTooltipsBorderWidth(borderWidth int) { 598 if c.JsContentOptions == nil { 599 c.JsContentOptions = new(Options) 600 } 601 if c.JsContentOptions.Tooltips == nil { 602 c.JsContentOptions.Tooltips = new(OptionTooltips) 603 } 604 c.JsContentOptions.Tooltips.BorderWidth = borderWidth 605 } 606 607 func (c *Chart) SetOptionTooltipsRtl(rtl bool) { 608 if c.JsContentOptions == nil { 609 c.JsContentOptions = new(Options) 610 } 611 if c.JsContentOptions.Tooltips == nil { 612 c.JsContentOptions.Tooltips = new(OptionTooltips) 613 } 614 c.JsContentOptions.Tooltips.Rtl = rtl 615 } 616 617 func (c *Chart) SetOptionTooltipsTextDirection(textDirection string) { 618 if c.JsContentOptions == nil { 619 c.JsContentOptions = new(Options) 620 } 621 if c.JsContentOptions.Tooltips == nil { 622 c.JsContentOptions.Tooltips = new(OptionTooltips) 623 } 624 c.JsContentOptions.Tooltips.TextDirection = textDirection 625 } 626 627 func (c *Chart) SetOptionElementPoint(point *OptionElementPoint) { 628 if c.JsContentOptions == nil { 629 c.JsContentOptions = new(Options) 630 } 631 if c.JsContentOptions.Elements == nil { 632 c.JsContentOptions.Elements = new(OptionElement) 633 } 634 c.JsContentOptions.Elements.Point = point 635 } 636 637 func (c *Chart) SetOptionElementLine(line *OptionElementLine) { 638 if c.JsContentOptions == nil { 639 c.JsContentOptions = new(Options) 640 } 641 if c.JsContentOptions.Elements == nil { 642 c.JsContentOptions.Elements = new(OptionElement) 643 } 644 c.JsContentOptions.Elements.Line = line 645 } 646 647 func (c *Chart) SetOptionElementArc(arc *OptionElementArc) { 648 if c.JsContentOptions == nil { 649 c.JsContentOptions = new(Options) 650 } 651 if c.JsContentOptions.Elements == nil { 652 c.JsContentOptions.Elements = new(OptionElement) 653 } 654 c.JsContentOptions.Elements.Arc = arc 655 } 656 657 func (c *Chart) SetOptionElementRectangle(rectangle *OptionElementRectangle) { 658 if c.JsContentOptions.Elements == nil { 659 c.JsContentOptions.Elements = new(OptionElement) 660 } 661 c.JsContentOptions.Elements.Rectangle = rectangle 662 } 663 664 type JsContent struct { 665 Type string `json:"type,omitempty"` 666 Options *Options `json:"options,omitempty"` 667 } 668 669 type OptionAnimation struct { 670 Duration int `json:"duration,omitempty"` 671 Easing string `json:"easing,omitempty"` 672 } 673 674 type OptionLayout struct { 675 Padding struct { 676 Left int `json:"left,omitempty"` 677 Right int `json:"right,omitempty"` 678 Top int `json:"top,omitempty"` 679 Bottom int `json:"bottom,omitempty"` 680 } `json:"padding,omitempty"` 681 } 682 683 type OptionLegend struct { 684 Display bool `json:"display,omitempty"` 685 Position string `json:"position,omitempty"` 686 Align string `json:"align,omitempty"` 687 FullWidth bool `json:"full_width,omitempty"` 688 Reverse bool `json:"reverse,omitempty"` 689 Rtl bool `json:"rtl,omitempty"` 690 TextDirection string `json:"text_direction,omitempty"` 691 Labels *OptionLegendLabel `json:"labels,omitempty"` 692 } 693 694 type OptionLegendLabel struct { 695 BoxWidth int `json:"box_width,omitempty"` 696 FontSize int `json:"fontSize,omitempty"` 697 FontStyle string `json:"fontStyle,omitempty"` 698 FontColor Color `json:"fontColor,omitempty"` 699 FontFamily string `json:"fontFamily,omitempty"` 700 Padding int `json:"padding,omitempty"` 701 UsePointStyle bool `json:"usePointStyle,omitempty"` 702 } 703 704 type OptionTitle struct { 705 Display bool `json:"display,omitempty"` 706 Position string `json:"position,omitempty"` 707 FontSize int `json:"fontSize,omitempty"` 708 FontFamily string `json:"fontFamily,omitempty"` 709 FontColor Color `json:"fontColor,omitempty"` 710 FontStyle string `json:"fontStyle,omitempty"` 711 Padding int `json:"padding,omitempty"` 712 LineHeight int `json:"lineHeight,omitempty"` 713 Text string `json:"text,omitempty"` 714 } 715 716 type OptionTooltips struct { 717 Enabled bool `json:"enabled,omitempty"` 718 Mode string `json:"mode,omitempty"` 719 Intersect bool `json:"intersect,omitempty"` 720 Position string `json:"position,omitempty"` 721 BackgroundColor Color `json:"backgroundColor,omitempty"` 722 TitleFontFamily string `json:"titleFontFamily,omitempty"` 723 TitleFontSize int `json:"titleFontSize,omitempty"` 724 TitleFontStyle string `json:"titleFontStyle,omitempty"` 725 TitleFontColor Color `json:"titleFontColor,omitempty"` 726 TitleAlign string `json:"titleAlign,omitempty"` 727 TitleSpacing int `json:"titleSpacing,omitempty"` 728 TitleMarginBottom int `json:"titleMarginBottom,omitempty"` 729 BodyFontFamily string `json:"bodyFontFamily,omitempty"` 730 BodyFontSize int `json:"bodyFontSize,omitempty"` 731 BodyFontStyle string `json:"bodyFontStyle,omitempty"` 732 BodyFontColor Color `json:"bodyFontColor,omitempty"` 733 BodyAlign string `json:"bodyAlign,omitempty"` 734 BodySpacing int `json:"bodySpacing,omitempty"` 735 FooterFontFamily string `json:"footerFontFamily,omitempty"` 736 FooterFontSize int `json:"footerFontSize,omitempty"` 737 FooterFontStyle string `json:"footerFontStyle,omitempty"` 738 FooterFontColor Color `json:"footerFontColor,omitempty"` 739 FooterAlign string `json:"footerAlign,omitempty"` 740 FooterSpacing int `json:"footerSpacing,omitempty"` 741 FooterMarginTop int `json:"footerMarginTop,omitempty"` 742 XPadding int `json:"xPadding,omitempty"` 743 YPadding int `json:"yPadding,omitempty"` 744 CaretPadding int `json:"caretPadding,omitempty"` 745 CaretSize int `json:"caretSize,omitempty"` 746 CornerRadius int `json:"cornerRadius,omitempty"` 747 MultiKeyBackground Color `json:"multiKeyBackground,omitempty"` 748 DisplayColors bool `json:"displayColors,omitempty"` 749 BorderColor Color `json:"borderColor,omitempty"` 750 BorderWidth int `json:"borderWidth,omitempty"` 751 Rtl bool `json:"rtl,omitempty"` 752 TextDirection string `json:"textDirection,omitempty"` 753 } 754 755 type OptionElement struct { 756 Point *OptionElementPoint `json:"point,omitempty"` 757 Line *OptionElementLine `json:"line,omitempty"` 758 Rectangle *OptionElementRectangle `json:"rectangle,omitempty"` 759 Arc *OptionElementArc `json:"arc,omitempty"` 760 } 761 762 type OptionElementPoint struct { 763 Radius int `json:"radius,omitempty"` 764 PointStyle string `json:"pointStyle,omitempty"` 765 Rotation int `json:"rotation,omitempty"` 766 BackgroundColor Color `json:"backgroundColor,omitempty"` 767 BorderWidth int `json:"borderWidth,omitempty"` 768 BorderColor Color `json:"borderColor,omitempty"` 769 HitRadius int `json:"hitRadius,omitempty"` 770 HoverRadius int `json:"hoverRadius,omitempty"` 771 HoverBorderWidth int `json:"hoverBorderWidth,omitempty"` 772 } 773 774 type OptionElementLine struct { 775 Tension int `json:"tension,omitempty"` 776 BackgroundColor Color `json:"background_color,omitempty"` 777 BorderWidth int `json:"border_width,omitempty"` 778 BorderColor Color `json:"border_color,omitempty"` 779 BorderCapStyle string `json:"border_cap_style,omitempty"` 780 BorderDash int `json:"border_dash,omitempty"` 781 BorderDashOffset int `json:"border_dash_offset,omitempty"` 782 BorderJoinStyle string `json:"border_join_style,omitempty"` 783 CapBezierPoints bool `json:"cap_bezier_points,omitempty"` 784 CubicInterpolationMode string `json:"cubic_interpolation_mode,omitempty"` 785 Fill bool `json:"fill,omitempty"` 786 Stepped bool `json:"stepped,omitempty"` 787 } 788 789 type OptionElementRectangle struct { 790 BackgroundColor Color `json:"backgroundColor,omitempty"` 791 BorderWidth int `json:"borderWidth,omitempty"` 792 BorderColor Color `json:"borderColor,omitempty"` 793 BorderSkipped string `json:"borderSkipped,omitempty"` 794 } 795 796 type OptionElementArc struct { 797 Angle int `json:"angle,omitempty"` 798 BackgroundColor Color `json:"backgroundColor,omitempty"` 799 BorderAlign string `json:"borderAlign,omitempty"` 800 BorderColor Color `json:"borderColor,omitempty"` 801 BorderWidth int `json:"borderWidth,omitempty"` 802 } 803 804 type Options struct { 805 Animation *OptionAnimation `json:"animation,omitempty"` 806 Layout *OptionLayout `json:"layout,omitempty"` 807 Legend *OptionLegend `json:"legend,omitempty"` 808 Title *OptionTitle `json:"title,omitempty"` 809 Tooltips *OptionTooltips `json:"tooltips,omitempty"` 810 Elements *OptionElement `json:"elements,omitempty"` 811 } 812 813 type Attributes struct { 814 Labels []string `json:"labels,omitempty"` 815 } 816 817 type DataSets []DataSet 818 819 type DataSet struct { 820 Label string `json:"label,omitempty"` 821 Data []float64 `json:"data,omitempty"` 822 Type string `json:"type,omitempty"` 823 } 824 825 type Color string 826 827 func NewChart() *Chart { 828 return &Chart{ 829 BaseComponent: &template2.BaseComponent{ 830 Name: "chartjs", 831 HTMLData: List["chartjs"], 832 }, 833 } 834 } 835 836 func (c *Chart) GetAssetList() []string { return AssetsList } 837 func (c *Chart) GetAsset(name string) ([]byte, error) { return Asset(name[1:]) } 838 func (c *Chart) GetContent() template.HTML { return c.GetContentWithData(c) }