
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
{"version":3,"file":"IconControl.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/toolbar/IconControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Percent } from \"../../../core/util/Percent\";\r\n\r\nimport { StockControl, IStockControlSettings, IStockControlPrivate, IStockControlEvents } from \"./StockControl\";\r\nimport { DropdownList, IDropdownListItem } from \"./DropdownList\";\r\nimport { StockIcons } from \"./StockIcons\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\n\r\nexport interface IIcon {\r\n\tsvgPath: string;\r\n\tscale?: number;\r\n\tcenterX?: Percent;\r\n\tcenterY?: Percent;\r\n\tfillDisabled?: boolean;\r\n}\r\n\r\nexport interface IIconControlSettings extends IStockControlSettings {\r\n\ticons: IIcon[];\r\n}\r\n\r\nexport interface IIconControlPrivate extends IStockControlPrivate {\r\n\tlist?: DropdownList;\r\n}\r\n\r\nexport interface IIconControlEvents extends IStockControlEvents {\r\n\tselected: {\r\n\t\ticon: IIcon\r\n\t}\r\n}\r\n\r\n/**\r\n * Shows selection of icons to choose from for annotating [[StockChart]].\r\n *\r\n * This class is instantiated automatically, and should not be used standalone.\r\n */\r\nexport class IconControl extends StockControl {\r\n\tpublic static className: string = \"IconControl\";\r\n\tpublic static classNames: Array<string> = StockControl.classNames.concat([IconControl.className]);\r\n\r\n\tdeclare public _settings: IIconControlSettings;\r\n\tdeclare public _privateSettings: IIconControlPrivate;\r\n\tdeclare public _events: IIconControlEvents;\r\n\r\n\tprotected _afterNew() {\r\n\r\n\t\t// Do parent stuff\r\n\t\tsuper._afterNew();\r\n\r\n\t\t// Create list of tools\r\n\t\tconst list = DropdownList.new(this._root, {\r\n\t\t\tcontrol: this,\r\n\t\t\tparent: this.getPrivate(\"button\"),\r\n\t\t\tsearchable: false\r\n\t\t});\r\n\t\tthis.setPrivate(\"list\", list);\r\n\t\tlist.getPrivate(\"list\")!.className = \"am5stock-control-icons\";\r\n\r\n\t\tlist.events.on(\"closed\", (_ev) => {\r\n\t\t\tthis.set(\"active\", false);\r\n\t\t});\r\n\r\n\t\tlist.events.on(\"invoked\", (ev) => {\r\n\t\t\tconst item = <IIcon>JSON.parse(ev.item.id);\r\n\t\t\tlet icon: IIcon | undefined;\r\n\t\t\tconst icons = this.get(\"icons\");\r\n\t\t\t$array.each(icons, (listIcon) => {\r\n\t\t\t\tif (item.svgPath == listIcon.svgPath) {\r\n\t\t\t\t\ticon = listIcon;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (icon) {\r\n\t\t\t\tthis.setIcon(icon);\r\n\t\t\t\tthis.events.dispatch(\"selected\", {\r\n\t\t\t\t\ttype: \"selected\",\r\n\t\t\t\t\ticon: icon,\r\n\t\t\t\t\ttarget: this\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.on(\"active\", (active) => {\r\n\t\t\tif (active) {\r\n\t\t\t\tthis.setTimeout(() => list.show(), 10);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlist.hide();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis._initIcons();\r\n\t}\r\n\r\n\tpublic setIcon(icon: IIcon): void {\r\n\t\tthis.getPrivate(\"icon\")!.innerHTML = \"\";\r\n\t\tthis.getPrivate(\"icon\")!.appendChild(this._getDrawingIcon(icon));\r\n\t\t//this.getPrivate(\"label\")!.style.display = \"none\";\r\n\t}\r\n\r\n\tprotected _initIcons(): void {\r\n\t\tconst list = this.getPrivate(\"list\")!;\r\n\t\tconst icons = this.get(\"icons\");\r\n\t\tconst items: IDropdownListItem[] = [];\r\n\t\t$array.each(icons, (icon: IIcon) => {\r\n\t\t\titems.push({\r\n\t\t\t\tid: JSON.stringify(icon),\r\n\t\t\t\tlabel: \"\",\r\n\t\t\t\ticon: this._getDrawingIcon(icon)\r\n\t\t\t});\r\n\t\t})\r\n\t\tlist.set(\"items\", items);\r\n\t}\r\n\r\n\tpublic _getDrawingIcon(icon: IIcon): SVGElement {\r\n\t\treturn StockIcons._getSVG({ viewbox: \"0 0 50 50\", path: icon.svgPath});\r\n\t}\r\n\r\n\tpublic _afterChanged() {\r\n\t\tsuper._afterChanged();\r\n\r\n\t\tif (this.isDirty(\"icons\")) {\r\n\t\t\tthis._initIcons();\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _dispose(): void {\r\n\t\tsuper._dispose();\r\n\t}\r\n\r\n\r\n}\r\n"]}