@operato/scene-gantt 9.0.0-beta.7 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/gantt.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { __decorate } from "tslib";
1
2
  /*
2
3
  * Copyright © HatioLab Inc. All rights reserved.
3
4
  */
@@ -107,7 +108,7 @@ const NATURE = {
107
108
  'value-property': 'tasks'
108
109
  };
109
110
  import '@operato/gantt/ox-gantt.js';
110
- import { Component, HTMLOverlayContainer } from '@hatiolab/things-scene';
111
+ import { HTMLOverlayContainer, sceneComponent } from '@hatiolab/things-scene';
111
112
  function getGlobalScale(component) {
112
113
  var scale = { x: 1, y: 1 };
113
114
  var parent = component;
@@ -119,7 +120,7 @@ function getGlobalScale(component) {
119
120
  }
120
121
  return scale;
121
122
  }
122
- export default class GanttScene extends HTMLOverlayContainer {
123
+ let GanttScene = class GanttScene extends HTMLOverlayContainer {
123
124
  constructor() {
124
125
  super(...arguments);
125
126
  this._tasks = [];
@@ -222,6 +223,9 @@ export default class GanttScene extends HTMLOverlayContainer {
222
223
  }
223
224
  this.rescale();
224
225
  }
225
- }
226
- Component.register('gantt', GanttScene);
226
+ };
227
+ GanttScene = __decorate([
228
+ sceneComponent('gantt')
229
+ ], GanttScene);
230
+ export default GanttScene;
227
231
  //# sourceMappingURL=gantt.js.map
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 {\n Component,\n ComponentNature,\n HTMLOverlayContainer,\n Properties,\n error,\n sceneComponent\n} 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\n@sceneComponent('gantt')\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"]}
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.7",
4
+ "version": "9.0.0",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "things-scene": true,
@@ -28,9 +28,9 @@
28
28
  "migration": "things-factory-migration"
29
29
  },
30
30
  "dependencies": {
31
- "@hatiolab/things-scene": "^9.0.0-beta",
32
- "@operato/gantt": "^9.0.0-beta",
33
- "@operato/i18n": "^9.0.0-beta"
31
+ "@hatiolab/things-scene": "^9.0.0",
32
+ "@operato/gantt": "^9.0.0",
33
+ "@operato/i18n": "^9.0.0"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@hatiolab/prettier-config": "^1.0.0",
@@ -60,5 +60,5 @@
60
60
  "prettier --write"
61
61
  ]
62
62
  },
63
- "gitHead": "97e5af48dff339375c9fb2668741276409321b0b"
63
+ "gitHead": "0c295810b93773e6373f96d69fe62e930d71c0cd"
64
64
  }