* chore: automatically change imports to import types
* chore: revert changes that actually need to be imports
* chore: format
* chore: add more import type statements based on importsNotUsedAsValues
* chore: fix tsconfig
* chore: add link to compiler issue
* fix: relative path for deprecation utils
* fix: checking if properties exist in svg_math
* fix: set all timeout PIDs to AnyDuringMigration
* fix: make nullability errors explicity in block drag surface
* fix: make null check in events_block_change explicit
* fix: make getEventWorkspace_ internal so we can access it from CommentCreateDeleteHelper
* fix: rename DIV -> containerDiv in tooltip
* fix: ignore backwards compat check in category
* fix: set block styles to AnyDuringMigration
* fix: type typo in KeyboardShortcut
* fix: constants name in row measurables
* fix: typecast in mutator
* fix: populateProcedures type of flattened array
* fix: ignore errors related to workspace comment deserialization
* chore: format files
* fix: renaming imports missing file extensions
* fix: remove check for sound.play
* fix: temporarily remove bad requireType.
All `export type` statements are stripped when tsc is run. This means
that when we attempt to require BlockDefinition from the block files, we
get an error because it does not exist.
We decided to temporarily remove the require, because this will no
longer be a problem when we conver the blocks to typescript, and
everything gets compiled together.
* fix: bad jsdoc in array
* fix: silence missing property errors
Closure was complaining about inexistant properties, but they actually
do exist, they're just not being transpiled by tsc in a way that closure
understands.
I.E. if things are initialized in a function called by the constructor,
rather than in a class field or in the custructor itself, closure would
error.
It would also error on enums, because they are transpiled to a weird
IIFE.
* fix: context menu action handler not knowing the type of this.
this: TypeX information gets stripped when tsc is run, so closure could
not know that this was not global. Fixed this by reorganizing to use the
option object directly instead of passing it to onAction to be bound to
this.
* fix: readd getDeveloperVars checks (should not be part of migration)
This was found because ALL_DEVELOPER_VARS_WARNINGS_BY_BLOCK_TYPE was no
longer being accessed.
* fix: silence closure errors about overriding supertype props
We propertly define the overrides in typescript, but these get removed
from the compiled output, so closure doesn't know they exist.
* fix: silence globalThis errors
this: TypeX annotations get stripped from the compiled output, so
closure can't know that we're accessing the correct things. However,
typescript makes sure that this always has the correct properties, so
silencing this should be fine.
* fix: bad jsdoc name
* chore: attempt compiling with blockly.js
* fix: attempt moving the import statement above the namespace line
* chore: add todo comments to block def files
* chore: remove todo from context menu
* chore: add comments abotu disabled errors
* fix: add ~70% of internal attributes
* fix: work on manually adding more @internal annotations
* fix: add more manual internal annotations
* fix: rename package typos to internal
* fix: final manual fixes for internal annotations
* chore: format
* chore: make unnecessary multiline jsdoc a single line
* fix: fix internal tags in serialization exceptions
* fix: Remove spurious blank lines
Remove extraneous blank lines introduced by deletion of
'use strict'; pragmas.
Also fix the location of the goog.declareModuleId call in
core/utils/array.ts.
* fix: Add missing double-blank-line before body of modules
Our convention is to have two blank lines between the imports (or
module ID, if there are no imports) and the beginning of the body
of the module. Enforce this.
* fix: one addition format error for PR #6243
I've added the import statement immediately before the
goog.declareModuleId calls that depend on it.
There is an argument to be made that we should put the import
statement in their normal place amongst any other imports, and
move the declareModuleId statement to below the double blank
line below the imports, but as these are so tightly coupled,
replace the previous goog.module calls, and will both be deleted
at the same time once the transition to TypeScript is fully complete
I think it's fine (and certainly much easier) to do it this way.
* fix: add isBlockCreatable to IFlyout interface
* fix: add getClickTarget to IToolboxItem interface
* fix: fix some types in zelos renderer
* fix: add scrollToStart to IFlyout interface
* fix: add setVisible_ to IToolboxItem
* fix: use instanceof check for workspace comments in gesture code
* fix: data stored on the DOM for tooltips
* fix: use blockSvg to access icons
* fix: add instanceof check in shortcut_items.js
* fix: suppress warning about onKeyDown in tolbox
* fix: add instanceof check in workspace_svg
* fix: don't use dot accessor to avoid type problem
* fix: silence type errors in ast_node.js
* fix: Fix errors under strict compilation.
* fix: Fix tests that referenced properties converted to data attributes.
* fix: Incorporate feedback on resolving compiler errors.
* refactor: Revert changes to skew and translate attributes.
* refactor: Introduce LegacyContextMenuOption type to correspond to documented fields.
* refactor: Introduce PathLeftShape and PathDownShape vs casting to PuzzleTab/Notch.
* chore: Added nullability modifiers to type annotations.
* refactor: Export FlyoutItem directly.
* chore: clang-format renderers/zelos/drawer.js.
* refact: convert toolbox items to ES6 classes
* fix: and SENTINEL so that contents can be parsed properly
* fix: fix types and whatnot related to new SENTINEL
* clean: format
* refactor: reorganize overridable calls into the init function, and remove sentinel
* clean: format
* fix: inline docs and organization
* refactor: update several files to es6 classes
* refactor: update several files to es6 classes
* chore: add some type casts for specificity about event types
* chore: run formatter
* chore: rebuild
* refactor: update workspace_comment and _svg to es classes
* refactor: update classes that extend icon to es classes
* refactor: update icon to es6 class
* refactor: update connection classes to es6 classes and add casts as needed
* refactor: update scrollbar to es6 class and add casts as needed
* refactor: update workspace_svg to es6 class
* refactor: update several files to es6 classes
* refactor: update several files to es6 classes
* refactor: update renderers/common/info.js to es6 class
* refactor: update several files to es6 classes
* chore: rebuild deps.js
* chore: run format
* chore: move functions from utils to more specific files
* chore: use new names for utils functions
* chore: run clang-format
* chore: add deprecation warnings back to utils.js
There are small typos in:
- closure/goog/base.js
- core/contextmenu_items.js
- core/insertion_marker_manager.js
- core/toolbox/collapsible_category.js
- demos/blockfactory/workspacefactory/wfactory_controller.js
- demos/blockfactory/workspacefactory/wfactory_view.js
- tests/mocha/field_colour_test.js
Fixes:
- Should read `updates` rather than `udpates`.
- Should read `unhighlighting` rather than `unhiglighting`.
- Should read `then` rather than `tehn`.
- Should read `modified` rather than `modifed`.
- Should read `different` rather than `diffferent`.
- Should read `currently` rather than `currenly`.
- Should read `browser` rather than `broswer`.
Our files are up to a decade old, and have churned so much, that the initial author of the file no longer has much meaning.
Furthermore, this will encourage developers to post to the developer group, rather than emailing Googlers (usually me) directly.
* Add annotations to files under core/events
* Add annotations to files under core/interfaces
* Add annotations to files under core/keyboard_nav
* Add annotations to files under core/renderers
* Add annotations to files under core/serialization
* Add annotations to files under core/theme
* Add annotations to files under core/toolbox
* Add annotations to files under core/utils
* Add annotations to files under core
* chore: named export for block.js
* chore: named export for block_drag_surface.js
* chore: named export for block_dragger.js
* chore: named export for block_svg.js
* Fix import ordering
* chore: fix imports using requireType
* Remove extra require
* Add hideChaff() to core/workspace_svg.js
* Mark Blockly.hideChaff as deprecated
* Update uses of Blockly.hideChaff() to WorkspaceSvg.hideChaff() in core
* Update uses of Blockly.hideChaff() to WorkspaceSvg.hideChaff() in demos
* Style and formatting fixes
* Switch from accessor to stub wrapper for Blockly.hideChaff
Co-authored-by: Christopher Allen <cpcallen+github@gmail.com>
Co-authored-by: Christopher Allen <cpcallen+github@gmail.com>
* Move hueToHex to core/utils/colour.js
* Mark Blockly.hueToHex as deprecated and pass calls through to Blockly.utils.colour.hueToHex
* Migrate core to use Blockly.utils.colour.hueToHex
* Migrate demos to use Blockly.utils.colour.hueToHex
Some files were using Blockly.utils.object.inherits (or .mixin) without
having imported Blockly.utils.object.
Similarly, trashcan.js tried to use utils.Size as a constructor
instead of importing Size from Blockly.utils.Size.
* Use goog.requireType when importing I* interfaces
Interfaces have no code, so should never be referred to outside of
(JSDoc) comments, and so the modules that define only interfaces never
need to be goog.require'd - goog.requireType is always sufficient.
This commit fixes imports of all modules whose name matches
/(.*\.)?I[A-Z]*/ - i.e., the hungarian-notation named ones in
core/interfaces/.
* Use goog.requireType when only using import for type specifications
Where a module is imported only to used in JSDoc comments it can
(and should) be goog.requireType'd instead of goog.require'd.
* Remove spurious eslint-disable no-unused-vars
There were a few cases where modules were being imported with
goog.require (because they are referred to in code, not just JSDoc
comments) but were prefaced by a spurious eslint suppress.
Remove these, restoring the invariant that an import gets an eslint
if and only if it is a requireType.
* Remove obsolete Closure Compiler error group
stricterMissingRequire has been superceded by missingRequire, and now
causes a Java null pointer exception if supplied.