@operato/scene-gantt 9.0.0-beta.4 → 9.0.0-beta.9

Sign up to get free protection for your applications and to get access to all the features.
package/dist/gantt.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"gantt.js","sourceRoot":"","sources":["../src/gantt.ts"],"names":[],"mappings":"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","sourcesContent":["import { i18next } from '@operato/i18n'\n\n/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'date',\n label: 'gantt-from-date',\n name: 'fromDate'\n // defaultValue: () =>\n // new Date(new Date().getFullYear(), 0, 1).toISOString().split('T')[0] /* beginning of this year */\n },\n {\n type: 'date',\n label: 'gantt-to-date',\n name: 'toDate'\n // defaultValue: () => new Date(new Date().getFullYear(), 11, 31).toISOString().split('T')[0] /* end of this year */\n },\n {\n type: 'boolean',\n label: 'gantt-gridline',\n name: 'gridline'\n // defaultValue: true\n },\n {\n type: 'select',\n label: 'gantt-time-scale',\n name: 'timeScale',\n property: {\n options: [\n {\n display: 'week-day',\n value: 'week-day'\n },\n {\n display: 'month-week',\n value: 'month-week'\n },\n {\n display: 'quarter-week',\n value: 'quarter-week'\n },\n {\n display: 'year-quarter',\n value: 'year-quarter'\n }\n ]\n }\n // defaultValue: 'week-day'\n },\n {\n type: 'column-config',\n label: 'gantt-column-config',\n name: 'columnConfig'\n // defaultValue: () => [\n // { name: 'id', label: i18next.t('label.gantt-task-id') || 'ID', visible: true, width: '50', order: 1 },\n // {\n // name: 'section',\n // label: i18next.t('label.gantt-task-section') || 'section',\n // visible: true,\n // width: '100',\n // order: 2\n // },\n // {\n // name: 'title',\n // label: i18next.t('label.gantt-task-title') || 'title',\n // visible: true,\n // width: '150',\n // order: 3\n // },\n // { name: 'type', label: i18next.t('label.gantt-task-type') || 'type', visible: true, width: '100', order: 4 },\n // {\n // name: 'startDate',\n // label: i18next.t('label.gantt-task-start-date') || 'start date',\n // visible: true,\n // width: '100',\n // order: 5\n // },\n // {\n // name: 'endDate',\n // label: i18next.t('label.gantt-task-end-date') || 'end date',\n // visible: true,\n // width: '100',\n // order: 6\n // },\n // { name: 'tags', label: i18next.t('label.gantt-task-tags') || 'tags', visible: true, width: '100', order: 7 },\n // {\n // name: 'progress',\n // label: i18next.t('label.gantt-task-progress') || 'progress',\n // visible: true,\n // width: '100',\n // order: 8\n // },\n // {\n // name: 'dependsOn',\n // label: i18next.t('label.gantt-task-previous') || 'previous',\n // visible: true,\n // width: '100',\n // order: 9\n // }\n // ]\n }\n ],\n 'value-property': 'tasks'\n}\n\nimport '@operato/gantt/ox-gantt.js'\n\nimport { OxGantt } from '@operato/gantt/dist/src/ox-gantt.js'\nimport { Task } from '@operato/gantt/dist/src/types.js'\n\nimport { Component, ComponentNature, HTMLOverlayContainer, Properties, error } from '@hatiolab/things-scene'\n\nfunction getGlobalScale(component: GanttScene) {\n var scale = { x: 1, y: 1 }\n var parent: Component = component\n\n while (parent) {\n let { x, y } = parent.get('scale') || { x: 1, y: 1 }\n scale.x *= x || 1\n scale.y *= y || 1\n\n parent = parent.parent\n }\n return scale\n}\n\nexport default class GanttScene extends HTMLOverlayContainer {\n static get nature() {\n return NATURE\n }\n\n private _tasks: Task[] = []\n\n private listenTo?: Component\n private listener? = function (this: GanttScene, after: any) {\n after.scale && this.rescale()\n }.bind(this)\n\n private gantt!: OxGantt\n\n createElement() {\n super.createElement()\n\n this.gantt = document.createElement('ox-gantt') as OxGantt\n this.gantt.style.width = 'inherit'\n this.gantt.style.height = 'inherit'\n\n this.element.appendChild(this.gantt)\n\n this.rescale()\n\n const { fromDate, toDate, gridline, columnConfig, timeScale = 'week-day' } = this.state\n\n this.gantt.fromDate = fromDate\n this.gantt.toDate = toDate\n this.gantt.extendGridLines = gridline\n this.gantt.columnConfigProvider = () => columnConfig\n this.gantt.timeScale = timeScale\n }\n\n dispose() {\n super.dispose()\n }\n\n /*\n * 컴포넌트의 생성 또는 속성 변화 시에 호출되며,\n * 그에 따른 html element의 반영이 필요한 부분을 구현한다.\n *\n * ThingsComponent state => HTML element properties\n */\n\n setElementProperties(div: HTMLDivElement) {\n this.rescale()\n }\n\n /*\n * 컴포넌트가 ready 상태가 되거나, 컴포넌트의 속성이 변화될 시 setElementProperties 뒤에 호출된다.\n * 변화에 따른 기본적인 html 속성이 super.reposition()에서 진행되고, 그 밖의 작업이 필요할 때, 오버라이드 한다.\n */\n reposition() {\n super.reposition()\n }\n\n get tagName() {\n return 'div'\n }\n\n get tasks() {\n return this.get('tasks')\n }\n\n set tasks(tasks) {\n this.set('tasks', tasks)\n ;(this.gantt as OxGantt).tasks = tasks\n }\n\n ready() {\n super.ready()\n\n if (this.rootModel) {\n this.listenTo = this.rootModel\n this.rootModel.on('change', this.listener!)\n }\n }\n\n removed() {\n if (this.listenTo) {\n this.listenTo.off('change', this.listener!)\n\n delete this.listenTo\n delete this.listener\n }\n }\n\n /*\n * gantt은 scale된 상태에서 마우스/터치 포지션을 정확히 매핑하지 못하므로, 타임 범위를 정상적으로 지정하지 못한다.\n * 따라서, gantt의 경우에는 부모의 스케일의 역으로 transform해서, scale을 1로 맞추어야 한다.\n */\n rescale() {\n if (!this.gantt) {\n return\n }\n\n var scale = getGlobalScale(this)\n\n var sx = 1 / scale.x\n var sy = 1 / scale.y\n\n var transform = `scale(${sx}, ${sy})`\n\n ;['-webkit-', '-moz-', '-ms-', '-o-', ''].forEach(prefix => {\n this.gantt!.style[(prefix + 'transform') as any] = transform\n this.gantt!.style[(prefix + 'transform-origin') as any] = '0px 0px'\n })\n\n var { width, height } = this.state\n this.gantt!.style.width = width * scale.x + 'px'\n this.gantt!.style.height = height * scale.y + 'px'\n\n this.gantt.requestUpdate()\n }\n\n onchange(props: Properties) {\n ;['fromDate', 'toDate', 'timeScale', 'columnConfig'].forEach(prop => {\n if (prop in props) {\n ;(this.gantt as any)[prop] = this.state[prop]\n }\n })\n\n if ('gridline' in props) {\n ;(this.gantt as OxGantt).extendGridLines = this.state['gridline']\n }\n\n this.rescale()\n }\n}\n\nComponent.register('gantt', GanttScene)\n"]}
1
+ {"version":3,"file":"gantt.js","sourceRoot":"","sources":["../src/gantt.ts"],"names":[],"mappings":"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","sourcesContent":["import { i18next } from '@operato/i18n'\n\n/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'date',\n label: 'gantt-from-date',\n name: 'fromDate'\n // defaultValue: () =>\n // new Date(new Date().getFullYear(), 0, 1).toISOString().split('T')[0] /* beginning of this year */\n },\n {\n type: 'date',\n label: 'gantt-to-date',\n name: 'toDate'\n // defaultValue: () => new Date(new Date().getFullYear(), 11, 31).toISOString().split('T')[0] /* end of this year */\n },\n {\n type: 'boolean',\n label: 'gantt-gridline',\n name: 'gridline'\n // defaultValue: true\n },\n {\n type: 'select',\n label: 'gantt-time-scale',\n name: 'timeScale',\n property: {\n options: [\n {\n display: 'week-day',\n value: 'week-day'\n },\n {\n display: 'month-week',\n value: 'month-week'\n },\n {\n display: 'quarter-week',\n value: 'quarter-week'\n },\n {\n display: 'year-quarter',\n value: 'year-quarter'\n }\n ]\n }\n // defaultValue: 'week-day'\n },\n {\n type: 'column-config',\n label: 'gantt-column-config',\n name: 'columnConfig'\n // defaultValue: () => [\n // { name: 'id', label: i18next.t('label.gantt-task-id') || 'ID', visible: true, width: '50', order: 1 },\n // {\n // name: 'section',\n // label: i18next.t('label.gantt-task-section') || 'section',\n // visible: true,\n // width: '100',\n // order: 2\n // },\n // {\n // name: 'title',\n // label: i18next.t('label.gantt-task-title') || 'title',\n // visible: true,\n // width: '150',\n // order: 3\n // },\n // { name: 'type', label: i18next.t('label.gantt-task-type') || 'type', visible: true, width: '100', order: 4 },\n // {\n // name: 'startDate',\n // label: i18next.t('label.gantt-task-start-date') || 'start date',\n // visible: true,\n // width: '100',\n // order: 5\n // },\n // {\n // name: 'endDate',\n // label: i18next.t('label.gantt-task-end-date') || 'end date',\n // visible: true,\n // width: '100',\n // order: 6\n // },\n // { name: 'tags', label: i18next.t('label.gantt-task-tags') || 'tags', visible: true, width: '100', order: 7 },\n // {\n // name: 'progress',\n // label: i18next.t('label.gantt-task-progress') || 'progress',\n // visible: true,\n // width: '100',\n // order: 8\n // },\n // {\n // name: 'dependsOn',\n // label: i18next.t('label.gantt-task-previous') || 'previous',\n // visible: true,\n // width: '100',\n // order: 9\n // }\n // ]\n }\n ],\n 'value-property': 'tasks'\n}\n\nimport '@operato/gantt/ox-gantt.js'\n\nimport { OxGantt, Task } from '@operato/gantt'\n\nimport { Component, ComponentNature, HTMLOverlayContainer, Properties, error } from '@hatiolab/things-scene'\n\nfunction getGlobalScale(component: GanttScene) {\n var scale = { x: 1, y: 1 }\n var parent: Component = component\n\n while (parent) {\n let { x, y } = parent.get('scale') || { x: 1, y: 1 }\n scale.x *= x || 1\n scale.y *= y || 1\n\n parent = parent.parent\n }\n return scale\n}\n\nexport default class GanttScene extends HTMLOverlayContainer {\n static get nature() {\n return NATURE\n }\n\n private _tasks: Task[] = []\n\n private listenTo?: Component\n private listener? = function (this: GanttScene, after: any) {\n after.scale && this.rescale()\n }.bind(this)\n\n private gantt!: OxGantt\n\n createElement() {\n super.createElement()\n\n this.gantt = document.createElement('ox-gantt') as OxGantt\n this.gantt.style.width = 'inherit'\n this.gantt.style.height = 'inherit'\n\n this.element.appendChild(this.gantt)\n\n this.rescale()\n\n const { fromDate, toDate, gridline, columnConfig, timeScale = 'week-day' } = this.state\n\n this.gantt.fromDate = fromDate\n this.gantt.toDate = toDate\n this.gantt.extendGridLines = gridline\n this.gantt.columnConfigProvider = () => columnConfig\n this.gantt.timeScale = timeScale\n }\n\n dispose() {\n super.dispose()\n }\n\n /*\n * 컴포넌트의 생성 또는 속성 변화 시에 호출되며,\n * 그에 따른 html element의 반영이 필요한 부분을 구현한다.\n *\n * ThingsComponent state => HTML element properties\n */\n\n setElementProperties(div: HTMLDivElement) {\n this.rescale()\n }\n\n /*\n * 컴포넌트가 ready 상태가 되거나, 컴포넌트의 속성이 변화될 시 setElementProperties 뒤에 호출된다.\n * 변화에 따른 기본적인 html 속성이 super.reposition()에서 진행되고, 그 밖의 작업이 필요할 때, 오버라이드 한다.\n */\n reposition() {\n super.reposition()\n }\n\n get tagName() {\n return 'div'\n }\n\n get tasks() {\n return this.get('tasks')\n }\n\n set tasks(tasks) {\n this.set('tasks', tasks)\n ;(this.gantt as OxGantt).tasks = tasks\n }\n\n ready() {\n super.ready()\n\n if (this.rootModel) {\n this.listenTo = this.rootModel\n this.rootModel.on('change', this.listener!)\n }\n }\n\n removed() {\n if (this.listenTo) {\n this.listenTo.off('change', this.listener!)\n\n delete this.listenTo\n delete this.listener\n }\n }\n\n /*\n * gantt은 scale된 상태에서 마우스/터치 포지션을 정확히 매핑하지 못하므로, 타임 범위를 정상적으로 지정하지 못한다.\n * 따라서, gantt의 경우에는 부모의 스케일의 역으로 transform해서, scale을 1로 맞추어야 한다.\n */\n rescale() {\n if (!this.gantt) {\n return\n }\n\n var scale = getGlobalScale(this)\n\n var sx = 1 / scale.x\n var sy = 1 / scale.y\n\n var transform = `scale(${sx}, ${sy})`\n\n ;['-webkit-', '-moz-', '-ms-', '-o-', ''].forEach(prefix => {\n this.gantt!.style[(prefix + 'transform') as any] = transform\n this.gantt!.style[(prefix + 'transform-origin') as any] = '0px 0px'\n })\n\n var { width, height } = this.state\n this.gantt!.style.width = width * scale.x + 'px'\n this.gantt!.style.height = height * scale.y + 'px'\n\n this.gantt.requestUpdate()\n }\n\n onchange(props: Properties) {\n ;['fromDate', 'toDate', 'timeScale', 'columnConfig'].forEach(prop => {\n if (prop in props) {\n ;(this.gantt as any)[prop] = this.state[prop]\n }\n })\n\n if ('gridline' in props) {\n ;(this.gantt as OxGantt).extendGridLines = this.state['gridline']\n }\n\n this.rescale()\n }\n}\n\nComponent.register('gantt', GanttScene)\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@operato/scene-gantt",
3
3
  "description": "Operato Scene Component for Gantt Chart",
4
- "version": "9.0.0-beta.4",
4
+ "version": "9.0.0-beta.9",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "things-scene": true,
@@ -40,8 +40,8 @@
40
40
  "@typescript-eslint/parser": "^4.33.0",
41
41
  "@web/dev-server": "^0.1.28",
42
42
  "concurrently": "^8.0.1",
43
- "eslint": "^8.39.0",
44
- "eslint-config-prettier": "^8.3.0",
43
+ "eslint": "^9.18.0",
44
+ "eslint-config-prettier": "^10.0.1",
45
45
  "husky": "^8.0.3",
46
46
  "lint-staged": "^13.2.2",
47
47
  "prettier": "^2.4.1",
@@ -60,5 +60,5 @@
60
60
  "prettier --write"
61
61
  ]
62
62
  },
63
- "gitHead": "0c1d2486d6aee9bb231a6b14a921d547cb2cfeef"
63
+ "gitHead": "a055d01e45284ed000513e62768dcad61f926293"
64
64
  }