d975cc371d
modified: node_modules/.package-lock.json deleted: node_modules/array-union/index.d.ts deleted: node_modules/array-union/index.js deleted: node_modules/array-union/license deleted: node_modules/array-union/package.json deleted: node_modules/array-union/readme.md modified: node_modules/cliui/CHANGELOG.md modified: node_modules/cliui/package.json modified: node_modules/fast-glob/out/index.d.ts modified: node_modules/fast-glob/out/index.js modified: node_modules/fast-glob/out/managers/patterns.d.ts modified: node_modules/fast-glob/out/managers/patterns.js modified: node_modules/fast-glob/out/managers/tasks.d.ts modified: node_modules/fast-glob/out/managers/tasks.js modified: node_modules/fast-glob/out/providers/async.d.ts modified: node_modules/fast-glob/out/providers/async.js modified: node_modules/fast-glob/out/providers/filters/deep.d.ts modified: node_modules/fast-glob/out/providers/filters/deep.js modified: node_modules/fast-glob/out/providers/filters/entry.d.ts modified: node_modules/fast-glob/out/providers/filters/entry.js modified: node_modules/fast-glob/out/providers/filters/error.d.ts modified: node_modules/fast-glob/out/providers/filters/error.js modified: node_modules/fast-glob/out/providers/matchers/matcher.d.ts modified: node_modules/fast-glob/out/providers/matchers/matcher.js modified: node_modules/fast-glob/out/providers/matchers/partial.d.ts modified: node_modules/fast-glob/out/providers/matchers/partial.js modified: node_modules/fast-glob/out/providers/provider.d.ts modified: node_modules/fast-glob/out/providers/provider.js modified: node_modules/fast-glob/out/providers/stream.d.ts modified: node_modules/fast-glob/out/providers/stream.js modified: node_modules/fast-glob/out/providers/sync.d.ts modified: node_modules/fast-glob/out/providers/sync.js modified: node_modules/fast-glob/out/providers/transformers/entry.d.ts modified: node_modules/fast-glob/out/providers/transformers/entry.js modified: node_modules/fast-glob/out/readers/reader.d.ts modified: node_modules/fast-glob/out/readers/reader.js modified: node_modules/fast-glob/out/readers/stream.d.ts modified: node_modules/fast-glob/out/readers/stream.js modified: node_modules/fast-glob/out/readers/sync.d.ts modified: node_modules/fast-glob/out/readers/sync.js modified: node_modules/fast-glob/out/settings.d.ts modified: node_modules/fast-glob/out/settings.js modified: node_modules/fast-glob/out/types/index.d.ts modified: node_modules/fast-glob/out/types/index.js modified: node_modules/fast-glob/out/utils/array.d.ts modified: node_modules/fast-glob/out/utils/array.js modified: node_modules/fast-glob/out/utils/errno.d.ts modified: node_modules/fast-glob/out/utils/errno.js modified: node_modules/fast-glob/out/utils/fs.d.ts modified: node_modules/fast-glob/out/utils/fs.js modified: node_modules/fast-glob/out/utils/index.d.ts modified: node_modules/fast-glob/out/utils/index.js modified: node_modules/fast-glob/out/utils/path.d.ts modified: node_modules/fast-glob/out/utils/path.js modified: node_modules/fast-glob/out/utils/pattern.d.ts modified: node_modules/fast-glob/out/utils/pattern.js modified: node_modules/fast-glob/out/utils/stream.d.ts modified: node_modules/fast-glob/out/utils/stream.js modified: node_modules/fast-glob/out/utils/string.d.ts modified: node_modules/fast-glob/out/utils/string.js modified: node_modules/fast-glob/package.json modified: node_modules/fastq/README.md modified: node_modules/fastq/index.d.ts modified: node_modules/fastq/package.json modified: node_modules/fastq/queue.js modified: node_modules/fastq/test/promise.js deleted: node_modules/fs-extra/CHANGELOG.md modified: node_modules/fs-extra/README.md deleted: node_modules/fs-extra/lib/copy-sync/copy-sync.js deleted: node_modules/fs-extra/lib/copy-sync/index.js modified: node_modules/fs-extra/lib/copy/copy.js modified: node_modules/fs-extra/lib/copy/index.js modified: node_modules/fs-extra/lib/ensure/index.js modified: node_modules/fs-extra/lib/fs/index.js modified: node_modules/fs-extra/lib/index.js modified: node_modules/fs-extra/lib/json/output-json-sync.js modified: node_modules/fs-extra/lib/json/output-json.js deleted: node_modules/fs-extra/lib/move-sync/index.js deleted: node_modules/fs-extra/lib/move-sync/move-sync.js modified: node_modules/fs-extra/lib/move/index.js modified: node_modules/fs-extra/lib/move/move.js deleted: node_modules/fs-extra/lib/output/index.js modified: node_modules/fs-extra/lib/remove/index.js deleted: node_modules/fs-extra/lib/remove/rimraf.js modified: node_modules/fs-extra/package.json deleted: node_modules/globby/gitignore.js modified: node_modules/globby/index.d.ts modified: node_modules/globby/index.js modified: node_modules/globby/package.json modified: node_modules/globby/readme.md deleted: node_modules/globby/stream-utils.js deleted: node_modules/globby/to-path.js modified: node_modules/graceful-fs/LICENSE modified: node_modules/graceful-fs/graceful-fs.js modified: node_modules/graceful-fs/package.json modified: node_modules/graceful-fs/polyfills.js modified: node_modules/ignore/README.md modified: node_modules/ignore/index.js modified: node_modules/ignore/legacy.js modified: node_modules/ignore/package.json modified: node_modules/lilconfig/dist/index.js modified: node_modules/lilconfig/package.json modified: node_modules/lilconfig/readme.md deleted: node_modules/micromatch/CHANGELOG.md modified: node_modules/micromatch/README.md modified: node_modules/micromatch/index.js modified: node_modules/micromatch/package.json modified: node_modules/nanoid/bin/nanoid.cjs modified: node_modules/nanoid/index.browser.cjs modified: node_modules/nanoid/index.browser.js deleted: node_modules/nanoid/index.dev.js deleted: node_modules/nanoid/index.prod.js modified: node_modules/nanoid/nanoid.js modified: node_modules/nanoid/package.json modified: node_modules/postcss-cli/index.js modified: node_modules/postcss-cli/package.json modified: node_modules/postcss-load-config/README.md modified: node_modules/postcss-load-config/package.json modified: node_modules/postcss-load-config/src/index.d.ts modified: node_modules/postcss-load-config/src/index.js modified: node_modules/postcss-load-config/src/req.js modified: node_modules/postcss/README.md modified: node_modules/postcss/lib/at-rule.d.ts modified: node_modules/postcss/lib/comment.d.ts modified: node_modules/postcss/lib/container.d.ts modified: node_modules/postcss/lib/container.js modified: node_modules/postcss/lib/css-syntax-error.d.ts modified: node_modules/postcss/lib/declaration.d.ts modified: node_modules/postcss/lib/document.d.ts modified: node_modules/postcss/lib/fromJSON.d.ts modified: node_modules/postcss/lib/input.d.ts modified: node_modules/postcss/lib/input.js modified: node_modules/postcss/lib/lazy-result.d.ts modified: node_modules/postcss/lib/list.d.ts modified: node_modules/postcss/lib/list.js modified: node_modules/postcss/lib/map-generator.js modified: node_modules/postcss/lib/no-work-result.d.ts modified: node_modules/postcss/lib/node.d.ts modified: node_modules/postcss/lib/parse.d.ts modified: node_modules/postcss/lib/parser.js modified: node_modules/postcss/lib/postcss.d.ts modified: node_modules/postcss/lib/postcss.js modified: node_modules/postcss/lib/previous-map.d.ts modified: node_modules/postcss/lib/processor.d.ts modified: node_modules/postcss/lib/processor.js modified: node_modules/postcss/lib/result.d.ts modified: node_modules/postcss/lib/root.d.ts modified: node_modules/postcss/lib/root.js modified: node_modules/postcss/lib/rule.d.ts modified: node_modules/postcss/lib/stringifier.d.ts modified: node_modules/postcss/lib/stringify.d.ts modified: node_modules/postcss/lib/warning.d.ts modified: node_modules/postcss/package.json modified: node_modules/slash/index.d.ts modified: node_modules/slash/index.js modified: node_modules/slash/package.json modified: node_modules/slash/readme.md modified: node_modules/yaml/LICENSE modified: node_modules/yaml/README.md deleted: node_modules/yaml/browser/dist/PlainValue-b8036b75.js deleted: node_modules/yaml/browser/dist/Schema-e94716c8.js modified: node_modules/yaml/browser/dist/index.js deleted: node_modules/yaml/browser/dist/legacy-exports.js deleted: node_modules/yaml/browser/dist/package.json deleted: node_modules/yaml/browser/dist/parse-cst.js deleted: node_modules/yaml/browser/dist/resolveSeq-492ab440.js deleted: node_modules/yaml/browser/dist/types.js modified: node_modules/yaml/browser/dist/util.js deleted: node_modules/yaml/browser/dist/warnings-df54cb69.js modified: node_modules/yaml/browser/index.js deleted: node_modules/yaml/browser/map.js deleted: node_modules/yaml/browser/pair.js deleted: node_modules/yaml/browser/parse-cst.js deleted: node_modules/yaml/browser/scalar.js deleted: node_modules/yaml/browser/schema.js deleted: node_modules/yaml/browser/seq.js deleted: node_modules/yaml/browser/types.js deleted: node_modules/yaml/browser/types/binary.js deleted: node_modules/yaml/browser/types/omap.js deleted: node_modules/yaml/browser/types/pairs.js deleted: node_modules/yaml/browser/types/set.js deleted: node_modules/yaml/browser/types/timestamp.js deleted: node_modules/yaml/browser/util.js deleted: node_modules/yaml/dist/Document-9b4560a1.js deleted: node_modules/yaml/dist/PlainValue-ec8e588e.js deleted: node_modules/yaml/dist/Schema-88e323a7.js modified: node_modules/yaml/dist/index.js deleted: node_modules/yaml/dist/legacy-exports.js deleted: node_modules/yaml/dist/parse-cst.js deleted: node_modules/yaml/dist/resolveSeq-d03cb037.js modified: node_modules/yaml/dist/test-events.js deleted: node_modules/yaml/dist/types.js modified: node_modules/yaml/dist/util.js deleted: node_modules/yaml/dist/warnings-1000a372.js deleted: node_modules/yaml/index.d.ts deleted: node_modules/yaml/index.js deleted: node_modules/yaml/map.js modified: node_modules/yaml/package.json deleted: node_modules/yaml/pair.js deleted: node_modules/yaml/parse-cst.d.ts deleted: node_modules/yaml/parse-cst.js deleted: node_modules/yaml/scalar.js deleted: node_modules/yaml/schema.js deleted: node_modules/yaml/seq.js deleted: node_modules/yaml/types.d.ts deleted: node_modules/yaml/types.js deleted: node_modules/yaml/types.mjs deleted: node_modules/yaml/types/binary.js deleted: node_modules/yaml/types/omap.js deleted: node_modules/yaml/types/pairs.js deleted: node_modules/yaml/types/set.js deleted: node_modules/yaml/types/timestamp.js modified: node_modules/yaml/util.d.ts modified: node_modules/yaml/util.js deleted: node_modules/yaml/util.mjs modified: node_modules/yargs-parser/CHANGELOG.md modified: node_modules/yargs-parser/build/index.cjs modified: node_modules/yargs-parser/build/lib/index.js modified: node_modules/yargs-parser/build/lib/yargs-parser.js modified: node_modules/yargs-parser/package.json modified: node_modules/yargs/build/index.cjs modified: node_modules/yargs/build/lib/command.js modified: node_modules/yargs/build/lib/completion-templates.js modified: node_modules/yargs/build/lib/completion.js modified: node_modules/yargs/build/lib/usage.js modified: node_modules/yargs/build/lib/validation.js modified: node_modules/yargs/build/lib/yargs-factory.js modified: node_modules/yargs/build/lib/yerror.js modified: node_modules/yargs/lib/platform-shims/esm.mjs modified: node_modules/yargs/locales/en.json modified: node_modules/yargs/locales/fi.json modified: node_modules/yargs/locales/ru.json modified: node_modules/yargs/package.json modified: package-lock.json modified: package.json modified: public/about/index.html modified: public/access/index.html modified: public/blog/index.html modified: public/categories/index.html modified: public/index.html modified: public/manifesto/index.html modified: public/posts/apple-breaks-privacy/index.html modified: public/posts/index.html modified: public/posts/main_street_against_big_tech/index.html modified: public/posts/what_is_done_with_personal_data/index.html modified: public/projects/index.html modified: public/tags/index.html .hugo_build.lock go.mod go.sum node_modules/.bin/autoprefixer node_modules/.bin/browserslist node_modules/.bin/update-browserslist-db node_modules/autoprefixer/ node_modules/browserslist/ node_modules/caniuse-lite/ node_modules/cliui/build/index.d.cts node_modules/electron-to-chromium/ node_modules/fast-glob/out/readers/async.d.ts node_modules/fast-glob/out/readers/async.js node_modules/fraction.js/ node_modules/fs-extra/lib/copy/copy-sync.js node_modules/fs-extra/lib/esm.mjs node_modules/fs-extra/lib/move/move-sync.js node_modules/fs-extra/lib/output-file/ node_modules/globby/ignore.js node_modules/globby/node_modules/ node_modules/globby/utilities.js node_modules/lilconfig/LICENSE node_modules/node-releases/ node_modules/normalize-range/ node_modules/postcss-value-parser/ node_modules/postcss/lib/postcss.d.mts node_modules/update-browserslist-db/ node_modules/yaml/browser/dist/compose/ node_modules/yaml/browser/dist/doc/ node_modules/yaml/browser/dist/errors.js node_modules/yaml/browser/dist/log.js node_modules/yaml/browser/dist/node_modules/ node_modules/yaml/browser/dist/nodes/ node_modules/yaml/browser/dist/parse/ node_modules/yaml/browser/dist/public-api.js node_modules/yaml/browser/dist/schema/ node_modules/yaml/browser/dist/stringify/ node_modules/yaml/browser/dist/visit.js node_modules/yaml/browser/package.json node_modules/yaml/dist/compose/ node_modules/yaml/dist/doc/ node_modules/yaml/dist/errors.d.ts node_modules/yaml/dist/errors.js node_modules/yaml/dist/index.d.ts node_modules/yaml/dist/log.d.ts node_modules/yaml/dist/log.js node_modules/yaml/dist/nodes/ node_modules/yaml/dist/options.d.ts node_modules/yaml/dist/parse/ node_modules/yaml/dist/public-api.d.ts node_modules/yaml/dist/public-api.js node_modules/yaml/dist/schema/ node_modules/yaml/dist/stringify/ node_modules/yaml/dist/test-events.d.ts node_modules/yaml/dist/util.d.ts node_modules/yaml/dist/visit.d.ts node_modules/yaml/dist/visit.js node_modules/yargs/browser.d.ts node_modules/yargs/locales/cs.json node_modules/yargs/yargs.mjs public/css/main.min.c5514d3530979d291f3497facc20da1cec870028dbc2a3630b64bab8721bbe49.css resources/_gen/assets/sass/sass/style.sass_4d6f00452a35742ddbb489cb3703195e.content resources/_gen/assets/sass/sass/style.sass_4d6f00452a35742ddbb489cb3703195e.json resources/_gen/assets/sass/sass/style.sass_c87a2fc9dae9a546a3e3f1548c147175.content resources/_gen/assets/sass/sass/style.sass_c87a2fc9dae9a546a3e3f1548c147175.json
452 lines
13 KiB
TypeScript
452 lines
13 KiB
TypeScript
import Node, { ChildNode, NodeProps, ChildProps } from './node.js'
|
||
import Declaration from './declaration.js'
|
||
import Comment from './comment.js'
|
||
import AtRule from './at-rule.js'
|
||
import Rule from './rule.js'
|
||
|
||
declare namespace Container {
|
||
export interface ValueOptions {
|
||
/**
|
||
* An array of property names.
|
||
*/
|
||
props?: string[]
|
||
|
||
/**
|
||
* String that’s used to narrow down values and speed up the regexp search.
|
||
*/
|
||
fast?: string
|
||
}
|
||
|
||
export interface ContainerProps extends NodeProps {
|
||
nodes?: (ChildNode | ChildProps)[]
|
||
}
|
||
|
||
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
||
export { Container_ as default }
|
||
}
|
||
|
||
/**
|
||
* The `Root`, `AtRule`, and `Rule` container nodes
|
||
* inherit some common methods to help work with their children.
|
||
*
|
||
* Note that all containers can store any content. If you write a rule inside
|
||
* a rule, PostCSS will parse it.
|
||
*/
|
||
declare abstract class Container_<
|
||
Child extends Node = ChildNode
|
||
> extends Node {
|
||
/**
|
||
* An array containing the container’s children.
|
||
*
|
||
* ```js
|
||
* const root = postcss.parse('a { color: black }')
|
||
* root.nodes.length //=> 1
|
||
* root.nodes[0].selector //=> 'a'
|
||
* root.nodes[0].nodes[0].prop //=> 'color'
|
||
* ```
|
||
*/
|
||
nodes: Child[]
|
||
|
||
/**
|
||
* The container’s first child.
|
||
*
|
||
* ```js
|
||
* rule.first === rules.nodes[0]
|
||
* ```
|
||
*/
|
||
get first(): Child | undefined
|
||
|
||
/**
|
||
* The container’s last child.
|
||
*
|
||
* ```js
|
||
* rule.last === rule.nodes[rule.nodes.length - 1]
|
||
* ```
|
||
*/
|
||
get last(): Child | undefined
|
||
|
||
/**
|
||
* Iterates through the container’s immediate children,
|
||
* calling `callback` for each child.
|
||
*
|
||
* Returning `false` in the callback will break iteration.
|
||
*
|
||
* This method only iterates through the container’s immediate children.
|
||
* If you need to recursively iterate through all the container’s descendant
|
||
* nodes, use `Container#walk`.
|
||
*
|
||
* Unlike the for `{}`-cycle or `Array#forEach` this iterator is safe
|
||
* if you are mutating the array of child nodes during iteration.
|
||
* PostCSS will adjust the current index to match the mutations.
|
||
*
|
||
* ```js
|
||
* const root = postcss.parse('a { color: black; z-index: 1 }')
|
||
* const rule = root.first
|
||
*
|
||
* for (const decl of rule.nodes) {
|
||
* decl.cloneBefore({ prop: '-webkit-' + decl.prop })
|
||
* // Cycle will be infinite, because cloneBefore moves the current node
|
||
* // to the next index
|
||
* }
|
||
*
|
||
* rule.each(decl => {
|
||
* decl.cloneBefore({ prop: '-webkit-' + decl.prop })
|
||
* // Will be executed only for color and z-index
|
||
* })
|
||
* ```
|
||
*
|
||
* @param callback Iterator receives each node and index.
|
||
* @return Returns `false` if iteration was broke.
|
||
*/
|
||
each(
|
||
callback: (node: Child, index: number) => false | void
|
||
): false | undefined
|
||
|
||
/**
|
||
* Traverses the container’s descendant nodes, calling callback
|
||
* for each node.
|
||
*
|
||
* Like container.each(), this method is safe to use
|
||
* if you are mutating arrays during iteration.
|
||
*
|
||
* If you only need to iterate through the container’s immediate children,
|
||
* use `Container#each`.
|
||
*
|
||
* ```js
|
||
* root.walk(node => {
|
||
* // Traverses all descendant nodes.
|
||
* })
|
||
* ```
|
||
*
|
||
* @param callback Iterator receives each node and index.
|
||
* @return Returns `false` if iteration was broke.
|
||
*/
|
||
walk(
|
||
callback: (node: ChildNode, index: number) => false | void
|
||
): false | undefined
|
||
|
||
/**
|
||
* Traverses the container’s descendant nodes, calling callback
|
||
* for each declaration node.
|
||
*
|
||
* If you pass a filter, iteration will only happen over declarations
|
||
* with matching properties.
|
||
*
|
||
* ```js
|
||
* root.walkDecls(decl => {
|
||
* checkPropertySupport(decl.prop)
|
||
* })
|
||
*
|
||
* root.walkDecls('border-radius', decl => {
|
||
* decl.remove()
|
||
* })
|
||
*
|
||
* root.walkDecls(/^background/, decl => {
|
||
* decl.value = takeFirstColorFromGradient(decl.value)
|
||
* })
|
||
* ```
|
||
*
|
||
* Like `Container#each`, this method is safe
|
||
* to use if you are mutating arrays during iteration.
|
||
*
|
||
* @param prop String or regular expression to filter declarations
|
||
* by property name.
|
||
* @param callback Iterator receives each node and index.
|
||
* @return Returns `false` if iteration was broke.
|
||
*/
|
||
walkDecls(
|
||
propFilter: string | RegExp,
|
||
callback: (decl: Declaration, index: number) => false | void
|
||
): false | undefined
|
||
walkDecls(
|
||
callback: (decl: Declaration, index: number) => false | void
|
||
): false | undefined
|
||
|
||
/**
|
||
* Traverses the container’s descendant nodes, calling callback
|
||
* for each rule node.
|
||
*
|
||
* If you pass a filter, iteration will only happen over rules
|
||
* with matching selectors.
|
||
*
|
||
* Like `Container#each`, this method is safe
|
||
* to use if you are mutating arrays during iteration.
|
||
*
|
||
* ```js
|
||
* const selectors = []
|
||
* root.walkRules(rule => {
|
||
* selectors.push(rule.selector)
|
||
* })
|
||
* console.log(`Your CSS uses ${ selectors.length } selectors`)
|
||
* ```
|
||
*
|
||
* @param selector String or regular expression to filter rules by selector.
|
||
* @param callback Iterator receives each node and index.
|
||
* @return Returns `false` if iteration was broke.
|
||
*/
|
||
walkRules(
|
||
selectorFilter: string | RegExp,
|
||
callback: (rule: Rule, index: number) => false | void
|
||
): false | undefined
|
||
walkRules(
|
||
callback: (rule: Rule, index: number) => false | void
|
||
): false | undefined
|
||
|
||
/**
|
||
* Traverses the container’s descendant nodes, calling callback
|
||
* for each at-rule node.
|
||
*
|
||
* If you pass a filter, iteration will only happen over at-rules
|
||
* that have matching names.
|
||
*
|
||
* Like `Container#each`, this method is safe
|
||
* to use if you are mutating arrays during iteration.
|
||
*
|
||
* ```js
|
||
* root.walkAtRules(rule => {
|
||
* if (isOld(rule.name)) rule.remove()
|
||
* })
|
||
*
|
||
* let first = false
|
||
* root.walkAtRules('charset', rule => {
|
||
* if (!first) {
|
||
* first = true
|
||
* } else {
|
||
* rule.remove()
|
||
* }
|
||
* })
|
||
* ```
|
||
*
|
||
* @param name String or regular expression to filter at-rules by name.
|
||
* @param callback Iterator receives each node and index.
|
||
* @return Returns `false` if iteration was broke.
|
||
*/
|
||
walkAtRules(
|
||
nameFilter: string | RegExp,
|
||
callback: (atRule: AtRule, index: number) => false | void
|
||
): false | undefined
|
||
walkAtRules(
|
||
callback: (atRule: AtRule, index: number) => false | void
|
||
): false | undefined
|
||
|
||
/**
|
||
* Traverses the container’s descendant nodes, calling callback
|
||
* for each comment node.
|
||
*
|
||
* Like `Container#each`, this method is safe
|
||
* to use if you are mutating arrays during iteration.
|
||
*
|
||
* ```js
|
||
* root.walkComments(comment => {
|
||
* comment.remove()
|
||
* })
|
||
* ```
|
||
*
|
||
* @param callback Iterator receives each node and index.
|
||
* @return Returns `false` if iteration was broke.
|
||
*/
|
||
|
||
walkComments(
|
||
callback: (comment: Comment, indexed: number) => false | void
|
||
): false | undefined
|
||
walkComments(
|
||
callback: (comment: Comment, indexed: number) => false | void
|
||
): false | undefined
|
||
|
||
/**
|
||
* Inserts new nodes to the end of the container.
|
||
*
|
||
* ```js
|
||
* const decl1 = new Declaration({ prop: 'color', value: 'black' })
|
||
* const decl2 = new Declaration({ prop: 'background-color', value: 'white' })
|
||
* rule.append(decl1, decl2)
|
||
*
|
||
* root.append({ name: 'charset', params: '"UTF-8"' }) // at-rule
|
||
* root.append({ selector: 'a' }) // rule
|
||
* rule.append({ prop: 'color', value: 'black' }) // declaration
|
||
* rule.append({ text: 'Comment' }) // comment
|
||
*
|
||
* root.append('a {}')
|
||
* root.first.append('color: black; z-index: 1')
|
||
* ```
|
||
*
|
||
* @param nodes New nodes.
|
||
* @return This node for methods chain.
|
||
*/
|
||
append(
|
||
...nodes: (Node | Node[] | ChildProps | ChildProps[] | string | string[])[]
|
||
): this
|
||
|
||
/**
|
||
* Inserts new nodes to the start of the container.
|
||
*
|
||
* ```js
|
||
* const decl1 = new Declaration({ prop: 'color', value: 'black' })
|
||
* const decl2 = new Declaration({ prop: 'background-color', value: 'white' })
|
||
* rule.prepend(decl1, decl2)
|
||
*
|
||
* root.append({ name: 'charset', params: '"UTF-8"' }) // at-rule
|
||
* root.append({ selector: 'a' }) // rule
|
||
* rule.append({ prop: 'color', value: 'black' }) // declaration
|
||
* rule.append({ text: 'Comment' }) // comment
|
||
*
|
||
* root.append('a {}')
|
||
* root.first.append('color: black; z-index: 1')
|
||
* ```
|
||
*
|
||
* @param nodes New nodes.
|
||
* @return This node for methods chain.
|
||
*/
|
||
prepend(
|
||
...nodes: (Node | Node[] | ChildProps | ChildProps[] | string | string[])[]
|
||
): this
|
||
|
||
/**
|
||
* Add child to the end of the node.
|
||
*
|
||
* ```js
|
||
* rule.push(new Declaration({ prop: 'color', value: 'black' }))
|
||
* ```
|
||
*
|
||
* @param child New node.
|
||
* @return This node for methods chain.
|
||
*/
|
||
push(child: Child): this
|
||
|
||
/**
|
||
* Insert new node before old node within the container.
|
||
*
|
||
* ```js
|
||
* rule.insertBefore(decl, decl.clone({ prop: '-webkit-' + decl.prop }))
|
||
* ```
|
||
*
|
||
* @param oldNode Child or child’s index.
|
||
* @param newNode New node.
|
||
* @return This node for methods chain.
|
||
*/
|
||
insertBefore(
|
||
oldNode: Child | number,
|
||
newNode: Child | ChildProps | string | Child[] | ChildProps[] | string[]
|
||
): this
|
||
|
||
/**
|
||
* Insert new node after old node within the container.
|
||
*
|
||
* @param oldNode Child or child’s index.
|
||
* @param newNode New node.
|
||
* @return This node for methods chain.
|
||
*/
|
||
insertAfter(
|
||
oldNode: Child | number,
|
||
newNode: Child | ChildProps | string | Child[] | ChildProps[] | string[]
|
||
): this
|
||
|
||
/**
|
||
* Removes node from the container and cleans the parent properties
|
||
* from the node and its children.
|
||
*
|
||
* ```js
|
||
* rule.nodes.length //=> 5
|
||
* rule.removeChild(decl)
|
||
* rule.nodes.length //=> 4
|
||
* decl.parent //=> undefined
|
||
* ```
|
||
*
|
||
* @param child Child or child’s index.
|
||
* @return This node for methods chain.
|
||
*/
|
||
removeChild(child: Child | number): this
|
||
|
||
/**
|
||
* Removes all children from the container
|
||
* and cleans their parent properties.
|
||
*
|
||
* ```js
|
||
* rule.removeAll()
|
||
* rule.nodes.length //=> 0
|
||
* ```
|
||
*
|
||
* @return This node for methods chain.
|
||
*/
|
||
removeAll(): this
|
||
|
||
/**
|
||
* Passes all declaration values within the container that match pattern
|
||
* through callback, replacing those values with the returned result
|
||
* of callback.
|
||
*
|
||
* This method is useful if you are using a custom unit or function
|
||
* and need to iterate through all values.
|
||
*
|
||
* ```js
|
||
* root.replaceValues(/\d+rem/, { fast: 'rem' }, string => {
|
||
* return 15 * parseInt(string) + 'px'
|
||
* })
|
||
* ```
|
||
*
|
||
* @param pattern Replace pattern.
|
||
* @param {object} opts Options to speed up the search.
|
||
* @param callback String to replace pattern or callback
|
||
* that returns a new value. The callback
|
||
* will receive the same arguments
|
||
* as those passed to a function parameter
|
||
* of `String#replace`.
|
||
* @return This node for methods chain.
|
||
*/
|
||
replaceValues(
|
||
pattern: string | RegExp,
|
||
options: Container.ValueOptions,
|
||
replaced: string | { (substring: string, ...args: any[]): string }
|
||
): this
|
||
replaceValues(
|
||
pattern: string | RegExp,
|
||
replaced: string | { (substring: string, ...args: any[]): string }
|
||
): this
|
||
|
||
/**
|
||
* Returns `true` if callback returns `true`
|
||
* for all of the container’s children.
|
||
*
|
||
* ```js
|
||
* const noPrefixes = rule.every(i => i.prop[0] !== '-')
|
||
* ```
|
||
*
|
||
* @param condition Iterator returns true or false.
|
||
* @return Is every child pass condition.
|
||
*/
|
||
every(
|
||
condition: (node: Child, index: number, nodes: Child[]) => boolean
|
||
): boolean
|
||
|
||
/**
|
||
* Returns `true` if callback returns `true` for (at least) one
|
||
* of the container’s children.
|
||
*
|
||
* ```js
|
||
* const hasPrefix = rule.some(i => i.prop[0] === '-')
|
||
* ```
|
||
*
|
||
* @param condition Iterator returns true or false.
|
||
* @return Is some child pass condition.
|
||
*/
|
||
some(
|
||
condition: (node: Child, index: number, nodes: Child[]) => boolean
|
||
): boolean
|
||
|
||
/**
|
||
* Returns a `child`’s index within the `Container#nodes` array.
|
||
*
|
||
* ```js
|
||
* rule.index( rule.nodes[2] ) //=> 2
|
||
* ```
|
||
*
|
||
* @param child Child of the current container.
|
||
* @return Child index.
|
||
*/
|
||
index(child: Child | number): number
|
||
}
|
||
|
||
declare class Container<Child extends Node = ChildNode> extends Container_<Child> {}
|
||
|
||
export = Container
|