vue: inheritPoint(WIP)
This commit is contained in:
@@ -0,0 +1 @@
|
||||
Deny from all
|
||||
@@ -0,0 +1,26 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@import url('https://fonts.googleapis.com/css2?family=Nanum+Gothic:wght@400;700&display=swap');
|
||||
@import '../../d_shared/common.css';
|
||||
|
||||
html {
|
||||
background: black;
|
||||
max-height: 1000000px;
|
||||
font-family: 'Nanum Gothic', sans-serif;
|
||||
color: white;
|
||||
}
|
||||
|
||||
table.tb_layout {
|
||||
border-collapse: collapse;
|
||||
padding: 0px;
|
||||
font-size: 13px;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.tb_layout td,
|
||||
.tb_layout th {
|
||||
border: solid 1px gray;
|
||||
padding: 0px;
|
||||
word-break: break-all;
|
||||
;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
Deny from all
|
||||
Vendored
+663
@@ -0,0 +1,663 @@
|
||||
// Type definitions for Bootstrap 4.6
|
||||
// Project: https://github.com/twbs/bootstrap/, https://getbootstrap.com
|
||||
// Definitions by: denisname <https://github.com/denisname>
|
||||
// Piotr Błażejewicz <https://github.com/peterblazejewicz>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.3
|
||||
|
||||
/// <reference types="jquery"/>
|
||||
|
||||
import * as Popper from "popper.js";
|
||||
|
||||
export as namespace Bootstrap;
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// Some Types and Interfaces
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
export type Placement = "auto" | "top" | "bottom" | "left" | "right";
|
||||
|
||||
export type Trigger = "click" | "hover" | "focus" | "manual" |
|
||||
"click hover" | "click focus" | "hover focus" |
|
||||
"click hover focus";
|
||||
|
||||
export interface Delay {
|
||||
show: number;
|
||||
hide: number;
|
||||
}
|
||||
|
||||
export interface TooltipInstance<T extends TooltipOption> {
|
||||
config: T;
|
||||
element: Element;
|
||||
tip: HTMLElement;
|
||||
}
|
||||
|
||||
export interface OffsetsExtend {
|
||||
popper?: Partial<Popper.Offset> | undefined;
|
||||
reference?: Partial<Popper.Offset> | undefined;
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------------
|
||||
// Options Interfaces
|
||||
// --------------------------------------------------------------------------------------
|
||||
|
||||
export interface CarouselOption {
|
||||
/**
|
||||
* The amount of time to delay between automatically cycling an item. If false, carousel will not automatically cycle.
|
||||
*
|
||||
* @default 5000
|
||||
*/
|
||||
interval?: false | number | undefined;
|
||||
|
||||
/**
|
||||
* Whether the carousel should react to keyboard events.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
keyboard?: boolean | undefined;
|
||||
|
||||
/**
|
||||
* Use to easily control the position of the carousel. It accepts the keywords prev or next, which alters the slide position
|
||||
* relative to its current position. Alternatively, use `data-slide-to` to pass a raw slide index to the carousel.
|
||||
*
|
||||
* @default false
|
||||
*/
|
||||
slide?: "next" | "prev" | false | undefined;
|
||||
|
||||
/**
|
||||
* If set to "hover", pauses the cycling of the carousel on `mouseenter` and resumes the cycling of the carousel on `mouseleave`.
|
||||
* If set to false, hovering over the carousel won't pause it.
|
||||
*
|
||||
* On touch-enabled devices, when set to "hover", cycling will pause on `touchend` (once the user finished interacting with the carousel)
|
||||
* for two intervals, before automatically resuming. Note that this is in addition to the above mouse behavior.
|
||||
*
|
||||
* @default "hover"
|
||||
*/
|
||||
pause?: "hover" | false | undefined;
|
||||
|
||||
/**
|
||||
* Autoplays the carousel after the user manually cycles the first item.
|
||||
* If `carousel`, autoplays the carousel on load.
|
||||
* @default false
|
||||
*/
|
||||
ride?: 'carousel' | boolean | undefined;
|
||||
|
||||
/**
|
||||
* Whether the carousel should cycle continuously or have hard stops.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
wrap?: boolean | undefined;
|
||||
|
||||
/**
|
||||
* Whether the carousel should support left/right swipe interactions on touchscreen devices.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
touch?: boolean | undefined;
|
||||
}
|
||||
|
||||
export interface CollapseOption {
|
||||
/**
|
||||
* If parent is provided, then all collapsible elements under the specified parent will be closed when
|
||||
* this collapsible item is shown. (similar to traditional accordion behavior - this is dependent on the card class).
|
||||
* The attribute has to be set on the target collapsible area.
|
||||
*
|
||||
* @default ""
|
||||
*/
|
||||
parent?: string | JQuery | Element | undefined;
|
||||
|
||||
/**
|
||||
* Toggles the collapsible element on invocation.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
toggle?: boolean | undefined;
|
||||
}
|
||||
|
||||
export interface DropdownOption {
|
||||
/**
|
||||
* Offset of the dropdown relative to its target.
|
||||
* For more information refer to Popper.js's offset docs.
|
||||
*
|
||||
* @default 0
|
||||
*/
|
||||
offset?: number | string | ((this: DropdownOption, offset: OffsetsExtend) => OffsetsExtend) | undefined;
|
||||
|
||||
/**
|
||||
* Allow Dropdown to flip in case of an overlapping on the reference element.
|
||||
* For more information refer to Popper.js's flip docs.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
flip?: boolean | undefined;
|
||||
|
||||
/**
|
||||
* Overflow constraint boundary of the dropdown menu.
|
||||
* Accepts the values of 'viewport', 'window', 'scrollParent', or an HTMLElement reference (JavaScript only).
|
||||
* For more information refer to Popper.js's preventOverflow docs.
|
||||
*
|
||||
* @default "scrollParent"
|
||||
*/
|
||||
boundary?: Popper.Boundary | HTMLElement | undefined;
|
||||
|
||||
/**
|
||||
* Reference element of the dropdown menu. Accepts the values of 'toggle', 'parent', or an HTMLElement reference.
|
||||
* For more information refer to Popper.js's referenceObject docs.
|
||||
*
|
||||
* @default "toggle"
|
||||
*/
|
||||
reference?: "toggle" | "parent" | HTMLElement | undefined;
|
||||
|
||||
/**
|
||||
* By default, we use Popper.js for dynamic positioning. Disable this with 'static'.
|
||||
*
|
||||
* @default "dynamic"
|
||||
*/
|
||||
display?: "dynamic" | "static" | undefined;
|
||||
}
|
||||
|
||||
export interface ModalOption {
|
||||
/**
|
||||
* Includes a modal-backdrop element.
|
||||
* Alternatively, specify `static` for a backdrop which doesn't close the modal on click.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
backdrop?: boolean | "static" | undefined;
|
||||
|
||||
/**
|
||||
* Closes the modal when escape key is pressed.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
keyboard?: boolean | undefined;
|
||||
|
||||
/**
|
||||
* Puts the focus on the modal when initialized.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
focus?: boolean | undefined;
|
||||
|
||||
/**
|
||||
* Shows the modal when initialized.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
show?: boolean | undefined;
|
||||
}
|
||||
|
||||
export interface PopoverOption extends TooltipOption {
|
||||
/**
|
||||
* Default content value if `data-content` attribute isn't present.
|
||||
* If a function is given, it will be called with its `this` reference
|
||||
* set to the element that the popover is attached to.
|
||||
*
|
||||
* @default ""
|
||||
*/
|
||||
content?: string | Element | ((this: Element) => string | Element) | undefined;
|
||||
}
|
||||
|
||||
export interface ScrollspyOption {
|
||||
/**
|
||||
* Finds which section the spied element is in:
|
||||
* * `auto` will choose the best method get scroll coordinates.
|
||||
* * `offset` will use jQuery offset method to get scroll coordinates.
|
||||
* * `position` will use jQuery position method to get scroll coordinates.
|
||||
*
|
||||
* @default "auto"
|
||||
*/
|
||||
method?: "auto" | "offset" | "position" | undefined;
|
||||
|
||||
/**
|
||||
* Pixels to offset from top when calculating position of scroll.
|
||||
*
|
||||
* @default 10
|
||||
*/
|
||||
offset?: number | undefined;
|
||||
|
||||
/**
|
||||
* A selector of the parent element or the parent element itself
|
||||
* of any Bootstrap `.nav` or `.list-group` component.
|
||||
*
|
||||
* @default ""
|
||||
*/
|
||||
target?: string | JQuery<Element> | Element | undefined;
|
||||
}
|
||||
|
||||
export interface ToastOption {
|
||||
/**
|
||||
* Apply a CSS fade transition to the toast.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
animation?: boolean | undefined;
|
||||
|
||||
/**
|
||||
* Auto hide the toast.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
autohide?: boolean | undefined;
|
||||
|
||||
/**
|
||||
* Delay hiding the toast in millisecond.
|
||||
*
|
||||
* @default 500
|
||||
*/
|
||||
delay?: number | undefined;
|
||||
}
|
||||
|
||||
export interface TooltipOption {
|
||||
/**
|
||||
* Apply a CSS fade transition to the tooltip or popover.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
animation?: boolean | undefined;
|
||||
|
||||
/**
|
||||
* Appends the tooltip or popover to a specific element. Example: `container: 'body'`.
|
||||
* This option is particularly useful in that it allows you to position the tooltip or popover
|
||||
* in the flow of the document near the triggering element - which will prevent
|
||||
* it from floating away from the triggering element during a window resize.
|
||||
*
|
||||
* @default false
|
||||
*/
|
||||
container?: string | Element | false | undefined;
|
||||
|
||||
/**
|
||||
* Delay showing and hiding the tooltip or popover (ms) - does not apply to manual trigger type.
|
||||
* If a number is supplied, delay is applied to both hide/show.
|
||||
* Object structure is: `delay: { "show": 500, "hide": 100 }`.
|
||||
*
|
||||
* @default 0
|
||||
*/
|
||||
delay?: number | Delay | undefined;
|
||||
|
||||
/**
|
||||
* Allow HTML in the tooltip or popover.
|
||||
* If true, HTML tags will be rendered in the tooltip or popover.
|
||||
* If false, jQuery's text method will be used to insert content into the DOM.
|
||||
* Use text if you're worried about XSS attacks.
|
||||
*
|
||||
* @default false
|
||||
*/
|
||||
html?: boolean | undefined;
|
||||
|
||||
/**
|
||||
* How to position the tooltip or popover - auto | top | bottom | left | right.
|
||||
* When "auto" is specified, it will dynamically reorient the tooltip or popover.
|
||||
*
|
||||
* When a function is used to determine the placement, it is called with
|
||||
* the tooltip or popover DOM node as its first argument and the triggering element DOM node as its second.
|
||||
* The `this` context is set to the tooltip or popover instance.
|
||||
*
|
||||
* @default tooltip: "top", popover: "right"
|
||||
*/
|
||||
placement?: Placement | ((this: TooltipInstance<this>, node: HTMLElement, trigger: Element) => Placement) | undefined;
|
||||
|
||||
/**
|
||||
* If a selector is provided, tooltip or popover objects will be delegated to the specified targets.
|
||||
* In practice, this is used to enable dynamic HTML content to have popovers added.
|
||||
*
|
||||
* @default false
|
||||
*/
|
||||
selector?: string | false | undefined;
|
||||
|
||||
/**
|
||||
* Base HTML to use when creating the tooltip or popover.
|
||||
* The tooltip's (resp., popover's) title will be injected into the `.tooltip-inner` (resp., `.popover-header`).
|
||||
* The `.arrow` will become the tooltip's (resp., popover's) arrow.
|
||||
* The outermost wrapper element should have the `.tooltip` (resp., .popover) class and `role="tooltip"`.
|
||||
*
|
||||
* @default '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>'
|
||||
* @default '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'
|
||||
*/
|
||||
template?: string | undefined;
|
||||
|
||||
/**
|
||||
* Default title value if title attribute isn't present.
|
||||
* If a function is given, it will be called with its `this` reference set to the element
|
||||
* that the tooltip or popover is attached to.
|
||||
*
|
||||
* @default ""
|
||||
*/
|
||||
title?: string | Element | ((this: Element) => string | Element) | undefined;
|
||||
|
||||
/**
|
||||
* How tooltip or popover is triggered - click | hover | focus | manual. You may pass multiple triggers; separate them with a space.
|
||||
* 'manual' indicates that the tooltip will be triggered programmatically; this value cannot be combined with any other trigger.
|
||||
* 'hover' should only be used if alternative methods for conveying the same information for keyboard users is present.
|
||||
*
|
||||
* @default tooltip: "hover focus", popover: "click"
|
||||
*/
|
||||
trigger?: Trigger | undefined;
|
||||
|
||||
/**
|
||||
* Offset of the tooltip or popover relative to its target.
|
||||
* For more information refer to Popper.js's offset docs.
|
||||
*
|
||||
* @default 0
|
||||
*/
|
||||
offset?: number | string | undefined;
|
||||
|
||||
/**
|
||||
* Allow to specify which position Popper will use on fallback.
|
||||
* For more information refer to Popper.js's behavior docs.
|
||||
*
|
||||
* @default "flip"
|
||||
*/
|
||||
fallbackPlacement?: Popper.Behavior | ReadonlyArray<Popper.Behavior> | undefined;
|
||||
|
||||
/**
|
||||
* Add classes to the tooltip when it is shown. Note that these classes will be added in addition to any classes specified in the template.
|
||||
* To add multiple classes, separate them with spaces: 'a b'.
|
||||
* You can also pass a function that should return a single string containing additional class names.
|
||||
* @default ''
|
||||
*/
|
||||
customClass?: string | (() => string) | undefined;
|
||||
|
||||
/**
|
||||
* Overflow constraint boundary of the tooltip or popover.
|
||||
* Accepts the values of 'viewport', 'window', 'scrollParent',
|
||||
* or an HTMLElement reference (JavaScript only).
|
||||
* For more information refer to Popper.js's preventOverflow docs.
|
||||
*
|
||||
* @default "scrollParent"
|
||||
*/
|
||||
boundary?: Popper.Boundary | HTMLElement | undefined;
|
||||
|
||||
/**
|
||||
* Enable or disable the sanitization. If activated 'template', 'content' and 'title' options will be sanitized.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
sanitize?: boolean | undefined;
|
||||
|
||||
/**
|
||||
* Object which contains allowed attributes and tags.
|
||||
*/
|
||||
whiteList?: {[key: string]: string[]} | undefined;
|
||||
|
||||
/**
|
||||
* Here you can supply your own sanitize function. This can be useful if you prefer to use a dedicated library to perform sanitization.
|
||||
*
|
||||
* @default null
|
||||
*/
|
||||
sanitizeFn?: null | ((input: string) => string) | undefined;
|
||||
|
||||
/**
|
||||
* To change Bootstrap's default Popper.js config,
|
||||
* see {@link https://popper.js.org/docs/v1/ Popper.js's configuration}
|
||||
*/
|
||||
// eslint-disable-next-line @typescript-eslint/ban-types
|
||||
popperConfig?: null | object | undefined;
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------------
|
||||
// Events
|
||||
// --------------------------------------------------------------------------------------
|
||||
|
||||
export interface CarouselEventHandler<TElement> extends JQuery.TriggeredEvent<TElement, undefined, HTMLElement, HTMLElement> {
|
||||
/**
|
||||
* The carousel dom element.
|
||||
*/
|
||||
target: HTMLElement; // overridden only for better JsDoc
|
||||
|
||||
/**
|
||||
* The direction in which the carousel is sliding.
|
||||
*/
|
||||
direction: "left" | "right";
|
||||
|
||||
/**
|
||||
* The DOM element that is being slid into place as the active item.
|
||||
*/
|
||||
relatedTarget: HTMLElement;
|
||||
|
||||
/**
|
||||
* The index of the current item.
|
||||
*/
|
||||
from: number;
|
||||
|
||||
/**
|
||||
* The index of the next item.
|
||||
*/
|
||||
to: number;
|
||||
}
|
||||
|
||||
export interface DropdownsEventHandler<TElement> extends JQuery.TriggeredEvent<TElement, undefined, HTMLElement, HTMLElement> {
|
||||
/**
|
||||
* The the dropdown's toggle and the dropdown menu container (the `.dropdown` element).
|
||||
*/
|
||||
target: HTMLElement; // overridden only for better JsDoc
|
||||
|
||||
/**
|
||||
* The toggling anchor element.
|
||||
*/
|
||||
relatedTarget: HTMLElement;
|
||||
}
|
||||
|
||||
export interface ModalEventHandler<TElement> extends JQuery.TriggeredEvent<TElement, undefined, HTMLElement, HTMLElement> {
|
||||
/**
|
||||
* The modal dom element.
|
||||
*/
|
||||
target: HTMLElement; // overridden only for better JsDoc
|
||||
|
||||
/**
|
||||
* For `show.bs.modal` and `shown.bs.modal` is the clicked element, when caused by a _click_.
|
||||
* Otherwise is undefined.
|
||||
*/
|
||||
relatedTarget: HTMLElement | undefined;
|
||||
}
|
||||
|
||||
export interface TapEventHandler<TElement> extends JQuery.TriggeredEvent<TElement, undefined, HTMLElement, HTMLElement> {
|
||||
/**
|
||||
* * For `show.bs.tab` and `shown.bs.tab`, is the newly activated tab.
|
||||
* * For `hide.bs.tab`, is the current active tab.
|
||||
* * For `hidden.bs.tab`, is the previous active tab.
|
||||
*/
|
||||
target: HTMLElement; // overridden only for better JsDoc
|
||||
|
||||
/**
|
||||
* * For `show.bs.tab` and `shown.bs.tab`, is the previous active tab.
|
||||
* * For `hide.bs.tab`, is the new soon-to-be-active tab.
|
||||
* * For `hidden.bs.tab`, is the new active tab.
|
||||
*/
|
||||
relatedTarget: HTMLElement;
|
||||
}
|
||||
|
||||
export type AlertEvent = "close.bs.alert" | "closed.bs.alert";
|
||||
export type CarouselEvent = "slide.bs.carousel" | "slid.bs.carousel";
|
||||
export type CollapseEvent = "show.bs.collapse" | "shown.bs.collapse" | "hide.bs.collapse" | "hidden.bs.collapse";
|
||||
export type DropdownEvent = "show.bs.dropdown" | "shown.bs.dropdown" | "hide.bs.dropdown" | "hidden.bs.dropdown";
|
||||
export type ModalEvent = "show.bs.modal" | "shown.bs.modal" | "hide.bs.modal" | "hidden.bs.modal" | "hidePrevented.bs.modal";
|
||||
export type PopoverEvent = "show.bs.popover" | "shown.bs.popover" | "hide.bs.popover" | "hidden.bs.popover" | "inserted.bs.popover";
|
||||
export type ScrollspyEvent = "activate.bs.scrollspy";
|
||||
export type TapEvent = "show.bs.tab" | "shown.bs.tab" | "hide.bs.tab" | "hidden.bs.tab";
|
||||
export type ToastEvent = "show.bs.toast" | "shown.bs.toast" | "hide.bs.toast" | "hidden.bs.toast";
|
||||
export type TooltipEvent = "show.bs.tooltip" | "shown.bs.tooltip" | "hide.bs.tooltip" | "hidden.bs.tooltip" | "inserted.bs.tooltip";
|
||||
|
||||
// --------------------------------------------------------------------------------------
|
||||
// jQuery
|
||||
// --------------------------------------------------------------------------------------
|
||||
|
||||
declare global {
|
||||
interface JQuery<TElement = HTMLElement> {
|
||||
/**
|
||||
* If no _method_ is specified, makes an alert listen for click events on descendant elements which have the `data-dismiss="alert"` attribute.
|
||||
* (Not necessary when using the data-api's auto-initialization.)
|
||||
* Otherwise, call the method on the alert element:
|
||||
* * `close` – Closes an alert by removing it from the DOM. If the `.fade` and `.show` classes are present on the element, the alert will fade out before it is removed.
|
||||
* * `dispose` – Destroys an element's alert.
|
||||
*/
|
||||
alert(action?: "close" | "dispose"): this;
|
||||
|
||||
/**
|
||||
* Call a method on the button element:
|
||||
* * `toggle` – Toggles push state. Gives the button the appearance that it has been activated.
|
||||
* * `dispose` – Destroys an element's button.
|
||||
*/
|
||||
button(action: "toggle" | "dispose"): this;
|
||||
|
||||
/**
|
||||
* Call a method on the carousel element:
|
||||
* * `cycle` – Cycles through the carousel items from left to right.
|
||||
* * `pause` – Stops the carousel from cycling through items.
|
||||
* * _number_ – Cycles the carousel to a particular frame (0 based, similar to an array).
|
||||
* * `prev` – Cycles to the previous item.
|
||||
* * `next` – Cycles to the next item.
|
||||
* * `dispose` – Destroys an element's carousel.
|
||||
*
|
||||
* Returns to the caller before the target item has been shown (i.e. before the `slid.bs.carousel` event occurs).
|
||||
*/
|
||||
carousel(action: "cycle" | "pause" | number | "prev" | "next" | "dispose"): this;
|
||||
/**
|
||||
* Initializes the carousel and starts cycling through items.
|
||||
*/
|
||||
carousel(options?: CarouselOption): this;
|
||||
|
||||
/**
|
||||
* Call a method on the collapsible element:
|
||||
* * `toggle` – Toggles a collapsible element to shown or hidden.
|
||||
* * `show` – Shows a collapsible element.
|
||||
* * `hide` – Hides a collapsible element.
|
||||
* * `dispose` – Destroys an element's collapse.
|
||||
*
|
||||
* Returns to the caller before the collapsible element has actually been shown or hidden (i.e. before the `shown.bs.collapse` or `hidden.bs.collapse` event occurs).
|
||||
*/
|
||||
collapse(action: "toggle" | "show" | "hide" | "dispose"): this;
|
||||
/**
|
||||
* Activates a content as a collapsible element.
|
||||
*/
|
||||
collapse(options?: CollapseOption): this;
|
||||
|
||||
/**
|
||||
* Call a method on the dropdown element:
|
||||
* * `toggle` – Toggles the dropdown menu of a given navbar or tabbed navigation.
|
||||
* * `show` – Shows the dropdown menu of a given navbar or tabbed navigation.
|
||||
* * `hide` – Hides the dropdown menu of a given navbar or tabbed navigation.
|
||||
* * `update` – Updates the position of an element's dropdown.
|
||||
* * `dispose` – Destroys an element's dropdown.
|
||||
*/
|
||||
dropdown(action: "toggle" | "show" | "hide" | "update" | "dispose"): this;
|
||||
/**
|
||||
* Toggle contextual overlays for displaying lists of links.
|
||||
*
|
||||
* The data-api, `data-toggle="dropdown"` is always required to be present on the dropdown's trigger element.
|
||||
*/
|
||||
dropdown(options?: DropdownOption): this;
|
||||
|
||||
/**
|
||||
* Call a method on the modal element:
|
||||
* * `toggle` – Manually toggles a modal.
|
||||
* * `show` – Manually opens a modal.
|
||||
* * `hide` – Manually hides a modal.
|
||||
* * `handleUpdate` – Manually readjust the modal's position if the height of a modal changes while it is open (i.e. in case a scrollbar appears).
|
||||
* * `dispose` – Destroys an element's modal.
|
||||
*
|
||||
* Returns to the caller before the modal has actually been shown or hidden (i.e. before the `shown.bs.modal` or `hidden.bs.modal` event occurs).
|
||||
*/
|
||||
modal(action: "toggle" | "show" | "hide" | "handleUpdate" | "dispose"): this;
|
||||
/**
|
||||
* Activates a content as a modal.
|
||||
*/
|
||||
modal(options?: ModalOption): this;
|
||||
|
||||
/**
|
||||
* Call a method on the popover element:
|
||||
* * `show` – Reveals an element's popover. Popovers whose both title and content are zero-length are never displayed.
|
||||
* * `hide` – Hides an element's popover.
|
||||
* * `toggle` – Toggles an element's popover.
|
||||
* * `dispose` – Hides and destroys an element's popover.
|
||||
* Popovers that use delegation (which are created using the `selector` option) cannot be individually destroyed on descendant trigger elements.
|
||||
* * `enable` – Gives an element's popover the ability to be shown. Popovers are enabled by default.
|
||||
* * `disable` – Removes the ability for an element's popover to be shown. The popover will only be able to be shown if it is re-enabled.
|
||||
* * `toggleEnabled` – Toggles the ability for an element's popover to be shown or hidden.
|
||||
* * `update` – Updates the position of an element's popover.
|
||||
*
|
||||
* Returns to the caller before the popover has actually been shown or hidden (i.e. before the `shown.bs.popover` or `hidden.bs.popover` event occurs).
|
||||
* This is considered a "manual" triggering of the popover.
|
||||
*/
|
||||
popover(action: "show" | "hide" | "toggle" | "dispose" | "enable" | "disable" | "toggleEnabled" | "update"): this;
|
||||
/**
|
||||
* Initializes popovers for an element collection.
|
||||
*/
|
||||
popover(options?: PopoverOption): this;
|
||||
|
||||
// tslint:disable:jsdoc-format
|
||||
/**
|
||||
* Call a method on the scrollspy element:
|
||||
* * `refresh` – When using scrollspy in conjunction with adding or removing of elements from the DOM, you'll need to call the refresh, see example.
|
||||
* * `dispose` – Destroys an element's scrollspy.
|
||||
*
|
||||
* @example
|
||||
```javascript
|
||||
$('[data-spy="scroll"]').each(function () {
|
||||
var $spy = $(this).scrollspy('refresh')
|
||||
})
|
||||
```
|
||||
*/
|
||||
// tslint:enable:jsdoc-format
|
||||
scrollspy(action: "refresh" | "dispose"): this;
|
||||
/**
|
||||
* Add scrollspy behavior to a topbar navigation.
|
||||
*/
|
||||
scrollspy(options?: ScrollspyOption): this;
|
||||
|
||||
/**
|
||||
* Call a method on the list item or tab element:
|
||||
* * `show` – Selects the given list item or tab and shows its associated pane.
|
||||
* Any other list item or tab that was previously selected becomes unselected and its associated pane is hidden.
|
||||
* * `dispose` – Destroys an element's tab.
|
||||
*
|
||||
* Returns to the caller before the tab pane has actually been shown (i.e. before the `shown.bs.tab` event occurs).
|
||||
*/
|
||||
tab(action: "show" | "dispose"): this;
|
||||
|
||||
/**
|
||||
* Call a method on the toast element:
|
||||
* * `show` – Reveals an element's toast. You have to manually call this method, instead your toast won't show.
|
||||
* * `hide` – Hides an element's toast. You have to manually call this method if you made `autohide` to false.
|
||||
* * `dispose` – Hides an element's toast. Your toast will remain on the DOM but won't show anymore.
|
||||
*
|
||||
* Returns to the caller before the toast has actually been shown or hidden (i.e. before the `shown.bs.toast` or `hidden.bs.toast` event occurs).
|
||||
*/
|
||||
toast(action: "show" | "hide" | "dispose"): this;
|
||||
/**
|
||||
* Attaches a toast handler to an element collection.
|
||||
*/
|
||||
toast(options?: ToastOption): this;
|
||||
|
||||
/**
|
||||
* Call a method on the tooltip element:
|
||||
* * `show` – Reveals an element's tooltip. Tooltips with zero-length titles are never displayed.
|
||||
* * `hide` – Hides an element's tooltip.
|
||||
* * `toggle` – Toggles an element's tooltip.
|
||||
* * `dispose` – Hides and destroys an element's tooltip.
|
||||
* Tooltips that use delegation (which are created using `selector` option) cannot be individually destroyed on descendant trigger elements.
|
||||
* * `enable` – Gives an element's tooltip the ability to be shown. Tooltips are enabled by default.
|
||||
* * `disable` – Removes the ability for an element's tooltip to be shown. The tooltip will only be able to be shown if it is re-enabled.
|
||||
* * `toggleEnabled` – Toggles the ability for an element's tooltip to be shown or hidden.
|
||||
* * `update` – Updates the position of an element's tooltip.
|
||||
*
|
||||
* Returns to the caller before the tooltip has actually been shown or hidden (i.e. before the `shown.bs.tooltip` or `hidden.bs.tooltip` event occurs).
|
||||
* This is considered a "manual" triggering of the tooltip.
|
||||
*/
|
||||
tooltip(action: "show" | "hide" | "toggle" | "dispose" | "enable" | "disable" | "toggleEnabled" | "update"): this;
|
||||
/**
|
||||
* Attaches a tooltip handler to an element collection.
|
||||
*/
|
||||
tooltip(options?: TooltipOption): this;
|
||||
|
||||
on(events: CarouselEvent, handler: JQuery.EventHandlerBase<TElement, CarouselEventHandler<TElement>>): this;
|
||||
on(events: DropdownEvent, handler: JQuery.EventHandlerBase<TElement, DropdownsEventHandler<TElement>>): this;
|
||||
on(events: ModalEvent, handler: JQuery.EventHandlerBase<TElement, ModalEventHandler<TElement>>): this;
|
||||
on(events: TapEvent, handler: JQuery.EventHandlerBase<TElement, TapEventHandler<TElement>>): this;
|
||||
on(
|
||||
events: AlertEvent | CollapseEvent | PopoverEvent | ScrollspyEvent | ToastEvent | TooltipEvent,
|
||||
handler: JQuery.EventHandler<TElement>
|
||||
): this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
<template>
|
||||
<table style="width: 1000px; margin: auto" class="tb_layout bg0">
|
||||
<tr>
|
||||
<td style="text-align: left">
|
||||
{{title}}<br /><button
|
||||
type="button"
|
||||
@click="back"
|
||||
>돌아가기</button><br />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent, PropType } from "vue";
|
||||
import "../../scss/game_bg.scss";
|
||||
|
||||
export default defineComponent({
|
||||
name: "TopBackBar",
|
||||
methods: {
|
||||
back(){
|
||||
if(this.type === 'normal'){
|
||||
location.href = './';
|
||||
}
|
||||
else if(this.type == 'chief'){
|
||||
location.href = 'b_chiefcenter.php';
|
||||
}
|
||||
else{
|
||||
//TODO: window.close하려면 부모창이 있어야함!
|
||||
window.close();
|
||||
}
|
||||
}
|
||||
},
|
||||
props: {
|
||||
title: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
type: {
|
||||
type: String as PropType<"normal"|"chief"|"close">,
|
||||
default: "normal",
|
||||
required: false,
|
||||
},
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<style>
|
||||
</style>
|
||||
@@ -12,7 +12,6 @@ import { sha512 } from 'js-sha512';
|
||||
import { unwrap } from '../util/unwrap';
|
||||
import { InvalidResponse } from '../defs';
|
||||
|
||||
|
||||
type LoginResponse = {
|
||||
result: true,
|
||||
} | {
|
||||
@@ -125,7 +124,7 @@ async function doLoginUsingOAuth() {
|
||||
return;
|
||||
}
|
||||
|
||||
const $modal = $('#modalOTP').modal();
|
||||
const $modal = $('#modalOTP').modal() as unknown as JQuery;
|
||||
$modal.on('shown.bs.modal', function () {
|
||||
$('#otp_code').trigger('focus');
|
||||
});
|
||||
@@ -222,7 +221,7 @@ $(function ($) {
|
||||
return;
|
||||
}
|
||||
|
||||
const $modal = $('#modalOTP').modal();
|
||||
const $modal = $('#modalOTP').modal() as unknown as JQuery;
|
||||
$modal.on('shown.bs.modal', function () {
|
||||
$('#otp_code').trigger('focus');
|
||||
});
|
||||
|
||||
@@ -0,0 +1,186 @@
|
||||
<template>
|
||||
<top-back-bar :title="title" />
|
||||
|
||||
<div
|
||||
id="container"
|
||||
class="tb_layout bg0"
|
||||
style="width: 1000px; margin: auto; border: solid 1px #888888"
|
||||
>
|
||||
<div id="inheritance_list">
|
||||
<div id="inherit_sum" class="inherit_item">
|
||||
<div class="row">
|
||||
<label
|
||||
id="inherit_sum_head"
|
||||
class="inherit_head col-sm-6 col-form-label"
|
||||
>총 포인트</label
|
||||
>
|
||||
<div class="col-sm-6">
|
||||
<input
|
||||
type="text"
|
||||
class="form-control inherit_value"
|
||||
readonly
|
||||
id="inherit_sum_value"
|
||||
value=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="text-align: right">
|
||||
<small class="form-text text-muted"></small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="inherit_previous" class="inherit_item">
|
||||
<div class="row">
|
||||
<label
|
||||
id="inherit_sum_head"
|
||||
class="inherit_head col-sm-6 col-form-label"
|
||||
>기존 포인트</label
|
||||
>
|
||||
<div class="col-sm-6">
|
||||
<input
|
||||
type="text"
|
||||
class="form-control inherit_value"
|
||||
readonly
|
||||
id="inherit_previous_value"
|
||||
value=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="text-align: right">
|
||||
<small class="form-text text-muted"></small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="inherit_new" class="inherit_item">
|
||||
<div class="row">
|
||||
<label
|
||||
id="inherit_sum_head"
|
||||
class="inherit_head col-sm-6 col-form-label"
|
||||
>신규 포인트</label
|
||||
>
|
||||
<div class="col-sm-6">
|
||||
<input
|
||||
type="text"
|
||||
class="form-control inherit_value"
|
||||
readonly
|
||||
id="inherit_new_value"
|
||||
value=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="text-align: right">
|
||||
<small class="form-text text-muted"></small>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 100%; padding: 0 10px">
|
||||
<hr style="border-top: 1px solid #888888" />
|
||||
</div>
|
||||
<!--<?php if ($key == 'previous') {
|
||||
continue;
|
||||
} ?>-->
|
||||
<div
|
||||
v-for="(vals, key) in inheritanceKey"
|
||||
:key="key"
|
||||
:id="`inherit_${key}`"
|
||||
class="inherit_item inherit_template_item"
|
||||
>
|
||||
<div class="row">
|
||||
<label
|
||||
id="inherit_<?= $key ?>_head"
|
||||
class="inherit_head col-sm-6 col-form-label"
|
||||
>{{ vals[2] }}</label
|
||||
>
|
||||
<div class="col-sm-6">
|
||||
<input
|
||||
type="text"
|
||||
class="form-control inherit_value"
|
||||
readonly
|
||||
:id="`inherit_${key}_value`"
|
||||
value=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="text-align: right">
|
||||
<small class="form-text text-muted"></small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from "vue";
|
||||
import "../scss/inheritPoint.scss";
|
||||
import "../scss/game_bg.scss";
|
||||
import TopBackBar from "./components/TopBackBar.vue";
|
||||
|
||||
type InheritanceType =
|
||||
| "previous"
|
||||
| "lived_month"
|
||||
| "max_belong"
|
||||
| "max_domestic_critical"
|
||||
| "snipe_combat"
|
||||
| "combat"
|
||||
| "sabotage"
|
||||
| "unifier"
|
||||
| "dex"
|
||||
| "tournament"
|
||||
| "betting";
|
||||
|
||||
type InheritanceViewType = InheritanceType | "sum" | "new";
|
||||
|
||||
const inheritanceKey: Record<
|
||||
InheritanceType,
|
||||
[boolean | [string, string], number, string]
|
||||
> = {
|
||||
previous: [true, 1, "기존 포인트"],
|
||||
lived_month: [true, 1, "생존"],
|
||||
max_belong: [false, 10, "최대 임관년 수"],
|
||||
max_domestic_critical: [true, 1, "최대 연속 내정 성공"],
|
||||
snipe_combat: [true, 10, "병종 상성 우위 횟수"],
|
||||
combat: [["rank", "warnum"], 5, "전투 횟수"],
|
||||
sabotage: [["rank", "firenum"], 20, "계략 성공 횟수"],
|
||||
unifier: [true, 1, "천통 기여"],
|
||||
dex: [false, 0.001, "숙련도"],
|
||||
tournament: [true, 1, "토너먼트"],
|
||||
betting: [false, 10, "베팅 당첨"],
|
||||
};
|
||||
const pointHelpText: Record<InheritanceViewType, string> = {
|
||||
sum: "다음 플레이에서 사용할 수 있는 총 포인트입니다.",
|
||||
new: "이번 플레이에서 얻은 총 포인트입니다.",
|
||||
previous: "이전에 물려받은 포인트입니다.",
|
||||
lived_month: "살아남은 기간입니다. (1개월 단위)",
|
||||
max_belong: "가장 오래 임관했던 국가의 연도입니다.",
|
||||
max_domestic_critical: "성공한 내정 중 최대 연속값입니다.",
|
||||
snipe_combat: "유리한 상성을 가지고 전투했습니다.",
|
||||
combat: "전투 횟수입니다.",
|
||||
sabotage: "계략 성공 횟수입니다.",
|
||||
unifier:
|
||||
"천통에 기여한 포인트입니다. <br>각 국의 군주, 천통 수뇌, 천통 군주가 받습니다.",
|
||||
dex: "총 숙련도합입니다.",
|
||||
tournament: "토너먼트 입상 포인트입니다.",
|
||||
betting: "성공적인 베팅을 했습니다. <br>수익율과 베팅 성공 횟수를 따릅니다.",
|
||||
};
|
||||
|
||||
export default defineComponent({
|
||||
name: "InheritPoint",
|
||||
data() {
|
||||
return {
|
||||
title: "유산 관리",
|
||||
pointHelpText,
|
||||
inheritanceKey,
|
||||
};
|
||||
},
|
||||
components: {
|
||||
TopBackBar,
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<style>
|
||||
</style>
|
||||
@@ -1,7 +1,7 @@
|
||||
import "../scss/inheritPoint.scss";
|
||||
|
||||
import { sum } from "lodash";
|
||||
import { unwrap } from "./util/unwrap";
|
||||
import { unwrap } from "../util/unwrap";
|
||||
declare global {
|
||||
interface Window {
|
||||
formStart: ()=>void;
|
||||
@@ -0,0 +1,4 @@
|
||||
import { createApp } from 'vue'
|
||||
import InheritPoint from './inheritPoint.vue';
|
||||
|
||||
createApp(InheritPoint).mount('#app')
|
||||
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
namespace sammo;
|
||||
|
||||
include "lib.php";
|
||||
include "func.php";
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
$generalID = $session->generalID;
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
|
||||
$me = General::createGeneralObjFromDB($generalID);
|
||||
|
||||
|
||||
$pointHelpText = [
|
||||
'sum' => '다음 플레이에서 사용할 수 있는 총 포인트입니다.',
|
||||
'new' => '이번 플레이에서 얻은 총 포인트입니다.',
|
||||
'previous' => '이전에 물려받은 포인트입니다.',
|
||||
'lived_month' => '살아남은 기간입니다. (1개월 단위)',
|
||||
'max_belong' => '가장 오래 임관했던 국가의 연도입니다.',
|
||||
'max_domestic_critical' => '성공한 내정 중 최대 연속값입니다.',
|
||||
'snipe_combat' => '유리한 상성을 가지고 전투했습니다.',
|
||||
'combat' => '전투 횟수입니다.',
|
||||
'sabotage' => '계략 성공 횟수입니다.',
|
||||
'unifier' => '천통에 기여한 포인트입니다. <br>각 국의 군주, 천통 수뇌, 천통 군주가 받습니다.',
|
||||
'dex' => '총 숙련도합입니다.',
|
||||
'tournament' => '토너먼트 입상 포인트입니다.',
|
||||
'betting' => '성공적인 베팅을 했습니다. <br>수익율과 베팅 성공 횟수를 따릅니다.',
|
||||
];
|
||||
$items = [];
|
||||
foreach(array_keys(General::INHERITANCE_KEY) as $key){
|
||||
$items[$key] = $me->getInheritancePoint($key)??0;
|
||||
}
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title><?= UniqueConst::$serverName ?>: 유산 관리</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=1024" />
|
||||
<?= WebUtil::preloadCSS('dist_css/v_inheritPoint.css') ?>
|
||||
<?= WebUtil::preloadJS('dist_js/v_inheritPoint.js') ?>
|
||||
<?= WebUtil::printCSS('dist_css/v_inheritPoint.css') ?>
|
||||
<?= WebUtil::printJS('../d_shared/common_path.js') ?>
|
||||
<?= WebUtil::printJS('dist_js/vendors_vue.js') ?>
|
||||
<script>
|
||||
var items = <?=Json::encode($items)?>;
|
||||
var helpText = <?=Json::encode($pointHelpText)?>;
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
|
||||
<?= WebUtil::printJS('dist_js/v_inheritPoint.js') ?>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -55,6 +55,7 @@
|
||||
"babel-loader": "^8.2.2",
|
||||
"babel-plugin-lodash": "^3.3.4",
|
||||
"babel-preset-modern-browsers": "^15.0.2",
|
||||
"clean-terminal-webpack-plugin": "^3.0.0",
|
||||
"css-loader": "^6.2.0",
|
||||
"eslint": "^7.32.0",
|
||||
"file-loader": "^6.2.0",
|
||||
|
||||
+2
-2
@@ -17,7 +17,7 @@ module.exports = (env, argv) => {
|
||||
},
|
||||
mode,
|
||||
entry: {
|
||||
//v_test: resolve(__dirname, `${target}/ts/v_test.ts`)
|
||||
v_inheritPoint: resolve(__dirname, `${target}/ts/v_inheritPoint.ts`)
|
||||
},
|
||||
output: {
|
||||
filename: '[name].js',
|
||||
@@ -161,7 +161,7 @@ module.exports = (env, argv) => {
|
||||
mode,
|
||||
entry: {
|
||||
chiefCenter: '@/chiefCenter.ts',
|
||||
inheritPoint: '@/inheritPoint.ts',
|
||||
inheritPoint: '@/legacy/inheritPoint.ts',
|
||||
common: '@/common_deprecated.ts',
|
||||
troop: '@/troop.ts',
|
||||
map: '@/map.ts',
|
||||
|
||||
Reference in New Issue
Block a user