0.0.8 • Published 1 year ago

magica-panel v0.0.8

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

MagicaPanel

MagicaPanel は MDI ( Multiple Document Interface ) ライクに HTML を複数の ウィンドウ領域に分割して表示できるUIライブラリです。

サンプル

使用方法

MagicaPanelをインストールするコマンドを以下に記... そうと思いましたが、npmpublishしたら書きます。

ライブラリ利用方法

MagicaPanelが提供する各クラスは以下のコンストラクタ引数を取ります。

  1. 自身を表示するHTMLElement(BaseContainer のみ)
  2. オプション
  3. (以降) 自身の中に表示する子要素

また、各ウィンドウやその整列は一番上の親にBaseContainerクラスのインスタンスが配置される構造にならなければなりません。

以下サンプル

    // 一番親は`BaseContainer`である必要があります。
    new MagicaPanel.BaseContainer(
        document.body,
        {overflowX: 'hidden', overflowY: 'hidden'},
        // `StackContainer`には子アイテムを整列表示することが出来ます。
        new MagicaPanel.StackContainer(
            undefined, // オプションを与えなかった場合、各クラスの既定が採用されます。
            // `Panel`は`StackContainer`の子要素として整列表示されます。
            // `Panel`が唯一純粋なHTMLElementを子要素に持つことが出来ます。
            //     (`StackContainer`を持つことも出来ます。)
            new MagicaPanel.Panel(
                {title: 'stack-sample!'},
                document.createElement('div')
            ),
            new MagicaPanel.Panel(
                {title: 'stack-sample!'},
                document.createElement('div')
            )
        ),
        // `Panel`は`StackContainer`に含まれないため、ウィンドウとしてフロー表示されます。
        new MagicaPanel.Panel(
            {title: 'window-sample!'},
            document.createElement('div')
        )
    );

ドキュメント

クラス

  • Panel: ウィンドウとしての表示やスタックコンテナの要素として利用できます。子要素にはHTMLElementまたはStackContainerを1つのみ格納できます。
    • コンストラクタ引数
      • opts: PanelOptions
      • ...children: HTMLElement | StackContainer
  • StackContainer: Panelを縦または横に整列する枠として利用できます。子要素にはPanelまたはStackContainerを複数格納できます。
    • コンストラクタ引数
      • opts: StackContainerOptions
      • ...children: [Panel | StackContainer]
  • BaseContainer: PanelStackContainerを格納する一番親として1つのみ存在します。子要素には複数のPanelと、1つのみStackContainerできます。
    • コンストラクタ引数
      • opts: BaseContainerOptions
      • ...children: [StackContainer?, ...Panel]

オプション

PanelOptions

プロパティ名説明
type'panel'パネル種別
minSizeCoordinationOptions最小ウィンドウ内コンテンツサイズ(指定があれば)
maxSizeCoordinationOptions最大ウィンドウ内コンテンツサイズ(指定があれば)
positionCoordinationOptions初期位置(左上)
defaultSizeCoordinationOptions初期サイズ(320x240, タイトルバー、ウィンドウ枠線含まず)
titlestring \| HTMLElementタイトル
closeablebooleanバツボタンを出現させる
minimableboolean最小化ボタンを出現させる
maximumResizeableOptions最大化の挙動
modal'modal' \| 'modaless' \| 'topMost'モーダル表示状態
overflowX'scroll' \| 'resize' \| 'hidden'内容コンテンツがX軸に溢れた場合
overflowY'scroll' \| 'resize' \| 'hidden'内容コンテンツがY軸に溢れた場合
additionalClassNamestringパネルに追加で付けるクラス名
attributesany[]任意に指定できる属性

CoordinationOptions

プロパティ名説明
xnumberX方向
ynumberY方向

ResizeableOptions

プロパティ名説明
enablebooleanユーザ操作の有効・無効
showTitlebarboolean適用時にタイトルバーを表示するか

StackContainerOptions

プロパティ名説明
type'stack'パネル種別
direction'vertical' \| 'horizontal'分割方向
templatestring[]コレクション各要素の初期サイズ
reproportionablebooleanコレクションの比率を操作できるか
dockablebooleanコレクションの脱着操作ができるか(ユーザ操作から)
separatorWidthnumber分割境界線の幅(1~)
additionalClassNamestringパネルに追加で付けるクラス名
panelAddAreastring \| HTMLElementスタック内が空のときに表示されるパネル追加アイコン
attributesany[]任意に指定できる属性
adjustSizeboolean自動リサイズするか

BaseContainerOptions

プロパティ名説明
type'base'パネル種別
overflowX'scroll' \| 'hidden'内容コンテンツがX軸に溢れた場合
overflowY'scroll' \| 'hidden'内容コンテンツがY軸に溢れた場合
additionalClassNamesstring[]パネルに追加で付けるクラス名
0.0.8

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago