{
  "mixins": [
    "composables/private.useCellWidth",
    "composables/private.useCheckChange",
    "composables/private.useMove",
    "composables/private.useColumn",
    "composables/private.useCommon",
    "composables/private.useInterval",
    "composables/private.useMaxDays",
    "composables/private.useTimes",
    "composables/private.useNavigation"
  ],
  "meta": {
    "docsUrl": "https://qcalendar.netlify.app/developing/qcalendar-agenda"
  },
  "props": {},
  "events": {},
  "methods": {
    "timeStartPos": {
      "desc": "Calculates the starting y position of the passed in time",
      "params": {
        "time": {
          "type": "String",
          "desc": "The time for which a position is needed in 24-hour format (HH:mm)",
          "examples": [
            "'09:00'"
          ]
        },
        "clamp": {
          "type": "Boolean",
          "desc": "Clamp negative values to 0",
          "default": "true"
        }
      },
      "returns": {
        "type": "Number",
        "desc": "The absolute y starting position, but `false` on invalid time parameter",
        "examples": [
          "120",
          "482"
        ]
      }
    },
    "timeDurationHeight": {
      "desc": "Given a duration (in minutes), will return the css height value",
      "params": {
        "duration": {
          "type": [
            "Number",
            "String"
          ],
          "desc": "The number of minutes for the event to calculate it's height",
          "examples": [
            "'300'",
            "900"
          ]
        }
      },
      "returns": {
        "type": "Number",
        "desc": "The height (in pixels) to be used for the event",
        "examples": [
          "80",
          "120"
        ]
      }
    },
    "scrollToTime": {
      "desc": "When on an interval view, scroll to the passed in time (y position)",
      "returns": {
        "type": "Boolean",
        "desc": "If the procedure was successful or not"
      },
      "params": {
        "time": {
          "type": "String",
          "desc": "The time in which to scoll to. If the time is already visible on the viewport, this function will have no affect.",
          "required": true,
          "examples": [
            "'09:00'"
          ]
        },
        "duration": {
          "type": "Number",
          "desc": "The amount of time in milliseconds to do the scroll",
          "examples": [
            "200"
          ]
        }
      }
    }
  },
  "slots": {
    "head-column": {
      "desc": ""
    },
    "head-column-label": {
      "desc": ""
    },
    "head-days-events": {
      "desc": "For multi-day events",
      "scope": {
        "data": {
          "desc": "The bundled data",
          "type": "Object",
          "definition": {
            "scope": {
              "desc": "The scope object",
              "type": "Object",
              "definition": {
                "days": {
                  "type": "Array",
                  "desc": "An array of Timestamp objects",
                  "__exemption": [
                    "examples"
                  ]
                },
                "ref": {
                  "desc": "If this slot is used, put the ref on your container so the calendar can determine automatic height, otherwise, your events will bleed into the parts below it",
                  "type": "String",
                  "__exemption": [
                    "examples"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "head-day": {
      "desc": "Replaces the complete internal day header",
      "scope": {
        "timestamp": {
          "type": "Timestamp",
          "tsType": "Timestamp",
          "desc": "Timestamp object",
          "__exemption": [
            "examples"
          ]
        },
        "index": {
          "type": "Number",
          "desc": "The index of the iteration",
          "__exemption": [
            "examples"
          ]
        },
        "miniMode": {
          "type": "Boolean",
          "desc": "If currently in mini-mode (applied to Month calendars only)",
          "__exemption": [
            "examples"
          ]
        }
      }
    },
    "head-date": {
      "desc": "The slot associated with the head date. Used to append to the head day",
      "scope": {
        "data": {
          "desc": "The bundled data",
          "type": "Object",
          "definition": {
            "scope": {
              "desc": "The scope object",
              "type": "Object",
              "definition": {
                "timestamp": {
                  "type": "Object",
                  "desc": "A timestamp object of the day",
                  "__exemption": [
                    "examples"
                  ]
                },
                "activeDate": {
                  "type": "Boolean",
                  "desc": "true if this is the active date",
                  "__exemption": [
                    "examples"
                  ]
                },
                "columnIndex": {
                  "type": "Number",
                  "desc": "The column index if `column-count` is not undefined",
                  "__exemption": [
                    "examples"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "head-day-event": {
      "desc": "The slot associated with a head day event. Used to append to the head day",
      "scope": {
        "data": {
          "desc": "The bundled data",
          "type": "Object",
          "definition": {
            "scope": {
              "desc": "The scope object",
              "type": "Object",
              "definition": {
                "timestamp": {
                  "type": "Object",
                  "desc": "A timestamp object of the day",
                  "__exemption": [
                    "examples"
                  ]
                },
                "activeDate": {
                  "type": "Boolean",
                  "desc": "true if this is the active date",
                  "__exemption": [
                    "examples"
                  ]
                },
                "columnIndex": {
                  "type": "Number",
                  "desc": "The column index if `column-count` is not undefined",
                  "__exemption": [
                    "examples"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "head-weekday-label": {
      "desc": "The slot associated with the header weekday label",
      "scope": {
        "data": {
          "desc": "The bundled data",
          "type": "Object",
          "definition": {
            "scope": {
              "desc": "The scope object",
              "type": "Object",
              "definition": {
                "timestamp": {
                  "type": "Object",
                  "desc": "A timestamp object of the day",
                  "__exemption": [
                    "examples"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "head-day-label": {
      "desc": "Use to replace the head day label",
      "scope": {
        "dayLabel": {
          "type": "String",
          "desc": "The string of the dayLabel",
          "__exemption": [
            "examples"
          ]
        },
        "timestamp": {
          "type": "Timestamp",
          "tsType": "Timestamp",
          "desc": "A timestamp for the day of the slotted content",
          "__exemption": [
            "examples"
          ]
        },
        "miniMode": {
          "type": "Boolean",
          "desc": "true if currently in mini-mode. Handle if you have set mini-mode to `auto`"
        }
      }
    },
    "head-day-button": {
      "desc": "The slot associated with the day button. Replaces the whole button",
      "scope": {
        "data": {
          "desc": "The bundled data",
          "type": "Object",
          "definition": {
            "scope": {
              "desc": "The scope object",
              "type": "Object",
              "definition": {
                "timestamp": {
                  "type": "Object",
                  "desc": "A timestamp object of the day",
                  "__exemption": [
                    "examples"
                  ]
                },
                "dayLabel": {
                  "type": "String",
                  "desc": "The string value that would have been used for the day label",
                  "__exemption": [
                    "examples"
                  ]
                },
                "activeDate": {
                  "type": "Boolean",
                  "desc": "true if this is the active date",
                  "__exemption": [
                    "examples"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "day-container": {
      "desc": "The container is everything below the headers, including the intervals",
      "scope": {
        "days": {
          "type": "Array",
          "tsType": "TimestampArray",
          "desc": "An array of timestamp objects that are to be displayed in the container. This slot does not replace the container, but instead, allows you to add to it. Example: use css `position: absolute` to create a `current time` bar.",
          "__exemption": [
            "examples"
          ]
        }
      }
    },
    "column": {
      "desc": ""
    },
    "day": {
      "desc": "Use to add items to the `day` rendering"
    }
  }
}